Wie programmiert man das?

Robert9

Member
Registriert
27 Juni 2022
Beiträge
59
Jeden Tag gibt es hier ähnliche Szenen. Die Küche ist ca. 5 mal 5 Meter groß. Rechts und links gibt es Arbeitsplatten.
Rechts stehen am Ende die Microwelle, am Anfang der Kühlschrank. In der Microwelle wird Milch erhitzt, die vorher aus dem Kühlschrank geholt wird. Auf der anderen Seite stehen am einen Ende der Wasserkocher und ein Glas für Kaffeepulver, das auch aus dem Kühlschrank geholt wird. Am anderen Ende steht der Wasserspender.

Jeden Tag mache ich sowas oder was ähnliches:

Milch und Kaffee aus dem Kühlschrank zum Wasserspender tragen. Dort Tasse mit Milch füllen, Glas mit Kaffeepulver füllen. Dann Milch und Kaffee zurück in den Kühlschrank bringen.

Tasse mit Milch 90 Sekunden in die Mikrowelle stellen. Wasserkocher einschalten, kochendes Wasser ins Glas gießen, herumrühren. Das Ergebnis in die Tasse mit Milch gießen. Ab und an muss auch Wasser in den Wasserkocher gefüllt werden. Nicht zu wenig, sonst muss ich dauernd nachfüllen, nicht zuviel, denn sonst erhitze ich ständig unnütz zu viel Wasser.

Weitere Umstände: Jedes Öffnen des Kühlschranks verbraucht Energie, hier sind 30 Grad. Je länger Milch und Kaffee draußen sind, desto wärmer werden sie. Je nachdem welche Reihenfolge ich einhalte, brauche ich mehr Weg in Metern und Zeit in Sekunden.

Mal davon abgesehen, dass diese Kaffeezubereitung nicht wirklich schmackhafte Ergebnisse liefert, überlege ich jeden Tag wie ich das alles optimieren könnte.

Einige Verhältnisse müsste man noch definieren bzw. alles in z.B. in Kosten umrechnen? Wege, Zeit, Trageleistung, Kühlleistung, Erhitzung usw.


Meine Frage nun, wie zur Hölle würde man sowas programmieren? Wo findet man Beispiele, Lehrbücher o.ä.

Vielen Dank vorab, falls jemand was nützliches hierzu beitragen kann.
 
Frag den: https://openai.com/chatgpt/

Warum kombinierst Du nicht die Milch mit dem kalten Wasser und erhitzt beides in der Mikrowelle?
Wenn schon Wasser im Wasserkocher: Wenn Du nur die jeweils benötigte Menge Wasser erhitzt, dann geht es schneller. Stell Dir eine Glasflasche mit Markierungen neben den Wasserkocher.
 
Zuletzt bearbeitet:
1. Frankfurter Küche? Ich will die Küche nicht umgestalten.

2. Warum kombinierst Du nicht die Milch mit dem kalten Wasser und erhitzt beides in der Mikrowelle?
Warum trinke ich nicht besser Mineralwasser?

3. Problem des Handlungsreisenden
Das geht wohl in die richtige Richtung. Mein Gedanke, Kosten zu verbinden und danach zu optimieren, taucht hier auch auf.
Ich werde es morgen ein weiteres Mal lesen. Vielen Dank.


In einer einfachen Welt kommt am Ende eine Funktion heraus. Ich finde ein Maximum und gut.

Wenn es aber keine einfache Funktion gibt, könnte man in einem noch nicht optimierten Programm alle möglichen Wege ausprobieren und am Ende die Wege mit den geringsten Kosten erhalten. Aber wie macht man das? Wie setzt man das um:

Starte bei X = Punkt vor der Küche, gehe nun XA, XB, XC, XD, XE und entsprechend danach alle anderen möglichen Wege bis bestimmte Kriterien erfüllt sind. Anschließend sortiert man den Mist aus bzw. setzt Schalter wie Kaffee geholt = 1; dann keinen Kaffee mehr holen. Kaffee ins Glas getan = 1; dann nicht mehr wiederholen usw.

So oder so werde ich mir als erstes Gedanken über Kosten machen müssen.

