GitHub găzduiește peste 50 de milioane de dezvoltatori care lucrează împreună pentru a găzdui și a revizui codul, pentru a gestiona proiecte și pentru a construi software împreună.
GitHub este locul în care lumea construiește software
Milioane de dezvoltatori și companii își construiesc, livrează și își întrețin software-ul pe GitHub - cea mai mare și mai avansată platformă de dezvoltare din lume.
hakank/jsr_331/Diet.java /
- Mergeți la fișierul T
- Mergeți la linia L
- Mergeți la definiția R
- Copiați calea
pachet org.jcp.jsr331.hakan; |
/ ** |
* |
* Problema dietei în JSR331. |
* |
* Problemă de la http://www.mcs.vuw.ac.nz/courses/OPRE251/2006T1/Labs/lab09.pdf |
* " " |
* Dieta mea necesită ca toate alimentele pe care le consum să provină din unul dintre cele patru .basic |
* grupe alimentare. (tort de ciocolată, înghețată, băutură răcoritoare și cheesecake). |
* Fiecare felie (mare) de tort de ciocolată costă 50c, |
* fiecare lingură de înghețată cu ciocolată costă 20c, |
* fiecare sticlă de cola costă 30c, |
* și fiecare bucată de tort de brânză cu ananas costă 80c. |
* |
* În fiecare zi, trebuie să inger cel puțin 500 de calorii, |
* 6 oz de ciocolată, |
* 10 oz de zahăr, |
* și 8 oz de grăsime. |
* Conținutul nutrițional pe unitate de fiecare aliment este prezentat în tabelul de mai jos. |
* |
* Formulează un model de programare liniar care poate fi folosit pentru a-mi satisface zilnic |
* necesitate nutrițională la cost minim. |
* Tipul de calorii Ciocolată Zahăr Grăsime |
* Mancare (uncii) (uncii) (uncii) |
* Tort de ciocolată (1 felie) 400 3 2 2 |
* Înghețată de ciocolată (1 lingură) 200 2 2 4 |
* Cola (1 sticlă) 150 0 4 1 |
* Tort de brânză cu ananas (1 bucată) 500 0 4 5 |
* |
* " " |
* |
* Comparați cu următoarele modele: |
* - Choco: http://www.hakank.org/choco/Diet.java |
* - Cometă: 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 |
* - Tailor/Essence ': http://www.hakank.org/tailor/diet1.eprime |
* - Zinc: http://www.hakank.org/minizinc/diet1.zinc |
* |
* Model de Hakan Kjellerstrand (hakank @ bonetmail.com) |
* Vezi și http://www.hakank.org/jsr_331/ |
* |
* / |
import javax.constraints. *; |
clasa publică Dieta |
Var [] x; |
int n; // numărul de ingrediente |
int m; // numărul de tipuri de alimente |
String [] food = < " Chocolate Cake ", " Chocolate ice cream ", " Cola ", " Pineapple cheesecake " >; |
String [] ingrediente = < " Calories ", " Chocolate ", " Sugar ", " Fat " >; |
Problema p = ProblemFactory. newProblem ("Dieta"); |
public static main main (String [] args) |
Diet diet = dieta noua (); |
dietă. defini (); |
dietă. solve (); |
> |
// Definirea problemei |
public void define () |
n = 4; // numărul de ingrediente |
m = 4; // numărul de tipuri de alimente |
int [] maxVals = < 200000, 2000000, 2000000, 200000 >; |
int [] pret = < 50, 20, 30, 80 >; // în cenți |
int [] limite = < 500, 6, 10, 8 >; // minim necesar pentru o dietă |
// Mâncare: 0 1 2 3 |
int [] [] matrice =, // calorii |
< 3, 2, 0, 0 >, // ciocolata |
< 2, 2, 4, 4 >, // zahar |
< 2, 4, 1, 5 >>; // gras |
// definirea variabilelor |
x = p. variableArray ("x", 0, 10, m); |
Var [] sume = p. variableArray ("sume", 0, 10000, n); |
Var cost = p. variabilă („cost”, 0, 100000); |
// definește și postează constrângeri |
încerca |
for (int i = 0; i n; i ++) |
p. post (p. scalProd (matrice [i], x), "=", sume [i]); |
p. post (sume [i], "> =", limite [i]); |
> |
p. post (p. scalProd (preț, x), "=", cost); |
p. log (p. getVars ()); |
> catch (Excepția e) |
p. jurnal ("Eroare la constrângerile de postare:" + e); |
Sistem. ieșire (- 1); |
> |
> |
public void solve () |
// |
// căutare |
// |
Solver solver = p. getSolver (); |
Strategia SearchStrategy = solver. getSearchStrategy (); |
// Strategy.setVars (x); |
// Strategy.setVarSelectorType (VarSelectorType.INPUT_ORDER); |
// Strategy.setVarSelectorType (VarSelectorType.MIN_VALUE); |
// Strategy.setVarSelectorType (VarSelectorType.MAX_VALUE); |
strategie. 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); |
strategie. 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 (noua StrategyLogVariables (solver)); |
// |
// rezolva |
// |
// solver.traceExecution (adevărat); |
Soluție soluție = rezolvator. findOptimalSolution (Obiectiv. MINIMIZARE, p. getVar („cost”)); |
if (soluție == nulă) |
p. log („Fără soluție”); |
> altfel |
soluţie. Buturuga (); |
Sistem. afară. println ("\ n Cost:" + soluție. getValue ("cost")); |
for (int i = 0; i m; i ++) |
Sistem. afară. println (food [i] + ":" + soluție. getValue ("x-" + i)); |
> |
Sistem. afară. println (); |
> |
rezolvator. logStats (); |
> |
> |
- Copiați liniile
- Copiați legătura permanentă
- Vezi git blame
- Referință în noul număr
- Contactați GitHub
- Prețuri
- API
- Instruire
- Blog
- Despre
Nu puteți efectua acțiunea în acest moment.
V-ați conectat cu o altă filă sau fereastră. Reîncărcați pentru a reîmprospăta sesiunea. V-ați deconectat într-o altă filă sau fereastră. Reîncărcați pentru a reîmprospăta sesiunea.
- GitHub - brendanhaygogol Un SDK complet pentru serviciile Google pentru Haskell
- Fitness Master Cum să te razi cu 5% grăsime corporală - Articolul
- GitHub - mercaridietcube Lumea super fly greutate; cadru PHP flexibil
- GitHub - steve-perkinsfitnessjiffy-spring Tracker de dietă și exerciții
- Dezvoltarea dietei ... Dezastrul dezvoltării; Maestru al practicilor de dezvoltare