240 likes | 380 Views
7 maart 2006 by Maarten and Hilverd. LokWeb and LWB. Contents. LokWeb LWB. Register @ LokWeb . goto: www.ou.nl/lok click on the RUG-logo click on 'aanmelden op het LOKweb‘ Fill in your student e-mail address (@student.rug.nl). LokWeb Assignments.
E N D
7 maart 2006 by Maarten and Hilverd LokWeb and LWB
Contents • LokWeb • LWB
Register @ LokWeb • goto: www.ou.nl/lok • click on the RUG-logo • click on 'aanmelden op het LOKweb‘ • Fill in your student e-mail address (@student.rug.nl)
LokWeb Assignments • English version of LOKweb-assignments: http://www.ai.rug.nl/mas/lokweb/
LokWeb Assignments • Kennislogica • Communicatieprotocollen • OPGAVE 3
Modules • user module - general module • cpc module - classical prop. logic • k, s4, s5 modules - modal logic • kn, s4n modules - multimodal logic • Use the function load to load modules.Example: load(kn); • http://www.lwb.unibe.ch/
The User Interface De interface bestaat uit drie onderdelen • Het hoofdscherm • Het statusscherm • Het optiescherm http://www.lwb.unibe.ch/pics/sample_x.gif
Informatiesysteem Naast standaard help bevat het informatiesysteem ook: • Informatie over LWB • Een voorbeeld van een LWB-sessie • Syntax beschrijving • Beschrijving van elke functie • Referentie handleiding
On TCW2 Logic WorkBench can be run from Hilverd's account: ~hreker/lwb • load(cpc); • a:=(~(p v q) & (s<->r)-> q v p) & (((d->c)->d)->d); • b:=simplify(a);
How to use it • LWB can be run on Mac, Solaris and Linux. • Use the ASCII version by entering “~hreker/lwb” in a shell, and use the XLWB by issuing “~hreker/xlwb”. The XLWB is the GUI version.
Important Instructions • assigning a formula:f := (p1 v p2) & p3; • assigning a theory:theory := [f, p1 -> p2, ~p2]; • simplifying a formula:simplify((p2<->p3) & p0->p1 & p0-> ~p3); => p2 -> p1 & p0 -> ~p3
Important Instructions • concat (concatenating theories): concat([p & q, r], [p -> r], [t]); => [p & q, r, p -> r, t] • union:union([1,1,2], [2,2,3]); => [1,2,3] • member: member(p0 & p1,[p3, p0 & p1, ~p2] );=> true
Important Instructions • remove superfluous subformulas:remove((true v p0) & p1 -> false); => ~p1 • which module am I working in?which(provable); => kn • comments: # comment
Important Instructions • consistent(T): theory T is consistent • provable(F,T): formula F is provable in theory T • satisfiable(F): formula F is satisfiable
Logic Modules • Tell LWB explicitly which logic to use. This is done by loading the proper module. E.g.: load(cpc) • cpc: classical propositional logic • k, s4, s5: modal logic • kn, s4n: multimodal logic
Multi-agent modeling • LWB can be used to implement situations, problems, and reasoning in MAS. • Model the environment. • Model what access agents have to the environment. • Put all of this into a theory • Check consistency.
Multi-agent modelling • Describe the initial situation. • Test what conclusions can be drawn: provable(situation -> hypothesis, theory); • Update the theory when new information is available: newtheory =: concat(oldtheory, update);
Voorbeeld Muddy Children
Muddy Children • At least one child has mud on his face :at_least_one_muddy := muddy1 v muddy2 v muddy3; • Child 1 kan see the other children (also for 2 & 3):one_can_see_others := (muddy2 -> box1 muddy2) & (muddy3 -> box1 muddy3) & (~muddy2 -> box1 ~muddy2) & (~muddy3 -> box1 ~muddy3); • Muddy Theory:muddy_theory := [at_least_one_muddy, one_can_see_others, two_can_see_others, three_can_see_others]; • Consistence check:consistent(muddy_theory); => true
Muddy Children • Exactly one child has mud on his face: situation1 := muddy3 & ~muddy2 & ~muddy1; provable(situation1 -> box3 muddy3, muddy_theory);=> true • In case of two muddy children, we need 2 steps: situation2 := muddy3 & muddy2 & ~muddy1; provable(situation2 -> box1 muddy1, muddy_theory); provable(situation2 -> box2 muddy2, muddy_theory);provable(situation2 -> box3 muddy3, muddy_theory);=> false, false, false
Muddy Children • All now know that at least two have mud on their face:standstill := ~box1 muddy1 & ~box2 muddy2 & ~box3 muddy3; at_least_two := (muddy1 & muddy2) v (muddy2 & muddy3) v (muddy1 & muddy3); provable( situation2 & standstill -> at_least_two, muddy_theory);=> true
Muddy Children • Father restates his questionmuddy_theory2 := concat([at_least_two], muddy_theory);consistent(muddy_theory2); => true • Now child 2 & 3 know they’re muddyprovable(situation2 -> box2 muddy2, muddy_theory2); provable(situation2 -> box3 muddy3, muddy_theory2);=> true, true
Conclusion • Linux only; use tcw2 • Easy notation • Watch out for box# with modal logic • Load the correct module(s) • Controleer op consistentie