Heute ist mir aufgefallen, dass ich die Milch am liebsten sofort zurückstelle, auch wenn ich dann mehr Weg habe und den Kühlschrank dreimal auf und zu mache. Der Automatismus, dass Milch stets so kurz wie möglich aus dem Kühlschrank genommen wird, dürfte daran liegen, dass ich die Geschichte der Milch ein wenig kenne, und all die Sorgen, die man vermeintlich im Lauf der Zeit hatte.

Noch heute dürfen Bauern ihre Frischmilch nur auf dem eigenen Hof verkaufen, dabei kostet sie deutlich weniger und schmeckt deutlich besser als die Industriemilch. Wobei ich nicht weiß, ob uns das schützen soll, oder nur die Konzerne, aber das ist wieder ein anderes Thema.

Gibt es Frameworks für sowas? Grafische Problemlöser? Sowas müsste doch recht häufig in vielen Bereichen vorkommen. Logistik, Einkauf, Verteilung, Verarbeitung usw.

Leider haben wir sowas im Wirtschaftsstudium vor 25 Jahren nicht gelernt, evtl. lernen Wirtschaftsinformatiker sowas?

Evtl. finde ich was mit dem Stichwort Spieleentwicklung? Vielleicht sollte ich das in Unity nachbauen wollen.
 
2. Warum kombinierst Du nicht die Milch mit dem kalten Wasser und erhitzt beides in der Mikrowelle?
Warum trinke ich nicht besser Mineralwasser?

....

Leider haben wir sowas im Wirtschaftsstudium vor 25 Jahren nicht gelernt, evtl. lernen Wirtschaftsinformatiker sowas?
Wenn Du Mineralwasser trinken würdest, dann wäre die Lösung zu einfach. Meine Frage war allerdings ernsthaft gemeint, Deine Fragestellung wahrscheinlich eher nicht.
 
3. Problem des Handlungsreisenden
Das geht wohl in die richtige Richtung. Mein Gedanke, Kosten zu verbinden und danach zu optimieren, taucht hier auch auf.
Ich werde es morgen ein weiteres Mal lesen. Vielen Dank.


In einer einfachen Welt kommt am Ende eine Funktion heraus. Ich finde ein Maximum und gut.

Wenn es aber keine einfache Funktion gibt, könnte man in einem noch nicht optimierten Programm alle möglichen Wege ausprobieren und am Ende die Wege mit den geringsten Kosten erhalten. Aber wie macht man das?
Viel Erfolg! TSP ist NP-schwer. Wenn du eine einfache (deterministische) Lösung für den optimalen Weg findest, dann dürfte dir das zumindest eine Nominierung für den Turing-Award einbringen, wahrscheinlich sogar den Preis selbst. Die Fields-Medaille springt ganz nebenbei möglicherweise auch dabei heraus.
 
Leider haben wir sowas im Wirtschaftsstudium vor 25 Jahren nicht gelernt, evtl. lernen Wirtschaftsinformatiker sowas?
Falsches Studium. Ein Techniker legt erst sein Werkzeug zurecht, bevor er sinnlos in der Küche rum rennt. Kaffeepulver im Kühlschrank ist Unsinn, steht schon auf dem Tisch (wird auch im Laden nicht im Kühlregal verkauft). Zum Wasserkocher gehört eine Thermoskanne, in die später das restliche benötigte Wasser kommt, welches als erstes Kochen muß. Bis dahin wird der Hund ausgeführt, unterwegs fährt man langsam Teile des Hirns hoch. Wieder zurück kommt das Kaffeepulver in die Tasse (steht alles auf dem Tisch), heißes Wasser drauf, der Rest in die Thermoskanne (steht auf dem Tisch) für die zweite Coffein-Infusion. Jetzt kommt die kalte Milch aus dem Kühlschrank in die Tasse mit dem Kaffee (Flasche bleibt für 2. Portion auf dem Tisch). Der frische Kaffee ist eh zu heiß (~80-90°) zum Trinken, die kalte Milch macht es genau mundgerecht. Milch-Mikrowelle total überflüssig.

