De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker.

Verwante presentaties


Presentatie over: "Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker."— Transcript van de presentatie:

1 Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker

2 Logisch programmeren Eerste orde logica Voorbeeld: Prolog Voorbeeld: Regelbanken Voorbeeld: Constraint Satisfaction

3 Eerste orde logica Bevat enkel predicaten over individuen (atomen) en niet over predicaten. Quantoren verbinden enkel individuen Paradox van Grelling Deze paradox kan niet uitgedrukt worden in eerste orde logica, maar is moeilijk te vermijden in hogere orde logica’s. If an adjective truly describes itself, call it “autological", otherwise call it "heterological". For example, "polysyllabic" and "English" are autological, while "monosyllabic" and "pulchritudinous" are heterological. Is "heterological" heterological? If it is, then it isn't; if it isn't, then it is.”

4 Voorbeeld: Prolog

5 father(terach,abraham). father(terach,nachor). father(terach,haran). father(abraham,isaac). father(haran,lot):-!. father(haran,milcah). mother(sara,isaac). male(terach). male(abraham). male(nachor). male(haran). male(isaac). male(lot). female(sarah). female(milcah). female(yiscah). likes(X,pome). son(X,Y):-father(Y,X),male(X). daughter(X,Z):-father(Z,X),female(X). granfather(X,Z):-father(X,Y),father(Y,Z).

6 /******************************************* Hanoi's Towers * hanoi(height, tower1, tower2, tower3, moves) * * Example: * hanoi(3, a,b,c, X). * *******************************************/ hanoi(1, A,B,C,[[A,B]]):-!. hanoi(N, A,B,C,Moves):- N1 is N - 1, hanoi(N1, A,C,B,Ms1), hanoi(N1, C,B,A,Ms2), append(Ms1, [[A,B]|Ms2], Moves), !.

7 % generate a list of random numbers genlist(0, []):- !. genlist(N, [X|Rest]):- N1 is N - 1, xcall("RandomNumberGen3", [0, 100, X]), genlist(N1, Rest), !.

8 Voorbeeld: Regelbanken

9 REM Test knowledge base RULE [Is the battery dead?] If [the result of switching on the headlights] = "nothing happens" or [the result of trying the starter] = "nothing happens" Then [the recommended action] = "recharge or replace the battery" RULE [Is the car out of gas?] If [the gas tank] = "empty" Then [the recommended action] = "refuel the car"

10 RULE [Is the battery weak?] If [the result of trying the starter] : "the car cranks slowly" "the car cranks normally" and [the headlights dim when trying the starter] = true and [the amount you are willing to spend on repairs] > Then [the recommended action] = "recharge or replace the battery"

11 RULE [Is the car flooded?] If [the result of trying the starter] = "the car cranks normally" and [a gas smell] = "present when trying the starter" Then [the recommended action] = "wait 10 minutes, then restart flooded car" RULE [Is the gas tank empty?] If [the result of trying the starter] = "the car cranks normally" and [a gas smell] = "not present when trying the starter" Then [the gas tank] = 90

12 PROMPT [the result of trying the starter] Choice CF "What happens when you turn the key to try to start the car?" "the car cranks normally" "the car cranks slowly" "nothing happens" PROMPT [a gas smell] MultChoice CF "The smell of gasoline is:" "present when trying the starter" "not present when trying the starter"

13 PROMPT [the result of switching on the headlights] MultChoice CF "The result of switching on the headlights is:" "they light up" "nothing happens" PROMPT [the headlights dim when trying the starter] YesNo CF "Do the headlights dim when you try the starter with the lights on?" x

14 PROMPT [the gas tank] MultChoice CF "According to the fuel gauge, the gas tank is:" "empty" "not empty" PROMPT [the amount you are willing to spend on repairs] Numeric CF "How much are you willing to spend on repairs? (enter value 0- >500)" "0" "500.0" GOAL [the recommended action] MINCF 80

15 Voorbeeld: Constraint Satisfaction

16

17

18

19

20 Deductief redeneren “Intelligent gedrag kan bereikt worden door het systeem een symbolische voorstelling van zijn omgeving en zijn gewenst gedrag te geven en het deze voorstelling syntactisch te laten manipuleren” De symbolische voorstelling is hier een verzameling logische formules, en de manipulatie b estaat uit afleiding, of het bewijzen van stellingen.

