Simplified readme

This commit is contained in:
Brandon Rozek 2024-03-29 17:42:34 -04:00
parent f36a886631
commit 95f30f1c5f
No known key found for this signature in database
GPG key ID: 26E457DA82C9F480

View file

@ -1,6 +1,6 @@
# Spectra # Spectra
Spectra is a general purpose planning system. It extends STRIPS-style planning by allowing arbitray first-order formulae for state descriptions and background knowledge rather than just predicates. This allows, for instance, handling domains with infinite or unbounded objects elegantly (among other things). Spectra is a general purpose planning system. It extends STRIPS-style planning by allowing arbitray DCEC and first-order formulae for state descriptions, background knowledge, and action descriptions rather than just predicates. This allows, for instance, handling domains with infinite or unbounded objects elegantly (among other things).
[Overview Presentation (pdf)](https://drive.google.com/open?id=1RHulFDgASACBkjvl-8ZEidj50NbGmKPu) [Overview Presentation (pdf)](https://drive.google.com/open?id=1RHulFDgASACBkjvl-8ZEidj50NbGmKPu)
@ -54,32 +54,3 @@ Now you should be able to run Spectra:
![examples.png](https://bitbucket.org/repo/Mjq4bX/images/3136509575-examples.png) ![examples.png](https://bitbucket.org/repo/Mjq4bX/images/3136509575-examples.png)
## Scaling Up ##
Two approaches:
1. **Procedural Attachments**: Special purpose procedural code that can bypass strict formal reasoning.
2. *μ*-**methods**: Written in denotational proof language. Preserves soundness by letting us write down commonly used patterns of reasoning (a bit unwieldy integration now than the first approach)
```clojure
;; (removeFrom ?x ?y) => "Remove ?x from ?y"
;; (placeInside ?x ?y) ==> "Place ?x inside ?y"
(define-method planMethod [?b ?c ?d]
{:goal [(In ?b ?c) (In ?c ?d)]
:while [(In ?b ?d) (Empty ?c)
(< (size ?c) (size ?d))
(< (size ?b) (size ?c))]
:actions [(removeFrom ?b ?d) (placeInside ?b ?c) (placeInside ?c ?d)]})
```
Roughly, a method has conditions that the goal and background + start state should satisfy. If the conditions are satisfied, a plan template is generated (note the variables).
The planner then verifies if the plan template works, if so it outputs the plan.
## Spectra on a Seriated Cup Challenge ##
![download-3.gif](https://bitbucket.org/repo/Mjq4bX/images/794008054-download-3.gif)