Nur mal als Alternativ-Vorschlag. Programmieren könnte ich alles zwar auch, inklusive Simulation zur Optimierung. Nutzt mir nur morgens vor der Wirksamkeit des Coffeins Null. Selbst der Hundegang ist komplett im Halbschlaf. Das sind bereits mit <25 Jahren Training vererbbare Reflexe geworden. Das dokumentierte Programm-/Simulationsergebnis würde ich sowieso erst nach der zweiten Tasse Kaffe plus 1/2 Stunde Latenzzeit Minimum verarbeiten können :) .

GN Peter (für morgen schon wieder alles hergerichtet)

PS Da der "travelling salesman" mathematisch exakt nicht lösbar ist, wurde das Problem durch Iteration gelöst. In der Wirtschaftslehre ist das wohl wegen Insolvenzrisiko kein erwünschtes Vorgehen, verständlich ...................
 
Zuletzt bearbeitet:
Wenn Du Mineralwasser trinken würdest, dann wäre die Lösung zu einfach. Meine Frage war allerdings ernsthaft gemeint, Deine Fragestellung wahrscheinlich eher nicht.

Probiere es gerne aus!

a) Kochendes Wasser zum Kaffeepulver schütten, dann die Brühe in die heiße Milch kippen.
b) Nur die Milch erhitzen und Kaffeepulver einrühren oder umgekehrt die heiße Milch über das Pulver schütten.
c) Wie b, aber die Milch mit Wasser strecken

So oder so kommt was nicht wirklich schmackhaftes raus, aber evtl. wirst Du a) den zwei anderen Möglichkeiten vorziehen.
Beitrag automatisch zusammengeführt:

Turing-Award, Fields-Medaille

Lass mal, ich musste seit den LKs in Mathe und Physik mein Hirn nie wieder großartig anstrengen. Da ist eine Grenze, die kann ich nicht überschreiten, auch wenn seltene Tagträume ganz ohne absichtlichen Drogenkonsum z.B. ganz zauberhafte Zusammenhänge von Kosmos, Körpern und reisenden Seelen aufgezeigt haben. Auch komische Rechenformeln schleichen sich alle Jahre wieder nachts in meinen Schlaf. Ich nehme an, das ist dann jeweils Restalkohol vom Silvesterabend ein paar Wochen/Monate vorher. Alternativ liegt es an komische Substanzen im Trinkwasser.

Tatsächlich gibt es aber eine Liste mit Abenteuern, die ich noch gerne erleben möchte. Und sowas ähnliches wie das Küchenproblem, nämlich ein Spiel wie z.B. Spelunky zu programmieren, steht auf dieser Liste, aber dazu fehlt es an Wissen und wahrscheinlich auch an Hirn. Obwohl das nachher vielleicht doch wieder nur ist wie mit Lego zu spielen. So sehe ich zumindest meine sonstigen Programmierarbeiten. Würde man es richtig erklären können, könnte das jeder zwölfjährige.
Beitrag automatisch zusammengeführt:

Alberts Geschichten

Jeder wie er mag.

Ich fange den Tag selbstredend mit warmem Sprudel an, in das ich frischen Limonensaft presse. Die scheußliche Kaffeebrühe kommt erst später, sie dient mehr oder weniger nur dazu, den nicht wirklich tollen Geschmack der Milch zu übertünchen.

Was Hunde angeht, kann ich leider hier nichts tun, sie sind alle hinter Zäunen, leider. Lediglich schreiende Katzen schieße ich nachts mit einer Steinschleuder ab.

Ich bin dann stets hellwach, weil mich das Geschrei geweckt hat und weil die Vorfreude auf die Jagd jede Menge Adrenalin ins Blut schießen lässt.

Damit ich schnell reagieren kann, liegen mehrere Schleudern im Haus, denn ich muss jeweils entscheiden, ob ich nach oben renne, so dass ich von den Balkonen aus ein perfektes Sicht- und Schussfeld habe, oder direkt aus dem Fenster im Erdgeschoss schieße. Letzteres lässt mich schneller agieren, was manchmal notwendig ist, weil der Nachbar mit einer Latte aus dem Haus rennt, um die notgeilen Viecher zu vertreiben.

