Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

41

Monday, February 7th 2005, 10:24pm

Quoted

Original von NullAhnung
Und wo find ich was zu Prolog und Listen?

das sind die Übungsblätter 4 und 5.
zurück zu Hornklauseln, ist ja ein spannendes Thema,
Im Skript steht ganz genau:

Quoted


eine Horn-klausel ist eine Klausel in konjunktiver Normalform mit folgenden Eingenschaften:
Jede Disjunktion in ihr enthält höchstens ein positives Literal.
Hornklauseln haben die Eingenschaft, dass sie immer genau ein minimales Modell haben.

und als Beispiele für Hornklausel u. a.

Quoted


Home(Clair) /\ Home(Max) /\ -Home(Carl)

ich verstehe das so, "jede Disjunktion in ihr" soll nicht heißen, dass sie unbedingt eine Disjunktion haben muss,
sondern, wenn sie eine Disjunktion hat, dann soll diese höchstens ein postives Literal enthalten.
With great power comes great responsibility

This post has been edited 1 times, last edit by "Sinan" (Feb 7th 2005, 10:25pm)


  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

42

Monday, February 7th 2005, 10:47pm

Quoted

Original von Sinan
zurück zu Hornklauseln, ist ja ein spannendes Thema,
Im Skript steht ganz genau:

Quoted


eine Horn-klausel ist eine Klausel in konjunktiver Normalform mit folgenden Eingenschaften:
Jede Disjunktion in ihr enthält höchstens ein positives Literal.
Hornklauseln haben die Eingenschaft, dass sie immer genau ein minimales Modell haben.
... was sprachlich schon mal falsch ist, da der Begriff der konjunktiven Normalform nicht sinnvoll auf Klauseln anwendbar ist, sondern nur auf Formeln. Gemeint sind Hornformeln bzw. Formeln. Aber das habe ich oben ja bereits erläutert.

Quoted

und als Beispiele für Hornklausel u. a.

Quoted


Home(Clair) /\ Home(Max) /\ -Home(Carl)

ich verstehe das so, "jede Disjunktion in ihr" soll nicht heißen, dass sie unbedingt eine Disjunktion haben muss,
sondern, wenn sie eine Disjunktion hat, dann soll diese höchstens ein postives Literal enthalten.
So ist es auch (siehe mein anderer Beitrag).
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

dfex

Junior Schreiberling

  • "dfex" is male

Posts: 248

Date of registration: Dec 11th 2001

43

Tuesday, February 8th 2005, 4:46pm

Quoted

Original von NullAhnung
Kann mir vielleicht noch wer in gaaaaanz einfachen Worten das Forward-Chaining und das Backward-Chaining erklären? Danke

ähm .. noch mal unterstreich ..

vielleicht auch mal das "in gaaaaanz einfachen Worten" weglassen. aber könnte das bitte nochmal jemand versuchen mit eigenen worten zu erklären?
wäre echt gut :)

Hannes5282

Trainee

  • "Hannes5282" is male

Posts: 57

Date of registration: Nov 13th 2002

44

Tuesday, February 8th 2005, 5:25pm

also diese bitte kann ich nur unterstützen!!

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

45

Tuesday, February 8th 2005, 7:03pm

Quoted

