lokweb and lwb
DESCRIPTION
7 maart 2006 by Maarten and Hilverd. LokWeb and LWB. Contents. LokWeb LWB. Aanmelden LokWeb. ga naar het LOKweb: www.ou.nl/lok klik daar op het RUG-logo klik op 'aanmelden op het LOKweb‘ - PowerPoint PPT PresentationTRANSCRIPT
LokWeb and LWB
7 maart 2006by Maarten and Hilverd
Contents
• LokWeb• LWB
Aanmelden LokWeb
- ga naar het LOKweb: www.ou.nl/lok- klik daar op het RUG-logo- klik op 'aanmelden op het LOKweb‘- vul de betreffende velden in en klik op de
button 'aanmelden' (als e-mailadres moet een e-mailadres gebruikt worden dat eindigt op @ai.rug.nl, @student.rug.nl)
Inloggen LokWeb
- ga opnieuw naar het LOKweb: www.ou.nl/lok
- klik daar op het RUG-logo - klik op 'door naar het LOKweb' en gebruik
vervolgens gebruikersnaam en wachtwoord dat per e-mail is ontvangen.
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 onderdelen1. Het hoofdscherm2. Het statusscherm3. Het optiescherm
http://www.lwb.unibe.ch/pics/sample_x.gif
Informatiesysteem
Naast standaard help bevat het informatiesysteem ook:1. Informatie over LWB2. Een voorbeeld van een LWB-sessie3. Syntax beschrijving4. Beschrijving van elke functie5. Referentie handleiding
Notation
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
• consistent(T): theory T is consistent
• provable(F,T): formula F is provable in theory T
• satisfiable(F): formula F is satisfiable
Important Instructions
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• Tenminste 1 kind heeft modder op zijn gezicht:at_least_one_muddy := muddy1 v muddy2 v muddy3;
• Kind 1 kan de andere kinderen zien:one_can_see_others := (muddy2 -> box1 muddy2) & (muddy3 -> box1 muddy3) & (~muddy2 -> box1 ~muddy2) & (~muddy3 -> box1 ~muddy3);
• Muddy Theorie:muddy_theory := [at_least_one_muddy, one_can_see_others, two_can_see_others, three_can_see_others];
• Controle consistent(muddy_theory); => true
Muddy Children• Alleen kind 3 heeft modder op zijn gezicht:situation1 := muddy3 & ~muddy2 & ~muddy1; provable(situation1 -> box3 muddy3, muddy_theory); => true
• Maar als er 2 kinderen zijn met modder op hun gezicht zijn er 2 stappen nodig.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• Ze weten nu dat er minstens 2 kinderen
zijn met modderstandstill :=
~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
• Vader vraagt het nog een keermuddy_theory2 := concat([at_least_two], muddy_theory);consistent(muddy_theory2); => true
• Nu weten kind 2 en 3 dat ze vies zijnprovable(situation2 -> box2 muddy2, muddy_theory2); provable(situation2 -> box3 muddy3, muddy_theory2);=> true, true
Samenvatting
• Web interface, en versies voor Linux/Mac• Eenvoudige notatie
– maar pas op voor box# bij modale logica• Laad de juiste module(s)• Controleer op consistentie