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

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

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

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

AgententechnologieLes 3: deductief redeneren

dr. Patrick De Causmaecker

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

Logisch programmeren

• Eerste orde logica

• Voorbeeld: Prolog

• Voorbeeld: Regelbanken

• Voorbeeld: Constraint Satisfaction

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

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.”

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

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).

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

/*******************************************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), !.

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

% generate a list of random numbers

genlist(0, []):- !.

genlist(N, [X|Rest]):- N1 is N - 1, xcall("RandomNumberGen3", [0, 100, X]), genlist(N1, Rest), !.

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

Voorbeeld: Regelbanken

http://www.expertise2go.com/download/demo.html

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

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"

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

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] > 24.99

Then [the recommended action] = "recharge or replace the battery"

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

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] = "empty" @ 90

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

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"

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

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

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

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

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

Voorbeeld: Constraint Satisfaction

http://kti.ms.mff.cuni.cz/~bartak/constraints/index.html

Page 16: Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker.
Page 17: Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker.
Page 18: Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker.
Page 19: Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker.
Page 20: Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker.

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.

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

Interp:Pixel manipulatie

Kennisbank: geloof:afst(mij,d1) = 90 cmdeur(d1)

PlanSTOP

ActieREMMEN!

D020

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

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.

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

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

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

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?

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

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)

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

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.

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

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 .

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

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

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

Functie: Actieselectie door bewijsvoering1. Function action( :D) return een actie Ac2. begin3. voor elke Ac4. indien Do() dan return 5. einde voor6. voor elke Ac7. indien Do() dan return 8. einde voor9. return null10. einde

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

Voorbeeld: De stofzuigende agent

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

Stofzuiger: domein en de oude wereld

• De wereld wordt beschreven door:

• De oude informatie in de wereld (kan gewijzigd worden):

old() = {P(t1,…,tn}|P {In,Dirt,Facing} en P(t1,…,tn) }}

In(x,y)Dirt(x,y)Facing(d)

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

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)

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

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)

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

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.

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

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.

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

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).

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

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.

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

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

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

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))

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

Initialize

Update beliefs

Update commitments

Execute

Beliefs

Commitments

Abilities

messages in

messages outinternal actions

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

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.

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

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)

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

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.

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

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.

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

Het proces

1. Pas de geschiedenis van de agent aan op basis van de ontvangen boodschappen

2. Zoek regels die nu vuren3. Voer deze regels uit, samen met de

verbintenissen uit vorige cycli. (er zijn meerdere mogelijkheden, dit houdt een keuze in)

4. Ga naar 1

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

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;