Aufgabe 1

Im nebenstehenden Graphen sollen die kürzesten Wege vom Knoten 1 aus nach dem Dijkstra-Verfahren bestimmt werden. Die Kantenmarkierung 2(1) bedeutet, dass die Kante 2 die Länge 1 hat, also Kantennummer(Länge).

Das Dijkstra-Verfahren benutzt eine priority queue, die über die Funktionen insert, update und  extract manipuliert wird.

a) Protokollieren Sie die Aufrufe dieser Funktionen bei der Verarbeitung durch den Dijkstra- Algorithmus,

b) Berechnen Sie die Felder distance und parent.


Aufgabe 2

Gegeben seien folgende Fakten:

male(bernd).
male(egon).
male(gerd).
male(karl).
male(igor).
female(anna).
female(caecilie).
female(frieda).
female(hilde).
female(julia).
parent(anna, frieda).
parent(bernd, frieda).
parent(anna, gerd).
parent(bernd, gerd).
parent(caecilie, hilde).
parent(caecilie, igor).
parent(egon, hilde).
parent(egon, igor).
parent(gerd,julia).
parent(gerd,karl).
parent(hilde,julia).
parent(hilde, karl).

Deklarieren Sie

schwager(M,X):- Der Mann M ist Schwager von X.
schwaegerin(F,X):- Die Frau F ist Schwägerin von X.
verschwaegert(X,Y):- X und Y sind verschägert.
neffe(N,X):- N ist (männlicher) Neffe des Onkels oder der Tante X.

Hinweis: Vater und Mutter eines gemeinsamen Kindes gelten als verheiratet.

Testen Sie:

schwager(gerd,X)
schwaegerin(F,_)
verschwaegert(gerd,Y)
neffe(N,_).

Abzugeben bis 20.7.2004, 24h

Bitte melden Sie sich zur Klausur an, falls Sie die Voraussetzungen zur Teilnahme erfüllen!

Hier geht es direkt zur MeToo-Anmeldung.