Gleichungssystem an bestimmte Lösung annähern |
29.04.2020, 14:57 | Michael7676 | Auf diesen Beitrag antworten » |
Gleichungssystem an bestimmte Lösung annähern Wie würdet ihr folgendes Beispiel Lösen: Angenommen ihr konsumiert 3 Mahlzeiten am Tag. 1. Portion von Mahlzeit A hat 384 cal 1. Portion von Mahlzeit B hat 251 cal 1. Portion von Mahlzeit C hat 124 cal Das Ziel ist es mit so wenigen Portionen wie möglich so nah wie Möglich an einen bestimmten Wert zu kommen sagen wir 1000 cal. Wobei ihr jede Mahlzeit mindestens einmal konsumieren müsst. Und zusätzlich sollten die Mahlzeiten auch relativ ausgeglichen verteilt werden also nicht zb jz 4 mal A und 1 B und 1C. also 384A + 251B + 124C ~ 1000 u. A,B,C => 1 Lösung hier wäre zb: 2A 2B 2C Meine Ideen: Mir fehlt leider jeglicher Ansatz. Wäre über Hilfe sehr dankbar. B.R. Michael |
||
29.04.2020, 18:21 | Elvis | Auf diesen Beitrag antworten » |
Die Summe 384+251+124=759 ist näher an 1000 als die doppelte Menge 1518. Was du mit "relativ" ausgeglichen meinst ist unklar, gleich oder ungleich kenne ich, relativ gleich ist relativ schwammig. Im allgemeinen kann man ein Optimiersystem darauf ansetzen, aber nur, wenn du weißt, was du willst. |
||
29.04.2020, 19:05 | URL | Auf diesen Beitrag antworten » |
Relativ ausgeglichen vielleicht im Sinne von , wenn die Anzahl Portionen von A ist. Natürlich und die anderen Bedingungen analog. |
||
29.04.2020, 19:59 | Elvis | Auf diesen Beitrag antworten » |
In diesem Fall berechne ich mit LPSolve und dem Programm ---------------------------------------------------------------------------- min: D; 384*A+251*B+124*C+D=1000; A>=1;B>=1;C>=1;D>=0; xAB+B-A>=0;xAB+A-B>=0; xAC+C-A>=0;xAC+A-C>=0; xAB<=1;xAC<=1; int A,B,C; ---------------------------------------------------------------------------- die Lösung A=B=1,C=2 also 883<1000 und wenn 1000 auch überschritten werden darf, was ich modelliere als ---------------------------------------------------------------------------- min: D; 384*A+251*B+124*C+D=1000; A>=1;B>=1;C>=1;D>=-124; xAB+B-A>=0;xAB+A-B>=0; xAC+C-A>=0;xAC+A-C>=0; xAB<=1;xAC<=1; int A,B,C; ---------------------------------------------------------------------------- bekomme ich die Lösung A=C=1, B=2 also 1010>1000 (Die Optimierung funktioniert mit beliebigen Vorgaben, die Lösung muss nicht immer in der Nähe von 1000 sein) (Die Zeilen mit x modellieren die nicht vorhandene Betragsfunktion.) |
|