GTx1 a mesternél · olivierzachGTx1 · 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.
GTx_6501/Házi feladat 7/diet_optimization_part2.py /
Nem található definíció ebben a fájlban.
- Ugrás a T fájlra
- Menj az L sorra
- Menj az R definícióhoz
- Útvonal másolása
" " |
ISYE6501 - Haladó elemzési modellezés |
15.2. Kérdés |
A videókban láttuk a „diétás problémát”. |
(A diétás probléma az egyik első nagyszabású optimalizálási probléma |
a gyakorlatban tanult. Még az 1930-as és 40-es években a hadsereg találkozni akart a |
a katonák táplálkozási szükségletei a költségek minimalizálása mellett.) |
Ebben a házi feladatban valós adatokkal oldhatja meg a diéta problémáját. |
Az adatokat a diet.xls fájl tartalmazza. |
1. Készítsen egy optimalizálási modellt (egy lineáris programot) a |
legolcsóbb étrend, amely kielégíti a napi maximális és minimális táplálkozást |
korlátokat, és oldja meg a PuLP használatával. Írja be a kódot és a megoldást. |
(Az optimális megoldás a levegőben pattogatott pattogatott kukorica, buggyantott tojás étrendje lehet, |
narancs, nyers jégsaláta, nyers zeller és fagyasztott brokkoli. UGH!) |
2. Kérjük, adja hozzá modelljéhez a következő korlátozásokat |
(ami további változók hozzáadását igényelheti), és oldja meg az új modellt: |
a. Ha ételt választanak, akkor legalább 1/10 adagot kell választani. |
(Tipp: most két változóra lesz szükséged minden egyes ételhez: |
hogy ezt választják-e, és mennyi része az étrendnek. |
Az összekapcsoláshoz meg kell írnia egy korlátozást is.) |
b. Sokan nem szeretik a zellert és a fagyasztott brokkolit. |
Tehát legfeljebb egy választható ki, de nem mindkettő. |
c. A fehérje mindennapos változatosságához, |
legalább 3 féle húst/baromfit/halat/tojást kell kiválasztani. |
[Ha valami kétértelmű (pl. Figyelembe kell venni a bab- és szalonnalevest? |
Létrehozva: 2018. július 2., hétfő 19:29:56 |
@author: zacholivier |
2. rész |
" " |
# töltse be a szükséges könyvtárakat |
#! pip install cellulóz |
cellulózimportból * |
import pandák, mint pd |
# töltse be az étrend adatait |
df = pd. read_excel ( |
nyisd ki ( |
'/ Felhasználók/zacholivier/Asztal/GTX/Házi feladat 7/dietSummer2018.xls', |
„rb” |
), |
sheet_name = 'Sheet1' |
) |
# nézze meg az adatokat |
df. fej () |
# tiszta adat - vegye az első 64 sort az alsó adatok nélkül |
adatok = df [0: 64] |
# konvertálás listára "lista a listán belül" |
adatok = adatok. értékek. tolist () |
# fő ételek szótár létrehozása |
ételek = [x [0] x adatokhoz] |
kalória = dict ([(x [0], float (x [3])) x-re az adatokban]) |
koleszterin = dict ([(x [0], float (x [4])) x-re az adatokban]) |
totalFat = dict ([(x [0], float (x [5])) x adatokhoz]) |
nátrium = dict ([(x [0], float (x [6])) x adatokhoz]) |
szénhidrát = dict ([(x [0], float (x [7])) x adatokhoz]) |
rost = dict ([(x [0], float (x [8])) x-re az adatokban]) |
protien = dict ([(x [0], float (x [9])) x adatokhoz]) |
A-vitamin = dict ([(x [0], float (x [10])) x-re az adatokban]) |
C-vitamin = dict ([(x [0], float (x [11])) x-re az adatokban]) |
kalcium = dict ([(x [0], float (x [12])) x adatokhoz]) |
vas = dict ([(x [0], float (x [13])) x adatokhoz]) |
# lista létrehozása a percekhez és a maximumokhoz (minden étel) |
amin = [1500, 30, 20, 800, 130, 125, 60, 1000, 400, 700, 10] |
amax = [2500, 240, 70, 2000, 450, 250, 100, 10000, 5000, 1500, 40] |
# hozzáfűzi az összes oszlopra vonatkozó korlátozások gyűjteményét |
B = [] |
j esetén a (0, 11) tartományban: |
B. függelék (dict ([(x [0], float (x [j + 3])) x adatokhoz])) |
# határozza meg a költségszótárat |
költség = dict ([(x [0], float (x [1])) x adatokhoz]) |
# hozza létre az optimalizálási probléma keretrendszerét - minimalizálási probléma |
problem2 = LpProblem ('PuLPTutorial', LpMinimize) |
# definiálja a változókat - folytonos |
foodVars = LpVariable. dict ("ételek", ételek, 0) |
# definiálja a bináris változókat |
selectedVars = LpVariable. dikciók ("Kiválasztott", ételek, 0, 1, "Bináris") |
# lp változók szótára |
x = LpVáltozó. dikciók ("x", ételek, 0) |
# definiálja a célfüggvényt |
probléma2 + = lpSum ([költség [f] * foodVars [f] az élelmiszerekben szereplő f)] |
# add a korlátozások összege nagyobb, mint 0,1 vagy kisebb, mint a nagy összeg - ha kiválasztják |
f élelmiszerekben: |
probléma2 + = foodVars [f] 10000 * választottVars [f] |
probléma2 + = foodVars [f]> = .1 * választottVars [f] |
# korlátozások hozzáadása az összes ételhez |
i-re a (0, 11) tartományban: |
dot_B_x = pép. lpSum ([B [i] [j] * foodVars [j] az j ételekben]] |
feltétel1 = amin [i] + pont_B_x |
probléma2 + = feltétel1 |
i-re a (0, 11) tartományban: |
dot_B_x = pép. lpSum ([B [i] [j] * foodVars [j] az j ételekben]] |
feltétel2 = amax [i]> = + pont_B_x |
probléma2 + = feltétel2 |
# adjon hozzá olyan korlátozásokat, amelyek legfeljebb egy ételcsoport egyikét fogyasztják |
probléma2 + = választott változatok ['Fagyasztott brokkoli'] + \ |
selectedVars ['Zeller, Nyers'] 1, 'Legfeljebb egy brokkoli/Zeller' |
# adjon hozzá olyan korlátozásokat, amelyek szerint legalább 1 ételt kell megennünk az ételcsoportból |
probléma2 + = selectedVars ['Sült csirke'] + selectedVars ['Buggyantott tojás'] + \ |
selectedVars ['Rántották'] + selectedVars ['Frankfurter, marhahús'] + \ |
selectedVars ['Kielbasa, Prk'] + selectedVars ['Hamburger W/Toppings'] + \ |
selectedVars ['Hotdog, Plain'] + selectedVars ['Pork'] + \ |
selectedVars ['Bologna, Turkey'] + selectedVars ['Sonka, szeletelt, Extralean'] + \ |
selectedVars ['Fehér tonhal a vízben'] \ |
> = 3, "Legalább három fehérje" |
# megoldja az optimalizálási problémát! |
probléma2. megoldani () |
# nyomtassa ki az optimális étrendet tartalmazó ételeket |
print ('Optimalizálási megoldás:') |
a var problémára2. változók (): |
ha var. varValue> 0: |
ha str (var). find ('Kiválasztott'): |
print (str (var. varValue) + "egységek" + str (var)) |
# nyomtassa ki az optimális étrend költségeit |
print ("Az élelmiszer teljes költsége = $%. 2f"% érték (2. probléma. cél)) |
- Sorok másolása
- Másolja a permalinket
- Tekintse meg a hibát
- Hivatkozás az új számban
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.
- Heli Maman alkalmazás · TechnionYP5779Team5-Diet-Tracker Wiki · GitHub
- Hogyan működik a lemez
- Célok, sikertitkok és tippek Nastya Kamensky-től; obіцяю, Miu, csináld; Tehetséges mesterblog
- Megpróbáltam Beyoncé mester tisztító étrendjét - és ez történt - E! Online
- Hogyan lehet enni, mint egy harcművészeti mester, és növelni akaraterőjét; Mind Hacks WonderHowTo