Soweit die Hintergrundgeschichte für "Notgeile Katzen mit der Schleuder treffen", eine Hommage an Paperboy aus der Sicht eines Zeitungslesers.


Die Lösung für das Kaffeeproblem von oben ist ansonsten einfach:

Gehe zum Kühlschrank, nimm Milch und Kaffee. Gehe schräg zum Wasserkocher, schütte Kaffee ins Glas und Milch in die Tasse. Wasserkocher anschalten. Milch und Kaffee in den Kühlschrank. Tasse in die Mikrowelle. Geschirr vom Abend wegspülen, ist nie viel. Wasser in den Kaffee. Tasse holen. Kaffeebrühe in die Tasse. Fertig. Optimierung ab morgen: Der Wasserbecher muss neben dem Wasserspender stehen.

Aber natürlich geht es nicht darum, sondern darum das einen Rechner machen zu lassen. Ich muss mal sehen, von welchem Spiel mit Draufsicht ich mir die Sprites und die Küche besorgen kann.

Anschließend muss das mit den Katzen und den Schleudern verbunden werden. Das ganze wird dann für den C64 umgesetzt, ich reise zurück in der Zeit und lande den Spielehit aller Spielehits, der mich so reicht macht, dass ich mir heutzutage einen Butler leiste, der richtigen Kaffee macht, und einen Großrechner nebst Programmierteam, die mir das Kaffeeproblem lösen und neben Turing und Fields selbstredend auch einen Nobelpreis einbringen.
 
Zuletzt bearbeitet:
Viel Erfolg! TSP ist NP-schwer. Wenn du eine einfache (deterministische) Lösung für den optimalen Weg findest, dann dürfte dir das zumindest eine Nominierung für den Turing-Award einbringen, wahrscheinlich sogar den Preis selbst. Die Fields-Medaille springt ganz nebenbei möglicherweise auch dabei heraus.
Die Anzahl der Stationen ist hier aber endlich und damit ist das Problem lösbar. Zumal es nicht zwingend einen Algorithmus für das TSP selbst braucht (auch, wenn das eines der einfacheren Probleme ist). Schließlich kann man jedes NP-vollständige Problem in jedes andere NP-vollständige Problem überführen, das ggf. Einen simpleren Algorithmus hat. Simpler im Sinne von: 'für das Individuum einfacher vorstellbar'. Löst man eines, löst man alle.
 
Schließlich kann man jedes NP-vollständige Problem in jedes andere NP-vollständige Problem überführen, das ggf. Einen simpleren Algorithmus hat.
Wie willst du für NP vollständige Probleme einen Algorithmus anbieten? Deswegen sind sie doch NP vollständig, weil sie nicht in endlich her Zeit lösbar sind.
 
Wie willst du für NP vollständige Probleme einen Algorithmus anbieten? Deswegen sind sie doch NP vollständig, weil sie nicht in endlich her Zeit lösbar sind.
Algorithmen gibt es immer. Brute-Force ist auch ein Algorithmus. Der läuft halt in Exponentialzeit. Worauf du hinaus willst ist, dass es keinen polynomiellen, deterministischen Algorithmus gibt, sondern eben nur indeterministische Evolutionsalgorithmen. Das ist aber völlig irrelevant, wenn das spezielle Problem so klein ist, wie im Startbeitrag beschrieben. Da ist die exponentielle Laufzeit völlig irrelevant und man kriegt es innert weniger Sekunden auch auf dem C64 gelöst. Das erlöst einen natürlich nicht davon, dass man trotzdem gewisse Lösungen ablehnen muss (eben z.B. Kaffeepulver in kalte Milch einrühren) und "Unterprobleme" gewichten muss.
 
Wie wäre es mit KI Code Generator? Als erfahrener Programmierer wird man sich angesichts der hahnebüchenen Code die Haare raufen aber als Neuling könnte ich mir vorstellen, dass es hilfreich ist ein Grundgerüst vorgeschlagen zu bekommen mit dem man gleich mit experimentieren beginnen kann?
 
