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

Slides:



Advertisements
Verwante presentaties
The stock market will go up De beurswaarden zullen stijgen YESNO JA NEEN Is Jefken a good person ? Is Jefken een goed mens ? YES NO JA NEEN Is Lonny a.
Advertisements

A/AN Review. HOW DOES IT WORK? Op elke dia krijg je zometeen een vraag te zien. Vervolgens staan daaronder twee of drie antwoordmogelijkheden. Deze antwoordmogelijkheden.
1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.
Programmeren met Alice
Dienstencatalogus 24 november Programma Wat is een productencatalogus Alle componenten op een rij – De generieke informatie – De specifieke informatie.
Thursday, 10 July 2014 donderdag 10 juli 2014 Click Klik.
PM zijn de Principia Mathematica. Deze vormen een formeel systeem voor de wiskunde. Ze zijn beschreven door A.N. Whitehead and B. Russell. Gödel bepaalt.
Dr. Patrick De Causmaecker, KaHo St.-Lieven Agententechnologie Les 8: communiceren dr. Patrick De Causmaecker.
Relationship Macbeth and Lady Macbeth
Variatie in betekenis Werkgroepopdracht 1b.
Phoenix Contact ILC150ETH F. Rubben, Ing.. Phoenix Contact ILC150ETH F. Rubben, Ing.
Hoofdstuk 6: Controle structuren
Kunstmatige Intelligentie
1 Het probleem RO Milieu Landbouw SocZekerheid Etc. LerenWerkenWonenPensioenEtc. Overheids- organisatie Burger ??? Regelgeving per domein Vraag op levensmoment.
Inleiding Kennistechnologie §Hoofdstuk 7: Kennisrepresentaties 1: Eigenschappen en representatievormen §Hoofdstuk 8: Kennisrepresentaties 2: Eenvoud en.
Dr. Patrick De Causmaecker, KaHo St.-Lieven, Agententechnologie Les 4: praktisch redeneren dr. Patrick De Causmaecker.
Agententechnologie Les 5: reactieve en hybriede agenten
zondag 3 augustus 2014 Click Klik Sunday, 03 August 2014.
ProblemenRedeneren met verstekwaarden Gesloten wereld CircumscriptieLogica met verstekwaarden Autoepistemis che logica Redeneren over kennis: herbekeken.
Grammar Chapter 3 – G1 If en When.
Inleiding CIW 2008 Analysecollege 1. Analysevraag 1 Bekijk de reclame van Bol.com waarbij mensen vragen naar een bepaalde film, maar vervolgens een product.
, 17h30Recursie 1 Inleiding tot recursie Karel Popelier.
Deltion College Engels C1 Luisteren [Edu/001] thema: It’s on tv can-do : kan zonder al te veel inspanning tv-programma’s begrijpen.
Deltion College Engels B1 En Spreken/Presentaties [Edu/007] Thema: Soap(s) can-do : kan met enig detail verslag doen van ervaringen, in dit geval, rapporteren.
Deltion College Engels A2 schrijven [Edu/001]
ANW - inductie & deductie
Docentendag Intelligente Systemen dr.ir. Michael Franssen Faculteit Wiskunde & Informatica Software Engineering & Technology.
Cruz Consulting Het volgende korte examen bestaat uit 4 simpele vragen. De uitkomst van het examen zal aangeven of u zich een ERVAREN PROFESSIONAL kunt.
Reflections on life Sound on Reflecties op het leven. Geluid aan.
The future  vorm 1: een voorspelling doen  Will + hele ww : I will see you soon  Let op: will + not = won't  Shall + hele ww: Shall I help you? 
Deltion College Engels B1 Lezen [no. 001] can-do : 2 products compared.
Cognitieve Modellen Week 13, CMC, 25/11/03. 25/11/03HC132 Usability Engineering Software Engineering User Interface: principes, richtlijnen Evaluaties,
Deltion College Engels A2 Gesprekken voeren [Edu/006]
Deltion College Engels B1 Gesprekken voeren [Edu/006] thema: Look, it says ‘No smoking’… can-do : kan minder routinematige zaken regelen © Anne Beeker.
Monday, 30 March 2015 maandag 30 maart 2015 Leonard Cohen is still on stage This must be a miracle at his age I’m sure that you like this song Enjoy.
Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.
Deltion College Engels C1 Spreken/Presentaties [Edu/004] thema ‘Today I will talk to you about… ‘ can-do : kan duidelijke, gedetailleerde beschrijving.
Deltion College Engels B2 Gesprekken voeren [Edu/005]/subvaardigheid luisteren thema: ‘Pink pop and air-controllers on strike’ can-do : kan in een telefoongesprek.
Wednesday, 01 April 2015 woensdag 1 april 2015 You can walk or you can run You feel sad or you have fun Live today and don’t feel sorrow Don’t think.
Deltion College Engels B1 Schrijven [Edu/005] thema: The Weakest Link or Weekend Millionaire… can-do : kan in brieven of s feitelijke zaken beschrijven.
Coordinaten: Tom Tourwé 10F729 Tel: 3492 Organisatie van de oefeningen: * 1 uur bespreking van oplossing vorige les + bespreking opgave.
Nothing Is As It Seems Lesson 7 What’s the Story?.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
Deltion College Engels B2 Lezen [Edu/003] thema: Topical News Lessons: The Onestop Magazine can-do: kan artikelen en rapporten begrijpen die gaan over.
Deltion College Engels B2 Spreken [Edu/001] thema: What’s in the news? can-do : kan verslag doen van een gebeurtenis en daarbij meningen met argumenten.
Thursday, 02 April 2015 donderdag 2 april 2015 The Song of the Rain 4’51’’ Dans La Nuit 3’52’’ If You Go Away 3’52’’ RADIO JEFKEN 84 STOP CLICK = START.
Deltion College Engels B1 Spreken [Edu/001] thema: song texts can-do : kan een onderwerp dat mij interesseert op een redelijk vlotte manier beschrijven.
Test Tender module Stap 1 Klik op het gewenste object.
Deltion College Engels B2 Lezen[Edu/001] /subvaardigheid schrijven korte samenvattingen thema: Exotic news can-do : lezen om informatie op te doen - kan.
Nothing Is As It Seems Lesson 8 Cubes and Numbers.
PRESENT PERFECT SIMPLE TENSE WB p , TB p89-91.
Algoritmiek Controle-structuren Loops; Switch-statement. Hoorcollege 5 - Ma. 2 okt L.M. Bosveld-de Smet.
Les 0 Structured Query Language SQL. Programma Les 0 – Introductieopdracht Les 1 Les 2 Les 3 Schriftelijke toets.
Kom, ga met ons mee Come, go with us. ‘Wij vertrekken nu naar het land dat de Heer ons beloofd heeft. Ga met ons mee! Je zult het goed hebben bij ons.
Present Simple Tegenwoordige Tijd.  Om aan te geven dat iets nu een gewoonte is. Er zijn een aantal woorden die aangeven dat het om een gewoonte gaat.
Time management Howdoyouset priorities?. Priorities:thingsthatyouthinkare important.
Middel Management Martin Doolaard Praat mee via #seminarISBW.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Allesvoorengels.nl. 1. Wat betekenen de werkwoorden (to) be en can? 2. Hoe maak je korte antwoorden met (to) be en can? 3. Oefeningen allesvoorengels.nl.
Key Process Indicator Sonja de Bruin
Welkom in de Top-2000 kerkdienst
Salt & Light Zout & Licht
Tekst – en Werkboek Fairway 1.
De gyroscoop en omgaan met overgevoeligheid
“There is as much living in a moment of pain as in a moment of joy”
Toekomende tijd: met “will”
Who knows something about scenarioplanning?
SQL Les February 2019.
SQL Les 7 24 February 2019.
SQL Les 9 12 May 2019.
Transcript van de presentatie:

Agententechnologie Les 3: deductief redeneren dr. Patrick De Causmaecker

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

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

Voorbeeld: Prolog

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

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

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

Voorbeeld: Regelbanken

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"

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"

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

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"

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

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

Voorbeeld: Constraint Satisfaction

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.

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

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.

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

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?

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)

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.

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

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

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

Voorbeeld: De stofzuigende agent

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)

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)

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)

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.

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.

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

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.

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

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

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

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.

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)

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.

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.

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

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;