FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

P1 Zettel 4

P1 Zettel 4 2003-03-22 13:19
RaggaDee
Aufgabe 3a und b
http://kogs-www.informatik.uni-hamburg.de/~klug/p1/Aufgabenblatt04.pdf


Folgendes, meine wie auch die Musterlösung haben sei nicht mehr alle:

voraussetzung(Produkt1,Produkt2) :- arbeitsschritt(Produkt1,_,Produkt2).
voraussetzung(Produkt1,Produkt2) :- arbeitsschritt(Produkt1,_,Zwischenprodukt),
arbeitsschritt(Zwischenprodukt,_,Produkt2).


und


direkt_vorausgesetzt(Produkt1,Produkt2) :- arbeitsschritt(Produkt1,_,Produkt2).
voraussetzung(Produkt1,Produkt2) :- direkt_vorausgesetzt(Produkt1,Zwischenprodukt),
direkt_vorausgesetzt(Zwischenprodukt,Produkt1).


Bei beiden funktioniert das Prädikat ja wohl nur über maximal zwei Arbeistplätzen hinweg, kann das sein? Dabei bekommt man dann auch noch Probleme, wenn man in b) die Betroffenheit eines Endproduktes bei einem ausfallenden Teil berechnen soll, denn wenn Produkt1 über drei Arbeitsschritte zum Endprodukt führt, kann das Prädikat nicht sagen ob es beí Ausfall das wahre Endprodukt betrifft bzw negiert eine Anfrage. Die Musterlösung ist aber genauso, nur anders geschrieben……wie kommts?

Re: P1 Zettel 4 2003-03-22 13:53
Slater
na die musterlösung ist doch gar nicht so falsch wie deine beiden versionen:

% direkte_voraussetzung(Produkt1, Produkt2) ist wahr, wenn in genau
% einem Arbeitsschritt aus dem Produkt1 das Produkt2 erzeugt wird.
% voraussetzung(Produkt1, Produkt2) bildet dazu die transitive Hülle, d.h.
% es werden auch indirekte Abhängigkeiten (über Zwischenprodukte) ermittelt.

direkte_voraussetzung(Produkt1, Produkt2) :-
arbeitsschritt(Produkt1,_,Produkt2).

voraussetzung(Produkt1, Produkt2) :-
direkte_voraussetzung(Produkt1, Produkt2).

voraussetzung(Produkt1, Produkt2) :-
direkte_voraussetzung(Produkt1, Zwischenprodukt),
voraussetzung(Zwischenprodukt, Produkt2).



hier sind beliebig viele ebenene möglich, da REKURSIV (voraussetzung wird wieder aufgerufen)