Hakank és mester · hakankhakank · GitHub
A GitHub több mint 50 millió fejlesztőnek ad otthont, amelyek együttesen működnek együtt kódok befogadásában és felülvizsgálatában, projektek kezelésében és szoftverek építésében.

A GitHub az, ahol a világ szoftvereket épít
Fejlesztők és vállalatok milliói építik, szállítják és tartják karban szoftverüket a GitHubon - a világ legnagyobb és legfejlettebb fejlesztői platformján.
hakank/jsr_331/Diet.java /
- Ugrás a T fájlra
- Menj az L sorra
- Menj az R definícióhoz
- Útvonal másolása
| org.jcp.jsr331.hakan csomag; |
| / ** |
| * |
| * Diétás probléma a JSR331-ben. |
| * |
| * Probléma: http://www.mcs.vuw.ac.nz/courses/OPRE251/2006T1/Labs/lab09.pdf |
| * " " |
| * Az étrendem megköveteli, hogy az összes elfogyasztott étel a négy alap egyikéből származzon |
| * ételcsoportok. (csokoládétorta, fagylalt, üdítő és sajttorta). |
| * Minden (nagy) szelet csokoládétorta 50c-be kerül, |
| * minden gombóc csokoládé fagylalt 20c, |
| * minden üveg kóla 30 c, |
| * és minden darab ananászos sajttorta 80c-ba kerül. |
| * |
| * Minden nap legalább 500 kalóriát kell bevennem, |
| * 6 oz csokoládé, |
| * 10 oz cukor, |
| * és 8 oz zsír. |
| * Az egyes élelmiszerek egységnyi tápanyagtartalmát az alábbi táblázat mutatja. |
| * |
| * Készítsen egy lineáris programozási modellt, amely felhasználható a mindennapjaim kielégítésére |
| * tápanyagigény minimális költség mellett. |
| * Kalória típusa Csokoládé cukor zsír |
| * Étel (uncia) (uncia) (uncia) |
| * Csokoládétorta (1 szelet) 400 3 2 2 |
| * Csokoládéfagylalt (1 gombóc) 200 2 2 4 |
| * Cola (1 üveg) 150 0 4 1 |
| * Ananászos sajttorta (1 db) 500 0 4 5 |
| * |
| * " " |
| * |
| * Hasonlítsa össze a következő modellekkel: |
| * - Choco: http://www.hakank.org/choco/Diet.java |
| * - Üstökös: http://www.hakank.org/comet/diet.co |
| * - ECLiPSE: http://www.hakank.org/eclipse/diet.ecl |
| * - Gecode/R: http://www.hakank.org/gecode_r/diet.rb |
| * - Gecode: http://www.hakank.org/gecode/diet.cpp |
| * - Google CP Solver: http://www.hakank.org/google_or_tools/diet1.py |
| * - JaCoP: http://www.hakank.org/JaCoP/Diet.java |
| * - MiniZinc: http://www.hakank.org/minizinc/diet1.mzn |
| * - SICStus: http://www.hakank.org/sicstus/diet1.pl |
| * - Szabó/esszencia ”: http://www.hakank.org/tailor/diet1.eprime |
| * - Cink: http://www.hakank.org/minizinc/diet1.zinc |
| * |
| * Hakan Kjellerstrand modellje (hakank @ bonetmail.com) |
| * Lásd még: http://www.hakank.org/jsr_331/ |
| * |
| * / |
| import javax.constraints. *; |
| nyilvános osztály Diéta |
| Var [] x; |
| int n; // az összetevők száma |
| int m; // élelmiszertípusok száma |
| Húr [] étel = < " Chocolate Cake ", " Chocolate ice cream ", " Cola ", " Pineapple cheesecake " >; |
| Húr [] összetevők = < " Calories ", " Chocolate ", " Sugar ", " Fat " >; |
| P probléma = ProblemFactory. newProblem ("Diéta"); |
| public static void main (String [] érvel) |
| Diétás étrend = új Diéta (); |
| diéta. define (); |
| diéta. megoldani (); |
| > |
| // Probléma meghatározás |
| public void define () |
| n = 4; // az összetevők száma |
| m = 4; // élelmiszertípusok száma |
| int [] maxVals = < 200000, 2000000, 2000000, 200000 >; |
| int [] ár = < 50, 20, 30, 80 >; // centben |
| int [] határértékek = < 500, 6, 10, 8 >; // a diétához szükséges minimum |
| Étel: 0 1 2 3 |
| int [] [] mátrix =, // kalória |
| < 3, 2, 0, 0 >, // csokoládé |
| < 2, 2, 4, 4 >, // cukor |
| < 2, 4, 1, 5 >>; // zsír |
| // változók meghatározása |
| x = p. változóArray ("x", 0, 10, m); |
| Var [] összeg = p. variableArray ("összegek", 0, 10000, n); |
| Var költség = p. változó ("költség", 0, 100000); |
| // megadni és feladni a kényszereket |
| próbálja meg |
| mert (int i = 0; i n; i ++) |
| o. post (p. scalProd (mátrix [i], x), "=", összegek [i]); |
| o. post (összegek [i], "> =", korlátok [i]); |
| > |
| o. post (p. scalProd (ár, x), "=", költség); |
| o. napló (getVars () o.); |
| > fogás (e kivétel) |
| o. napló ("Hiba a korlátok feladásakor:" + e); |
| Rendszer. kijárat (- 1); |
| > |
| > |
| public void megoldani () |
| // |
| // keresés |
| // |
| Megoldó megoldó = p. getSolver (); |
| SearchStrategy stratégia = megoldó. getSearchStrategy (); |
| // strategy.setVars (x); |
| // strategy.setVarSelectorType (VarSelectorType.INPUT_ORDER); |
| // strategy.setVarSelectorType (VarSelectorType.MIN_VALUE); |
| // strategy.setVarSelectorType (VarSelectorType.MAX_VALUE); |
| stratégia. setVarSelectorType (VarSelectorType. MIN_DOMAIN); |
| // strategy.setVarSelectorType (VarSelectorType.MIN_DOMAIN_MIN_VALUE); |
| // strategy.setVarSelectorType (VarSelectorType.MIN_DOMAIN_RANDOM); |
| // strategy.setVarSelectorType (VarSelectorType.RANDOM); |
| // strategy.setVarSelectorType (VarSelectorType.MIN_DOMAIN_MAX_DEGREE); |
| // strategy.setVarSelectorType (VarSelectorType.MIN_DOMAIN_OVER_DEGREE); |
| // strategy.setVarSelectorType (VarSelectorType.MIN_DOMAIN_OVER_WEIGHTED_DEGREE); |
| // strategy.setVarSelectorType (VarSelectorType.MAX_WEIGHTED_DEGREE); |
| // strategy.setVarSelectorType (VarSelectorType.MAX_IMPACT); |
| // strategy.setVarSelectorType (VarSelectorType.MAX_DEGREE); |
| // strategy.setVarSelectorType (VarSelectorType.MAX_REGRET); |
| // Strategy.setValueSelectorType (ValueSelectorType.IN_DOMAIN); |
| stratégia. setValueSelectorType (ValueSelectorType. MIN); |
| // Strategy.setValueSelectorType (ValueSelectorType.MAX); |
| // Strategy.setValueSelectorType (ValueSelectorType.MIN_MAX_ALTERNATE); |
| // strategy.setValueSelectorType (ValueSelectorType.MIDDLE); |
| // Strategy.setValueSelectorType (ValueSelectorType.MEDIAN); |
| // Strategy.setValueSelectorType (ValueSelectorType.RANDOM); |
| // Strategy.setValueSelectorType (ValueSelectorType.MIN_IMPACT); |
| // Strategy.setValueSelectorType (ValueSelectorType.CUSTOM); |
| // solver.addSearchStrategy (új StrategyLogVariables (megoldó)); |
| // |
| // megoldani |
| // |
| // solver.traceExecution (true); |
| Megoldás megoldás = megoldó. findOptimalSolution (Cél. MINIMIZÁL, p. getVar ("költség")); |
| if (megoldás == null) |
| o. napló ("Nincs megoldás"); |
| > más |
| megoldás. napló (); |
| Rendszer. ki. println ("\ n Költség:" + megoldás. getValue ("költség")); |
| for (int i = 0; i m; i ++) |
| Rendszer. ki. println (élelmiszer [i] + ":" + megoldás. getValue ("x-" + i)); |
| > |
| Rendszer. ki. println (); |
| > |
| megoldó. logStats (); |
| > |
| > |
- Sorok másolása
- Másolja a permalinket
- Tekintse meg a hibát
- Hivatkozás az új számban
- Forduljon a GitHub-hoz
- Árazás
- API
- Kiképzés
- Blog
- Ról ről
Jelenleg nem hajthatja végre ezt a műveletet.
Egy másik füllel vagy ablakkal jelentkezett be. Töltse be újra a munkamenet frissítéséhez. Kijelentkezett egy másik fülön vagy ablakban. Töltse be újra a munkamenet frissítéséhez.