UITWERKINGEN

8.1 eenvoud en uitdrukkingskracht

Uitwerking 8.1.1

(Dit is de uitwerking van opgave 1 op pagina 131 in ‘Introduction to knowledge systems’)

?dog = Rover, ?person = Lucky.

> Opgave 8.1.1

Uitwerking 8.1.2

(Dit is de uitwerking van opgave 2 op pagina 131 in ‘Introduction to knowledge systems’)

a – De regel kan alleen bepalen wat de achternaam van de zoon is als de achternaam van de vader bekend is. De gezond-verstand regel vertelt ons echter ook wat de achternaam van de vader is als de achternaam van de zoon bekend is.
b – Ja, tenzij bekend is dat deze relatie commutatief is. Daar niet elke relatie commutatief is, zie de vader-zoon relatie, kunnen we deze eigenschap niet in de interpreter inbouwen.
c – if (father ?fath ?son-1) and (surname ?son-1 ?sur)
then (assert (surname ?fath-1 ?sur))
– if (brother ?bro-1 ?bro-2) and (surname ?bro-2 ?sur)
then (assert (surname ?bro-1 ?sur))
Met de eerst regel moet de interpreter er op letten dat deze niet in een lus terecht komt. Eerst de achternaam van de zoon afleiden, dan die van de vader, vervolgens weer die van de zoon, enz.
d – Er is geen bezwaar tegen het toevoegen van een regel die zegt dat de relatie commutatief is.

> Opgave 8.1.2

Uitwerking 8.1.3

(Dit is de uitwerking van opgave 3 op pagina 131 in ‘Introduction to knowledge systems’)

Nee! Met behulp van deductie bepalen we de uitspraken en relaties die waar zijn in de toestand die we onder ogen hebben. Productieregels daarentegen maken een nieuwe toestand waarin een uitspraak of relatie waar is. Deze uitspraak of relatie hoeft echter niet waar te zijn in de oorspronkelijke toestand die leidde tot het toepassen van de productieregel.

> Opgave 8.1.3

Uitwerking 8.1.4

(Dit is de uitwerking van opgave 5 op pagina 132 in ‘Introduction to knowledge systems’)

a
kids: regel 10
hungry runner: regel 13
lunch-time: regels 11 en 12
lunch-time kids: regel 11.
b
werkgeheugen conflictverzameling score winnaar
kids: 10 1 10
breakfast-time hungry kids: 1, 2, 6, 8, 10 3 8
hungry runner: 13 1 13
breakfast-time seniors: 1, 2, 3, 4, 5, 6, 7, 8, 9 1 1

c
1. Bepaal de conflictverzameling: regels 1, 2, 6, 7, 8, 9, 10 en 13
2. Bepaal de regels met de hoogste score: regels 8 en 9
3. Kies de eerste: regel 8
4. Verwijder data: breakfast-time kids hungry
5. Bepaal de conflictverzameling: regels 13
6. Bepaal de regels met de hoogste score: regels 13
7. Kies de eerste: regel 13
8. Verwijder data: runner

> Opgave 8.1.4

Uitwerking 8.1.5

(Dit is de uitwerking van opgave 6 op pagina 133 in ‘Introduction to knowledge systems’)

a – Als er geen verkeersaanbod op de boerderijweg is, zal het verkeerslicht op de hoofdweg de hele tijd op groen staan.
b – Bij voldoende verkeersaanbod op de boerderijweg zullen de verkeerslichten om en om op groen staan. De tijd dat de verkeerslichten op rood, geel en groen staan, wordt volledig bepaald door de tijdschakelaars.
c – Als de sensor altijd aangeeft dat er verkeer staat op de boerderijweg, zullen de verkeerslichten om en om op groen staan. De tijd dat de verkeerslichten op rood, geel en groen staan, wordt volledig bepaald door de tijdschakelaars.

> Opgave 8.1.5

Uitwerking 8.1.6

(Dit is de uitwerking van opgave 7 op pagina 131 in ‘Introduction to knowledge systems’)

a
(parent Mary Ellen)
(parent Ellen Paige)
(parent Ellen Morgan)
(parent Virgil Ellen)
(parent Mark Paige)
(parent Mark Morgan)
(grandparent Mary Paige)
(grandparent Mary Morgan)
(grandparent Mark Paige)
(grandparent Mark Morgan)
(uncle Karl Paige)
(uncle Karl Morgan)
(uncle Eric Paige)
(uncle Eric Morgan)
(uncle Mike Paige)
(uncle Mike Morgan)
(aunt Paula Paige)
(aunt Paula Morgan)
(aunt Julie Paige)
(aunt Julie Morgan)

