Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
project
src/main
.gitignore
LICENSE
README.md
build.sbt
mosquitto.conf

README.md

(CL)S Solver for Labyrinths

Finds all ways from start (s) to goal (g) in a labyrinth such as

|x|g|x|
| | | | 
|s|x| |
| | | | 

where x-fields are blocked tiles. Uses (CL)S to compute the solution. The example is taken from:

Jan Bessai, Anna Vasileva: User Support for the Combinator Logic Synthesizer Framework. F-IDE@FLoC 2018: 16-25. Online here.

Results are served via MQTT.

The protocol is as follows: 0. Start an MQTT broker, e.g. Mosquitto via mosquitto -c mosquitto.conf with the provided config.

  1. Start an Agent using sbt run.
  2. Send a JSON-encoded Task to the broker under the taskTopic.
  3. Send a JSON-encoded request for solutions to the broker under the topicForRequests specified in your task.
  4. Receive maxCount JSON-encoded Solution replies under the topicForSolutions specified in your task.

The agent can be cleanly exited by pressing enter.

Solutions will be ordered by the number of necessary steps and 'wrap around' (be repeated) if more solutions are requested than possible. Protocol data is encoded and decoded using circe.

You can use sbt run to start a Demo client. To avoid trouble, make sure the agent is running before starting the demo client.

By default the log level is configured to DEBUG. This will print all JSON messages exchanged with the agent.

You can’t perform that action at this time.