Original von NullAhnung
Kann mir vielleicht noch wer in gaaaaanz einfachen Worten das Forward-Chaining und das Backward-Chaining erklären?
Gegeben ist eine aus Fakten und Regeln bestehende Wissensbasis. Nun haben wir einen weiteren Fakt (Goal), von dem wir wissen möchten, ob er aus der Wissensbasis ableitbar ist. Beispiel (geklaut aus http://www.isys.uni-klu.ac.at/ISYS/Cours…ndouts/KE05.pdf):

Quoted

Regeln:
R1: insekt(X) -> tier(X)
R2: säugetier(X) -> tier(X)
R3: ameise(X) -> insekt(X)
R4: biene(X) -> insekt(X)
R5: spinne(X) -> insekt(X)
R6: löwe(X) -> säugetier(X)
R7: tiger(X) -> säugetier(X)
R8: zebra(X) -> säugetier(X)

Fakten:
F1: zebra(sula)
F2: tiger(momo)

Goal:
tier(sula)


Wir wollen also wissen, ob sula ein Tier ist.

Um das herauszufinden, können wir zum Beispiel Backward Chaining oder Forward Chaining verwenden.

Forward Chaining: Wir inferieren einfach munter drauflos und schauen, ob sich irgendwann das Goal (oder seine Negation) ergibt. Beispiel:

Quoted

Schritt 0 (wir gehen von den Fakten aus):
{zebra(sula), tiger(momo)}

Schritt 1 (wir können R7 und R8 anwenden):
{zebra(sula), tiger(momo), säugetier(sula), säugetier(momo)}

Schritt 2:
{zebra(sula), tiger(momo), säugetier(sula), säugetier(momo), tier(sula), tier(momo)}

Fertig. (Denn tier(sula) wollten wir beweisen.)


Backward Chaining: Wir gehen vom Goal aus und zerlegen das Goal in mehrere Subgoals, von denen eines erfüllt sein muß, um auch das Goal zu erfüllen. Wir fragen uns also, was aus der Wissensbasis inferierbar sein muß, damit auch das Goal aus ihr inferierbar ist. Beispiel:

Quoted

Schritt 0 (wir gehen von Goal aus):
{tier(sula)}

Schritt 1 (R1 und R2):
{insekt(sula), säugetier(sula)}

Schritt 2 (R3 bis R8):
{ameise(sula), biene(sula), spinne(sula), löwe(sula), tiger(sula), zebra(zula)}

Fertig. (Denn zebra(sula) ist ein Fakt der Wissensbasis.)



Beide Verfahren sind je nach Wissensbasis und Goals verschieden gut einsetzbar. Hat man beispielsweise viele Regeln und wenig Fakten, ist Forward Chaining besser. Hat man wenig Regeln und viele Fakten, so verursacht Backward Chaining weniger Aufwand. Kann man die Goals klar formulieren, ist Backward Chaining besser, sonst Forward Chaining.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 1 times, last edit by "Joachim" (Feb 8th 2005, 7:04pm)


NullAhnung

Erfahrener Schreiberling

  • "NullAhnung" is female

Posts: 332

Date of registration: Apr 28th 2003

46

Tuesday, February 8th 2005, 7:16pm

Besten Dank. Denke jetzt hab ichs verstanden.

dfex

Junior Schreiberling

  • "dfex" is male

Posts: 248

Date of registration: Dec 11th 2001

47

Tuesday, February 8th 2005, 7:30pm

wie? so einfach? verdammt.

vielen dank

larzan

Trainee

Posts: 36

Date of registration: Feb 26th 2002

Location: Von den 7 Bergen bei den 7 Zwergen

48

Tuesday, February 8th 2005, 7:43pm

@joachim :
danke, die sollten dich mal das script updaten lassen, dann wäre das alles viel einleuchtender :D

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

49

Tuesday, February 8th 2005, 9:41pm

Quoted

Original von larzan
@joachim :
danke, die sollten dich mal das script updaten lassen, dann wäre das alles viel einleuchtender :D

das sollten wir Herrn Nejdl wirklich mal vorschlagen, aber lieber nach der Klausur :D
ich fühle mich irgendwie immer noch nicht so sicher mit der Formulierung der Sätze in Prädikatenlogik,
ich habe paar Aufgaben gelöst, aber ob die Lösung richtig ist ?(
hat jemand einen heißen Tipp?

Jede Perosn, die alle Bayernfans nicht mag, ist klug
forall x,y: person(x) /\ bayernfan(y) /\ not mag(x,y) ----> klug(x)
oder
forall y: not exist x: person(x) /\ bayernfan(y) /\ mag(x,y) ----> klug(x)

Es gibt eine Frau, die alle Männer mag, die nicht Bayernfans sind
forall x: exist y: man(x) /\ not bayernfan(x) ----> mag(y,x)

Niemand mag einen Professor, es sei denn, der Professor ist klug
forall x,y: person(x) /\ professor(y) /\ klug(y) ----> mag(x,y)
With great power comes great responsibility

Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

50

Tuesday, February 8th 2005, 9:57pm

Quoted

Original von Sinan
Jede Perosn, die alle Bayernfans nicht mag, ist klug
forall x,y: person(x) /\ bayernfan(y) /\ not mag(x,y) ----> klug(x)
oder
forall y: not exist x: person(x) /\ bayernfan(y) /\ mag(x,y) ----> klug(x)

also ich habs ähnlich wie dein erstes: (wobei A = für alle, E existiert)

AxAy: not mögen(x,bayernfan(y)) => klug(x)

Quoted

Original von Sinan
Es gibt eine Frau, die alle Männer mag, die nicht Bayernfans sind
forall x: exist y: man(x) /\ not bayernfan(x) ----> mag(y,x)


AxEy: mögen(y,x) /\ not bayernfan(x) /\ männlich(x) /\ weiblich(y)

Quoted

Original von Sinan
Niemand mag einen Professor, es sei denn, der Professor ist klug
forall x,y: person(x) /\ professor(y) /\ klug(y) ----> mag(x,y)

AxAy: professor(y) /\ klug(y) => mögen(x,y) (1)

oder

AxAy: professor(y) /\ not klug(y) => not mögen(x,y) (2)

Beim letzten bin ich mir allerdings nich so sicher. Bei beiden gibt es Probleme, einen Professor zu mögen, der dumm ist... was ja genau genommen nicht erlaubt ist.
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

51

Tuesday, February 8th 2005, 10:15pm

wie wär's mit
Ay: E kein x: person(x) /\ professor(y) /\ not klug(y) ----> mag(x,y)
hört sich irgend wie besser an
With great power comes great responsibility

Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

52

Tuesday, February 8th 2005, 10:30pm

nur so nebenbei ...
"E kein x" gibts nich als schreibweise bzw. ist nicht üblich.

wenn du aus drücken willst "es gibt kein x: F", dann mach das lieber so

für alle x: not F
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

53

Tuesday, February 8th 2005, 11:03pm

Quoted

Original von Sinan
Jede Perosn, die alle Bayernfans nicht mag, ist klug
forall x,y: person(x) /\ bayernfan(y) /\ not mag(x,y) ----> klug(x)
Ist OK, ich würde aber den zweiten Quantor nach innen ziehen, um deutlich zu machen, daß Du eine Aussage über "alle Personen" und nicht über "alle Paare (x, y) von Personen und Bayernfans" machen willst:

FORALL x: (person(x) AND (NOT EXISTS y: (bayernfan(y) AND mag(x, y)))) -> klug(x)

Quoted

Es gibt eine Frau, die alle Männer mag, die nicht Bayernfans sind
forall x: exist y: man(x) /\ not bayernfan(x) ----> mag(y,x)
Damit sagst Du "Jeder Mann, der kein Bayernfans ist, wird von jemandem/etwas gemocht."

Es muß heißen:
EXISTS x: frau(x) AND (FORALL y: (mann(y) AND NOT bayernfan(y)) -> mag(x, y))

Quoted

Niemand mag einen Professor, es sei denn, der Professor ist klug
forall x,y: person(x) /\ professor(y) /\ klug(y) ----> mag(x,y)
Du sagst: "Jeder mag jeden klugen Professor."

Es muß heißen:
FORALL x: professor(x) -> ((FORALL y: NOT mag (y, x)) OR klug(x))
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

54

Tuesday, February 8th 2005, 11:05pm

Quoted

Original von vier
AxAy: not mögen(x,bayernfan(y)) => klug(x)
Das geht so natürlich nicht, da bayernfan ein Prädikat ist. Es darf also nicht als Argument von anderen Prädikaten vorkommen.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

55

Tuesday, February 8th 2005, 11:06pm

Quoted

Original von vier
nur so nebenbei ...
"E kein x" gibts nich als schreibweise bzw. ist nicht üblich.

wenn du aus drücken willst "es gibt kein x: F", dann mach das lieber so

für alle x: not F
... oder natürlich NOT EXISTS x: F
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

56

Wednesday, February 9th 2005, 11:34am

@ Joachim: BESTEN DANK für die große Unterstützung und all die Antworten, die so vieeele Unklarheiten beseitigt haben :)

@ Alle, die mitschreiben: VIEL ERFOLG :)
With great power comes great responsibility

mDev

Erfahrener Schreiberling

  • "mDev" is male

Posts: 282

Date of registration: Oct 10th 2002

Location: Hannover

Occupation: Wissenschaftlicher Mitarbeiter

57

Thursday, February 10th 2005, 9:44am

wurde irgendwas gesagt wann mit den ergebnissen zu rechnen ist?

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

58

Thursday, February 10th 2005, 9:57am

Quoted

Original von mDev
wurde irgendwas gesagt wann mit den ergebnissen zu rechnen ist?

hab direkt Herrn Brase nach der Klausur gefragt:
"3 bis 4 Wochen"
bin sehr gespannt :]
With great power comes great responsibility

dimi

Trainee

  • "dimi" started this thread

Posts: 41

Date of registration: Nov 18th 2002

59

Thursday, February 10th 2005, 4:25pm

und wo?

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

60

Thursday, February 10th 2005, 4:31pm

Quoted

Original von dimi
und wo?
Im Glaskasten vor dem KBS (Appelstraße 4, vorderes Treppenhaus).
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 1 times, last edit by "Joachim" (Feb 10th 2005, 4:31pm)