Wie willst du für NP vollständige Probleme einen Algorithmus anbieten? Deswegen sind sie doch NP vollständig, weil sie nicht in endlich her Zeit lösbar sind.
Als Theoretischer Informatiker muss ich jetzt auch meinen Senf dazu geben. 🤪
Die Frage NP und P bezieht sich immer auf die allgemeine Problemstellung. Das heißt aber nicht, dass es für Spezialfälle nicht auch P Lösungen geben kann. Gerade dazu, also zu so Spezialfällen, gibt es unzählige Publikationen. Abgesehen davon kann man alles mittels Brute Force lösen, nur NP sagt dir halt, dass du dafür ne Kreditkarte mit ziemlich hohen Limit haben solltest, um die Serverkosten für die Berechnungen zu zahlen. Des TE Küchenproblem lässt ich vermutlich mittels Brute Force schon in überschaubarer Zeit lösen, denn so groß scheint seine Küche und die Anzahl an Kaffee/Milch-Kochschritte nicht zu sein.
 
Meine natürliche Intelligenz würde mir in diesem Fall raten, das Problem (insoweit es denn wirklich eines ist) ohne den Einsatz von Energie fressender Technik zu lösen.

Außerdem müsste man sich bei der Aufgabenstellung zuerst einmal über Prioritäten und Gewichtungen Gedanken machen, bevor man sich in Optimierungsalgorithmen versucht, weil es ja nicht nur um Wege geht. Wenn man z.B. mit höchster Priorität will, dass die Milch im Vorratsbehälter so kurz wie nur möglich außerhalb des Kühlschranks bleibt, braucht man sich um Wege innerhalb der Küche keine Gedanken zu machen, sondern verlagert das ganze Umfüllgeschehen an den Kühlschrank. Dort dann Kühlschranktür auf - Milch rausnehmen - Kühlschranktür zu - Milch in Gefäß (Tasse) umfüllen - Kühlschranktür auf - Milch zurückstellen - Kühlschranktür zu.

Würde man hingegen ungewollte Energieverluste beim Kühlschrank und ungewollte Erwärmung des Milchvorrats nicht vorab nach ganz oben priorisieren wollen, sondern beides gegen ungewollt lange Wege in der Küche abwägen, müsste man erstmal einen Ansatz finden, die drei Größen in einer gemeinsamen "Währung" auszudrücken. Was erstens nicht trivial ist und zweitens immer einem persönlichen Bias unterliegt. Aber einen bestimmenden Einfluss auf das Ergebnis einer maschinellen Optimierung hätte.

brain.exe ist zudem in der Lage, die Signale des eigenen Körpers (Geschmacks- und Schmerzempfinden, muskuläre Erschöpfung) mitzuverarbeiten, kann offenkundig blödsinnige Lösungen vorab ausschließen, kann mit fuzzy logic arbeiten, ... Oder kurz gesagt: So ein Problem löst man sinnvollerweise mit dem menschlichen Alltagsverstand. Punkt.
 
Zuletzt bearbeitet:
So ein Problem löst man sinnvollerweise mit dem menschlichen Alltagsverstand. Punkt.
Hmm... offenbar wurde dieses allgemein schwierige Problem bereits vom menschlichen Technikverstand bearbeitet (bis zur kommerziellen Marktreife).



Küche ist ca. 5 mal 5 Meter groß
Die Stellfläche sollte dafür ausreichen ;-)
 
Aber natürlich geht es nicht darum, sondern darum das einen Rechner machen zu lassen. Ich muss mal sehen, von welchem Spiel....
Wenn es ein Fantasy-Game werden soll, nix C64 und als Problem langweilig. Falls Mathematik gemeint ist: Dann fällt das Problem in die NP-Klasse "Kaffee ist kalt bevor der Algorithmus fertig ist". Es bleibt nicht nur ein Wege-Problem, sondern auch noch thermo-dynamische und energetische Probleme von Wasser, Milch und Kaffe zu beachten.

Alternativ würde mich eher ein Versuch reizen, statt Kaffee Hundefutter zu nehmen. Ich bin mir sicher, daß unser Hund schneller als ein KI-Programm mit allen Varianten eine optimale Lösung findet.

PS es gab in den 70ern bereits genügend Simulations-S/W auch für solche Probleme.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben