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.
Alles ist möglich. Einfacher wird's wenn du uns die Programmiersprache verrätst und welches Regelwerk gelten soll.
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...
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)?
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.
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. :-)
> 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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.