21 Interp: Pixel manipulatie Kennisbank: geloof: afst(mij,d1) = 90 cm deur(d1) Plan STOP Actie REMMEN! D020

22 Twee problemen Transductie –Het voldoende snel omzetten van de waarneming van de wereld in een gepaste symbolische beschrijving Representatie/redeneren –Het symbolisch voorstellen van de informatie en de agenten deze laten manipuleren en erover laten redeneren, opnieuw voldoende snel.

23 AI benadering Waarneming: –Visie, spraak, natuurlijke taal begrijpen, leren,… Representatie –Kennisrepresentatietalen, automatisch redeneren, automatisch plannen,… Er is veel werk verricht, maar men staat nog niet echt ver

24 Agenten Stel dat we een theorie van agenten hebben, hoe die zich gedragen, hoe ze hun doelen bepalen, hoe ze hun gedrag optimaliseren… Normaal beschouwen we een dergelijke theorie als een uitgangspunt, dat we gaandeweg verfijnen om tot een software-oplossing te komen. Kunnen we het zo ver drijven dat de theorie eigenlijk samenvalt met het programma?

25 Agenten als stellingbewijzers De inwendige toestand van een agent bestaat uit een databank van eerste orde predikaten: Deze databank bevat alle feiten die de agent gelooft in zijn omgeving (beliefs) Open(valve221) Temperature(reactor4726,321) Pressure(tank776,28)

26 Agenten als stellingbewijzers Het feit dat we van een geloof spreken duidt erop dat we geen exacte, volledige kennis van de werkelijkheid kunnen onderstellen. De sensoren kunnen fouten maken, de gegevens kunnen te laat geregistreerd zijn,… Bovendien kan de interpretatie van de formule Open(valve221) iets totaal anders betekenen dan wij erin zien.

27 Agenten als stellingbewijzers Formeel L = {alle eerste-orde predikaten} D =  (L) = {alle L databanken} ,  1,  2,…  D  = {de afleidingsregels van de agent}    betekent dat de formule  uit L kan bewezen worden vanuit de databank  met behulp van de afleidingsregels .

28 Agenten als stellingbewijzers De agent bestaat nu uit –De perceptie functie: see : S -> Per –De aanpassingsfunctie voor de interne toestand: next : D  Per -> D –En een meer bepaalde actiefunctie: action : D -> Ac De actiefunctie kunnen we nu beter definiëren

29 Functie: Actieselectie door bewijsvoering 1.Function action(  :D) return een actie Ac 2.begin 3. voor elke   Ac 4. indien    Do(  ) dan return  5. einde voor 6. voor elke   Ac 7. indien     Do(  ) dan return  8. einde voor 9. return null 10.einde

30 Voorbeeld: De stofzuigende agent

31 Stofzuiger: domein en de oude wereld De wereld wordt beschreven door: De oude informatie in de wereld (kan gewijzigd worden): old(  ) = {P(t 1,…,t n }|P  {In,Dirt,Facing} en P(t 1,…,t n )   }} In(x,y) Dirt(x,y) Facing(d)

32 Stofzuiger: het genereren van nieuwe kennis Een functie new genereert nieuwe kennis: –new : D  Per -> D (oefening) Hiermee is het mogelijk om next te definiëren –next( ,p) = (  \old(  ))  new( ,p)

33 Stofzuiger: de regels De afleidingsregels hebben de vorm –  (…)   (…) “Als  overeenkomt met de databank van de agent, dan kan  besloten worden.” Regel 1:werken –In(x,y)  Dirt(x,y)  Do(suck) Regel 2:bewegen –In(0,0)  Facing(north)   Dirt(0,0)  Do(forward) –In(0,1)  Facing(north)   Dirt(0,0)  Do(forward) –In(0,2)  Facing(north)   Dirt(0,0)  Do(turn) –In(0,2)  Facing(east)  Do(forward)

34 Conclusies Dit is eerder onpraktisch… Stel dat de agent zijn optimale actie probeert te bepalen. Dit kost hem een zekere tijd. In dit tussentijd kan de wereld veranderd zijn… “calculative rationality”: de agent kiest een actie die optimaal zou geweest zijn toen de berekening begon. Dit is niet steeds aanvaardbaar.

35 Verder problemen De logische benadering is elegant, handig, maar resulteert in trage uitvoering. De see functie bevindt zich in een slecht begrepen gebied van AI. Het beschrijven van dit eenvoudige procedurale probleem is reeds ingewikkeld.

36 Agent georiënteerd programmeren: Agent0 (Shoham 1993) Gebruik van de “mentalistische” begrippen geloof, wens en intentie (Desire, Belief, Intention, DBI) als abstractie mechanismen om de eigenschappen van complexe systemen te beschrijven. In Agent0 is een agent gedefinieerd in termen van een verzameling vaardigheden (capabilities), een initiële verzameling geloofspunten (beliefs) en een initiële verzameling verbintenissen (commitments), samen met een verzameling regels om verbintenissen af te leiden (commitment rules).

37 Agent0 Een commitment rule bestaat uit –Een boodschap voorwaarde –Een mentale voorwaarde –Een actie De boodschapvoorwaarde wordt vergeleken met de boodschappen die de agent gekregen heeft en mentale voorwaarde wordt vergeleken met de geloofspunten van de agent. Indien ze overeenkomen, dan verbindt de agent zich tot de actie.

38 Agent0 Er zijn twee soorten acties: –Communicatieve, die resulteren in uitgezonden boodschappen –Private die overeenkomen met intern uitgevoerde subroutines. Er zijn drie soorten boodschappen: –Requests om een actie uit te laten voeren –Unrequests om een actie te stoppen –Inform om informatie over te brengen

39 COMMIT( (agent, REQUEST, DO(time, action)) ;;; boodschapvoorwaarde (B,[now, Friend agent] AND CAN(self, action) AND NOT [time, CMT(self, anyaction)]), ;;; mentale voorwaarde self, DO(time,action) )

40 Initialize Update beliefs Update commitments Execute Beliefs Commitments Abilities messages in messages out internal actions

41 Concurrent MetateM (Michael Fisher 1994) Directe uitvoering van logische formules Een systeem bestaat uit een aantal gelijktijdig uitvoerende agenten die met hun collega’s kunnen communiceren door asynchronische broadcasting. Ze worden geprogrammeerd met behulp van een temporale logica Men kan aantonen dat de procedure die een agent uitvoert correct is en dat, indien mogelijk, de agent aan zijn specificatie zal voldoen.

42 Agenten in MetateM bestaan uit: –Een interface (interactie met de andere agenten) –Een engine die definiëert hoe een agent zich zal gedragen. De interface bevat: –Een agent-id, de unieke naam van de agent –Een verzameling symbolen die vastleggen welke boodschappen er kunnen aanvaard worden (environment propositions) –Een verzameling symbolen die gebruikt worden om boodschappen te verzenden (component propositions)

43 Voorbeeld De stack agent: –Stack(pop, push) [popped, full] –Agent id: stack –Environment propositions: {pop,push} –Component propositions: {popped, full} Als een boodschap verstuurd wordt die niet met de interface van de agent overeenkomt negeert hij deze.

44 De engine van MetateM Algemene vorm: –Antecedent over het verleden -> consequent over heden en toekomst De tijdelijke connectieven zijn: –  (morgen),  (gisteren)  (ooit in de toekomst),  (ooit in het verleden),   (altijd vanaf nu),   (altijd in het verleden),  U  (  tot  ),  S  (  vanaf  ),  Z  (  vanaf  of altijd al) –En dan is er nog start.

45 Het proces 1.Pas de geschiedenis van de agent aan op basis van de ontvangen boodschappen 2.Zoek regels die nu vuren 3.Voer deze regels uit, samen met de verbintenissen uit vorige cycli. (er zijn meerdere mogelijkheden, dit houdt een keuze in) 4.Ga naar 1

46 rp(ask1,ask2)[give1,give2]:  ask1 =>  give1;  ask2 =>give2; Start =>   (give1  give2) rc1(give1)[ask1]: start => ask1;  ask1 => ask1; rc2(ask1,give2)[ask2]:  (ask1   ask2) => ask2;


Download ppt "Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker."

Verwante presentaties


Ads door Google