b – Nee. Hoewel we eerst ‘parent’ moeten afleiden voordat we ‘grandparent’ kunnen afleiden, is de volgorde van de regels niet van belang. Wanneer nieuwe data beschikbaar komt wordt voor elke regel opnieuw bekeken of deze toegepast kan worden. Doordat opgeslagen wordt voor welke instantie een regel al is toegepast, worden oneindige lussen voorkomen.
c – Het oorspronkelijke doel is (uncle ?unc Paige).
Regel 4 geeft vervolgens twee nieuwe doelen (brother ?unc ?mom) en
(mother mom Paige) die tot het oorspronkelijke doel lijden.
Het werkgeheugen maakt doel (brother ?unc ?mom) waar voor: ?unc = Karl en ?mom = Ellen.
Nu ?mom = Ellen bekend is, kunnen we het tweede doel van regel 4 bijwerken: (mother Ellen Paige).
Dit tweede doel is ook waar gegeven het werkgeheugen. Dus: (uncle Karl Paige).
Vervolgens moeten we controleren of de twee doelen van regel 4 nog op een andere wijze gerealiseerd kan worden. Dit kan echter niet.
Tenslotte moeten we controleren of het oorspronkelijke doel nog op een andere wijze gerealiseerd kan worden. Dit is inderdaad mogelijk met behulp van regel 5, enzovoorts.

c
doel: (grandparent ?x Paige)

regel 3: (parent ?x ?par) en

(parent par Paige)

regel 1: (mother ?x ?par)

geheugen: (mother Mary Ellen)

?x = Mary, ?par = Ellen

regel 1: (mother Ellen Paige)

geheugen: een waar feit

dus: (grandparent Mary Paige)

——————————————————————————

geheugen: (mother Ellen Paige)

regel 1: (mother Paige Paige)

geheugen: een onbekend feit.

———————————————————————————

regel 2: (father Paige Paige)

geheugen: een onbekend feit.

———————————————————————————

geheugen: (mother Ellen Morgan)

regel 1: (mother Morgan Paige)

geheugen: een onbekend feit.

———————————————————————————

regel 2: (father Morgan Paige)

geheugen: een onbekend feit.

——————————————————————————————

regel 2: (father ?x ?par)

geheugen: (father Virgil Ellen)

?x = Virgil, ?par = Ellen

regel 1: (mother Ellen Paige)

geheugen: een waar feit

dus: (grandparent Virgil Paige)

——————————————————————————————

enzovoort.

e – Het is efficiënter om eerst (parent ?par Paige) te beschouwen omdat we dan slechts hoeven te kijken naar de ouders van Paige. Alleen voor de ouders van Paige hoeven we te controleren of bepalen wie de ouders van de ouders zijn. In de oorspronkelijke formulering moeten we voor elke (parent ouder kind) feit in het geheugen controleren of het kind een ouder van Paige is. Het zal duidelijk zijn dat er meestal meer (parent ouder kind) feiten zijn dan er ouders van Paige zijn.

f – We kunnen de grootouders van Paige aanzienlijk sneller bepalen.

> Opgave 8.1.6

Uitwerking 8.1.7

(Dit is de uitwerking van opgave 8 op pagina 135 in ‘Introduction to knowledge systems’)

In principe is dit mogelijk. Wat professor Digit claimt is echter gemakkelijker gezegd dan gedaan. De huidig stand van de techniek is nog niet zo ver dat we dit praktisch kunnen realiseren.

> Opgave 8.1.7

Uitwerking 8.1.8

(Dit is de uitwerking van opgave 10 op pagina 135 in ‘Introduction to knowledge systems’)

a – Waar. De interpreter van het programma zorgt voor de ‘pattern matching’ en de ‘backtracking’.
b – Onwaar. In eersteorde logica is het bepalen of een zin uit een verzameling gegevens volgt, semi-beslisbaar. Dit betekent dat we ware zinnen altijd kunnen afleiden, maar dat we in het algemeen niet kunnen aantonen dat een zin niet afleidbaar is. In een gegevensbank, welke we kunnen beschouwen als een speciaal geval van eerste orde logica, kunnen we wel bepalen of een zin al dan niet uit de gegevens volgt.
c – Onwaar. ‘Failure as negation’ wordt juist veelvuldig gebruikt. Ook zonder ‘failure as negation’ hoeft voor een logisch programma geen bovengrens voor de tijdscomplexiteit vast te liggen.
d – Waar. De atomaire zin uit een relationele gegevensbank is een speciaal geval van een horn-clause; namelijk een regel met een als-deel dat altijd waar is en een dan-deel dat geen variabelen bevat.
e – Onwaar. Logische programmeertalen zijn sterk in het uitdrukken van informatie welke gebruikt kan worden voor het maken van inferenties. Gestructureerde overervingstalen bieden juist kennisbouwstenen (epistemologische primitieven).

> Opgave 8.1.8