[Progra] Übung 12 Aufgabe 3b)

[Progra] Programmierung
[DSAL] Datenstrukturen und Algorithmen
[SWT] Softwaretechnik
[DB] Datenbanken und Informationssysteme

Übung 12 Aufgabe 3b)

Beitragvon mr.nice » 04.02.08 16:57

Hi!

Ich hab jetzt schon ewig rumgewurschtelt, aber leider funktionierts immer noch nicht ganz.

Wenn ich das Programm frage, welche Stationen ich mit einer direkten Verbindung erreichen kann, kommen sehr unstetige Antworten.

z.B:
Code: Alles auswählen
direkteVerbindung(turmweg, ZIEL, linie2)



Meistens stimmt alles, aber bei manchen Starthaltestellen zeigt er den Vorgänger an. Ich kann aber auch keine Regelmäßigkeit in den falschen Antworten finden...

Und da ich ja nur 2 Fakten benutzen darf, kann es doch eigentlich nicht so viele Möglichkeiten geben, denn in 3 b) kann ich ja dann nur 2 mal den nachfolger(Start,Ziel,LinieX) benutzen...

Hoffe mir kann jemand helfen!
mr.nice
 
Beiträge: 43
Registriert: 07.01.08 18:34

Re: Übung 12 Aufgabe 3b)

Beitragvon HE » 04.02.08 17:10

mr.nice hat geschrieben:Hi!
Wenn ich das Programm frage, welche Stationen ich mit einer direkten Verbindung erreichen kann, kommen sehr unstetige Antworten.

z.B:
Code: Alles auswählen
direkteVerbindung(turmweg, ZIEL, linie2)



Meistens stimmt alles, aber bei manchen Starthaltestellen zeigt er den Vorgänger an. Ich kann aber auch keine Regelmäßigkeit in den falschen Antworten finden...


Daraus, dass das Ding nicht deterministisch ist (jedenfalls nach keinem bekannten Muster) schließe ich messerscharf, das du was falsch gemacht hast.

Leider ist es vollkommen unmöglich, dir konkreter zu helfen, weil deine Lösung unbekannt ist. Bitte stell konkretere Fragen (und bitte ohne deine Lösung).
Benutzeravatar
HE
 
Beiträge: 453
Registriert: 09.03.07 12:20
Wohnort: Aachen
Studiert seit: WS 06/07
Anwendungsfach: Mathe

Beitragvon thana » 04.02.08 17:11

und WIE soll man dir helfen? Du hast halt eindeutig irgendwo einen Fehler drin wenn direkteVerbindung den Vorgänger liefert.
und bitte gewöhn dir an die Tags zu setzen - in diesem falle also [Progra]
thana
 
Beiträge: 264
Registriert: 18.10.07 17:01

Beitragvon mr.nice » 04.02.08 17:23

Vielleicht hat ja jemand ein ähnliches Problem...
Ich komme einfach nicht klar mit 2 Fakten, und wie gesagt, so viele Möglichkeiten gibt es da ja nicht, 2 mal nachfolger(...) zu benutzen.

Da ich hier ja keine Lösung von mir posten darf, wird es wohl eher schwer, mir zu helfen...

Aber was soll ich jetzt machen??
mr.nice
 
Beiträge: 43
Registriert: 07.01.08 18:34

Beitragvon HE » 04.02.08 17:24

Zur Not gibst du halt nicht ab, wenn du es nicht konntest. Das Forum ist nicht dafür da, deine Hausaufgaben zu machen.
Benutzeravatar
HE
 
Beiträge: 453
Registriert: 09.03.07 12:20
Wohnort: Aachen
Studiert seit: WS 06/07
Anwendungsfach: Mathe

Beitragvon theTux » 04.02.08 17:28

mr.nice hat geschrieben:Aber was soll ich jetzt machen??

Nachdenken. Und dann den Thread lesen, in dem gesagt wurde, dass Regeln und Fakten zweierlei sind. Ich wüsste jetzt auch so spontan nicht, wozu man in der 3b überhaupt Fakten braucht...
Stur lächeln und... oh, falscher Pinguin.
Benutzeravatar
theTux
 
Beiträge: 577
Registriert: 15.01.06 16:41

Beitragvon mr.nice » 04.02.08 17:34

ich versuchs mal so:

also seien die fakten

Die Kinder und ihre Nachfolgenden Geschwister...

Code: Alles auswählen
kinder(Monika, Peter).
kinder(Peter, Hans).
kinder(Hans, Anne).



und dann die Regel:

Code: Alles auswählen
aelter(KindA, KindB) :- kinder(KindA, X), kinder(KindB, X).


also es geht nicht um den Sinn sonder darum, dass ich ja die Fakten kinder(..) benutze, dass habe ich gemeint, also ich will KEINE neuen Fakten in b) erstellen....
mr.nice
 
Beiträge: 43
Registriert: 07.01.08 18:34

Beitragvon Purzelbaum » 04.02.08 17:35

