Mögliche Kombinationen kodieren

Gast #2468069
Lesenswert?
• ▲
▼
Mehrere Variablen können verschiedene Inhalte haben, es sind aber nur 
bestimmmte Kombinationen erlaubt.
Blödes Beispiel:

Basis:  Wasser, Brühe, Pudding
Zutat1: Tee, Möhren, Mandeln

Es soll also ausgeschlossen sein, dass Brühe und Tee ausgewählt werden, 
d.h. wenn Basis = Brühe dann Zutat1 = Möhren

Muss ich alle möglichen oder unmöglichen Kombinationen ablegen, oder 
gibt es eine Art Bedingung, die jedem Element zugeordnet werden kann?

Das ganze soll dynamisch sein, also Variablenzahl und Inhalte ändern 
sich.
#2468097
Lesenswert?
• ▲
▼
In SQL? Such nach "Checks", "constraints", ...

Im Programmcode?
1
  my %erlaubt=(
2
    Wasser=>{Tee=>1, Möhren=>1, Mandeln=>1},
3
    Pudding=>{Mandeln=>1}
4
usw.
5
  );
6

7

8
  if (!$erlaubt{$basis}->{$zutat}) {
9
    print "Verboten!\n";
10
    $zutat=$alte_zutat;
11
  }

In der GUI?
Hier besser den Inhalt der zweiten Auswahlmöglichkeit dynamisch nach der 
ersten füllen...
Gast #2468276
Lesenswert?
• ▲
▼
Hi und Danke für das Interesse. Ich dachte jedoch eher an systematische 
Ansätze denn an konkreten Code.
ernsts Ansatz ist ja eine Zuordnung der erlaubten Zutaten1 für eine 
Basis.
Die Schreibarbeit wird aber schnell größer, wenn noch 'Zutaten' 
hinzukommen.
Ich dachte, es gibt evtl. noch bessere Konzepte (bin kein Informatiker)?
#2468291
Lesenswert?
• ▲
▼
Jan schrieb:
> Ich dachte, es gibt evtl. noch bessere Konzepte

Nein, noch ist die KI-Forschung nicht so weit, das Computer selber 
abstrahieren können.

Die Speicherung lässt sich effizienter lösen, als mein Beispielcode das 
macht, aber dennoch musst du dem Rechner für jede Kombination erklären, 
obs passt oder eben nicht.

Etwas vereinfachen könnte man das durch das einfügen zusätzlicher 
Attribute oder Gruppierungen.
Also z.B. Pudding "ist eine" Süßspeise, Mandeln "passen zu" Süßspeisen.

Dann, wenn neue Sachen dazukomen:
Schokostreussel "passen zu" Süßspeisen. => Pudding akzeptiert diese 
automatisch.

Kuchen "ist eine" Süßspeise, MAndeln und Schokostreussel werden 
automatisch akzeptiert.


Wenn es aber nicht um strikte ja/nein Aussagen geht, sondern du einfach 
nur "mit großer Warscheinlichkeit" das richtige Ergebnis brauchst, und 
du auf große Trainings-Datenmengen Zugreifen kannst:

Neuronales Netz oder Bayes-Klassifikation, d.H. eine große Menge an 
Kochrezepten "lernen lassen", um anschließend neue Kochrezepte auf 
ungewöhnliche Kombinationen abzuklopfen. Da könnte dann aber

Jan schrieb:
> (bin kein Informatiker)

zum Problem werden.
(Firma: Q3) #2473120
Lesenswert?
• ▲
▼
Aber gerade Essen ist m.E. vollkommen regellos. Z.B. passt die Zuordnung 
herzhaft/süß auch nicht in irgendwelche Regeln. Es gibt Steak mit 
Pfirsich oder Mandarinen und es gibt Schokolade mit Chili.

Ein alter Programmierer-Spruch lautet: "Alles, was man beschreiben kann, 
kann man auch programmieren." Also: Auf die Beschreibung kommt es an ... 
ok, und jetzt bist du genau so schlau wie vorher.

Sorry und schönes Rest-Weihnachten. :-)
#2473260
Lesenswert?
• ▲
▼
> Jan schrieb:
>> Ich dachte, es gibt evtl. noch bessere Konzepte

Um die Ideen (Neuronales Netz oder Bayes-Klassifikation) mal 
aufzugreifen...
Was man hier machen könnte wäre z.B.
1
            süß     sauer   salzig  bitter   scharf ...
2
Apfel       0.4     0.6     0.0     0.0      0.0    
3
Banane      0.6     0.0     0.0     0.0      0.0    
4
Blaubeere   0.6     0.4     0.0     0.0      0.0    
5
Paprika     0.3     0.1     0.0     0.2      0.1 ...

Hat man die eindeutige Klassifizierung in z.B. Obst, Gemüse, Gewürz etc. 
kann man mit Multiclass classification (SVM mit passendem Kernel, 
logistische Regression) in einem ersten Schritt lernen vorherzusagen, zu 
welcher Klasse eine unbekannte Sache gehört (oder man clustert die Daten 
mit z.B. k-means und "schaut sich an", was was ist bzw. labeled die 
unbekannten Sachen in einem Cluster entsprechend den bekannten).
In einem zweiten Schritt lernt man dann z.B. verschiedene Zubereitungen 
und kann dann vorhersagen, ob eine bestimmte Kombination wahrscheinlich 
ist oder nicht.

Εrnst B✶ schrieb:
> Nein, noch ist die KI-Forschung nicht so weit, das Computer selber
> abstrahieren können.

hat man die o.g. Klassifizierung nicht und lässt den Computer 
"abstrahieren" -> Unüberwachtes Lernen (unsupervised learning), deep 
learning, sind die Ergebnisse mittlerweile schon sehr beeindruckend
http://www.youtube.com/watch?v=ZmNOAtZIgIk
http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial

Wer sich dafür interessiert z.B.
http://jan2012.ml-class.org/
http://pgm-class.org
http://nlp-class.org

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren