1 / 23

Artificial Intelligence and Lisp #3

Characterization of Actions [Chapter 5] Representation Language [Chapter 2] Lab Assignment 2. Artificial Intelligence and Lisp #3. Part I: Working with action laws [Read Lecture Notes Chapter 5 for this, but read Chapter 2 first]. [Do .t [pour .fr .to]] =

tcathey
Download Presentation

Artificial Intelligence and Lisp #3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Characterization of Actions [Chapter 5] Representation Language [Chapter 2] Lab Assignment 2 Artificial Intelligence and Lisp #3

  2. Part I: Working with action laws[Read Lecture Notes Chapter 5 for this,but read Chapter 2 first]

  3. [Do .t [pour .fr .to]] = [if [and [H- .t (substance-in: .to) empty] (not [H- .t (substance-in: .fr) Empty ])] [coact [H! .t (substance-in: .to) (cv (substance-in: .fr)) ] [H! .t (substance-in: .fr) Empty ]] [soact] ]] Effect law for pour action

  4. Notation on previous slide • [H- time feature val] is a logical expression which is true if the value of feature at time-1 is val • [H time feature val] is a logical expression which is true if the value of feature at time is val • [H! time feature val] is a low-level “action” that assigns val as the value of feature at time

  5. Use of effect law in simulator • Check whether precondition is satisfied • If so, execute the 'then' clause in the environment. • A composite action (coact) always takes one timestep. A sequence (soact) takes one timestep per component. • If precondition is not satisfied, then execute the 'else' clause. • Report success or failure, failed precondition, and culprit of the failure (so that the agent has a chance to fix the problem)

  6. [Do .t [pour .fr .to]] = [if [and [H- .t (substance-in: .to) empty] (not [H- .t (substance-in: .fr) empty ])] [coact [H! .t (substance-in: .to) (cv (substance-in: .fr)) ] [H! .t (substance-in: .fr) empty ]] [soact] ]] Failed precondition as reported by simulator: [H- now (substance-in: g2) empty] Precondition for pour action

  7. Operations done on the precondition • Evaluate precondition. If failed: • Instantiate variables (most of them) • Insert now for current time in simulated world • Identify which (one or more) of the conjuncts has the value false • Return both entire instantiated precondition, and failed conjuncts • More complicated operation if the precondition is more complicated

  8. Agent's response to failed precondition: alternatives • Recall:[H- now (substance-in: g2) empty] • Simplest: Look up reaction in table - but based on what? • Associate reaction(s) with pattern: • [H- now (substance-in: .g) empty] • [H- now (substance-in: .g) .c] • Check postconditions of all available actions to find one with desired effect: • dispose[H! .t (substance-in: .e) empty] • Find sequence of actions (a plan) whose combined effect will be the desired one.

  9. Operations on action expressions • Consist of expressions for precondition and for effect which are treated separately • Evaluation of precondition • Partial evaluation of precondition • Effect is ~ postcondition • Match partially evaluated precondition with postcondition/effect of another action • Send expression to another agent • Save expression for later reuse (learning)

  10. Part II: Representation formalism[Read Lecture Notes, Chapter 2 for parts II-IV] • Requirements: • Adequate expressivity: facts, scripts, action laws • Facilitate processing in computer • Readability for humans • Conciseness - avoid multiple representations • Use available standards both from mathematics and logic, and from computer world

  11. KRF - atomic elements • Atomic entities, e.g. Plato • Strings, e.g. ”Ursus ursus” • Numbers, e.g. 451

  12. KRF - composite elements • Composite entities, e.g. (age-of: Plato) • Sets, e.g. {Plato Socrates} • Sequences, e.g. <Caesar Augustus Nero> • Records, e.g. [dispose :e glass4] • Maplets, e.g. [: 45 empty] • Forms, e.g. (cv (age-of: Plato)) • or (+ 2 (cv (age-of: Plato)))

  13. Composite entities vs forms • Composite entities, e.g. (age-of: Plato) • Forms, e.g. (cv (age-of: Plato)) • or (+ 2 (cv (age-of: Plato))) • Composite entities can have attributes and values • Forms are replaced by their value during evaluation - composite entities are not

  14. KRF - records • Records, e.g. [dispose :e glass4] • More generally: • [oper arg1 arg2... :tag1 val1 • :tag2 val2 ... ] • Alternative, equivalent: • [oper :tag1 val1 :tag2 val2 ... • ^ arg1 arg2... ]

  15. KRF - mappings • Maplets, e.g. [: 45 empty] • Used to form mappings, e.g. • {[: 21 water] • [: 28 empty] • [: 35 beer] • [: 45 empty]}

  16. Part III: Generic Scripting Language • Used as a basis for a range of scripting languages: • Agent Scripting Language • Document Scripting Language (for texts and web pages) • Operations Scripting Language • ...

  17. Scripting Expressions • Action expression, record, [verb a1 a2...] • Action composition using if, soact, etc. • Feature, comp.ent., (feaop: arg1 ...) • Term, form, (function arg1 arg2 ...) • Query, form, is a kind of term • Atomic propos., record, [pred a1 a2 ...] • Composite propos., form, (and p1 p2 ...) and similarly for or, not, etc.

  18. Part IV: Entity-files • Entity-files are used in Leonardo for persistent storage of information between sessions • In principle, each entityfile is a two-level mapping: • {[: ent-1 {[: a1 val-1-1] • [: a2 val-1-2] ...}] • [: ent-2 {[: a1 val-2-1] • [: a2 val-2-2] ...}] • ... ... }

  19. Practical representation of entityfiles ----------------------------------- -- entity-1 [: type sometype] [: a1 “value of attribute a1 for entity-1”] [: a2 (symbfun: a5)] [: (attrfun: color) {red green}] ----------------------------------- -- entity-2 [: type sometype] [: a1 “value of attribute a1 for entity-2”] @Comment Comments may be expressed in free text, or may use a specialized notations as selected by the designer. They are preserved in textual form until processed by an application program. ooooooooooooooooooooooooooooooooooo

  20. Entityfile facilities • Each entity in the file must have a value for the type attribute. That value must again be an entity in a file, and so on. • Entityfiles can be written and read back. • Only attributes that are included in the attributes attribute of the type are written to the file • Entities not having a value for any of the attributes of their type, are not written to file • Notice the use of properties, e.g. Comment

  21. Some additional aspects • An entity of type section can be used for partitioning an entityfile into parts separated by a =================== line • The in-categories attribute is always optional and should have a set of entities as value • The command sortfil myfile sorts the entities in a file in alphabetical order • The name of an entityfile is always the first entity in the file

  22. Lab 2: Defining a Zoo Miniworld • Milestone 1: static structure in the zoo world • Milestone 2: defining actions in the zoo world • What to do for the lab:

  23. What to do for the lab(your “script”) • Read lab instructions on the course webpage: page on labserver access and lab 2 definition • Start a session with your Leonardo agent • Download lab materials from labserver using commands getlabs and getlab lab2a-kb • Do the work as specified • Make a local check using check-lab command • Upload results using upload-lab command • Await final approval

More Related