Du musst doch nur dafür sorgen, dass du in deiner Regel einen Nachfolger findest, der dort anfängt, wo die Verbindung anfängt und bis zu einem Nachfolger geht, der dort aufhört wo wie der Verbindung aufhört. Beide müssen von der selben Linie sein aber können zwischen Anfang und Ende beliebig viele uninteressante Nachfolger haben....
Oder seh ich das falsch?
Zuletzt geändert von Purzelbaum am 04.02.08 17:36, insgesamt 1-mal geändert.
Purzelbaum
 
Beiträge: 63
Registriert: 15.12.07 20:13

Beitragvon mirko » 04.02.08 17:35

du darfst durchaus auf die fakten aus a zurückgreifen - du darfst nur maximal 2 neue fakten definieren...
mirko
 
Beiträge: 1032
Registriert: 22.10.06 18:33
Studiert seit: WS 12/13

Beitragvon mr.nice » 04.02.08 17:40

@HE: Das Handtuch werfen hatte ich eigentlich nicht vor...

@Purzelbaum: Ja genau so denke ich auch aber irgendwie ist er Wurm drin :(

@mirko: Also KÖNNTE ich nachfolger(...) auch mehrmal als 2 mal benutzen?

Würde ich jetzt
Code: Alles auswählen
haltestellen(haltestellen...,linie1).
haltestellen(haltestellen...,linie2).
haltestellen(haltestellen...,linie3).
haltestellen(haltestellen...,linie4).
haltestellen(haltestellen...,linie5).

machen, wären das ja 5 Fakten oder?
mr.nice
 
Beiträge: 43
Registriert: 07.01.08 18:34

Beitragvon mirko » 04.02.08 17:51

mr.nice hat geschrieben:@mirko: Also KÖNNTE ich nachfolger(...) auch mehrmal als 2 mal benutzen?


jap

mr.nice hat geschrieben:Würde ich jetzt
Code: Alles auswählen
haltestellen(haltestellen...,linie1).
haltestellen(haltestellen...,linie2).
haltestellen(haltestellen...,linie3).
haltestellen(haltestellen...,linie4).
haltestellen(haltestellen...,linie5).

machen, wären das ja 5 Fakten oder?


haltestellen? war doch gar nicht gefordert? was hast du damit vor? einfach ausgedrückt könnte man sagen, dass alles, was kein :- und kein ?- beinhaltet ein faktum ist. dein bsp wären also 5 fakten.
mirko
 
Beiträge: 1032
Registriert: 22.10.06 18:33
Studiert seit: WS 12/13

Beitragvon mr.nice » 04.02.08 17:54

@mirko: Das war ja auch nur ein Beispiel, ich glaube man braucht nur nachfolger(...) und das 2 mal, liege ich da richtig?

Kann ich eigenlich einfach 2 Fakten abfragen und die beide mit einem logischen UND verknüpfen, sodass nur dann YES kommt wenn beide Wahr sind? Müsste doch gehen aber wie?
mr.nice
 
Beiträge: 43
Registriert: 07.01.08 18:34

Beitragvon mirko » 04.02.08 18:25

mr.nice hat geschrieben:@mirko: Das war ja auch nur ein Beispiel, ich glaube man braucht nur nachfolger(...) und das 2 mal, liege ich da richtig?


wie oft du das brauchst, ist von deiner implementierung abhängig. du darfst es jedenfalls so oft benutzen, wie du möchtest...

mr.nice hat geschrieben:Kann ich eigenlich einfach 2 Fakten abfragen und die beide mit einem logischen UND verknüpfen, sodass nur dann YES kommt wenn beide Wahr sind? Müsste doch gehen aber wie?


hast du dir schonmal die folien angesehen, oder warst du in der vorlesung? ich finde es ehrlich gesagt nicht unbedingt eine gute idee, dir alles vorzukauen. wenn du es so gar nciht findest, kannst du dich ja nochmal melden...
mirko
 
Beiträge: 1032
Registriert: 22.10.06 18:33
Studiert seit: WS 12/13

Beitragvon mr.nice » 04.02.08 18:33

ich war am mittwoch da, freitag nicht, aber ich habe mir die folien schon angeschaut.

meine letzte frage:
Code: Alles auswählen
direkteVerbindung(...) :-.....
direkteVerbindung(...) :- .....
direkteVerbindung(...) :- .....
direkteVerbindung(...) :- .....



wäre erlaubt? das sind ja regeln und keine fakten?
mr.nice
 
Beiträge: 43
Registriert: 07.01.08 18:34

Beitragvon mr.nice » 04.02.08 18:37

oh mann, ich habs...
auch wenn meine fragerei ein bisschen blöd war, habt ihr mir trotzdem geholfen...

Danke an alle, die sich mit mir rumgenervt haben :)
mr.nice
 
Beiträge: 43
Registriert: 07.01.08 18:34

Nächste

Zurück zu Praktische Informatik