Egy konzervgyárnak 2 gyáregysége van és 3 termelőtől szerzi be a gyümölcsöket. Az egyes termelők az első táblázatnak megfelelően képesek gyümölcsöt eladni, a megadott egységáron. Tonnánkénti szállítási költségeket (Euróban) a második táblázat mutatja, az egyes gyáregységek maximális kapacitása és a feldolgozás költsége pedig a harmadikban van. A gyümölcskonzerv 50 Euró/tonna áron értékesíthető. Készítse el a maximális hasznot hozó termelési tervet!
termelő | kapacitás (t) | ár (euró/t) |
---|---|---|
T1 | 200 | 11 |
T2 | 310 | 10 |
T3 | 420 | 9 |
honnan\hová | I. telep | II. telep |
---|---|---|
T1 | 3 | 3.5 |
T2 | 2 | 2.5 |
T3 | 6 | 4.0 |
gyár | kapacitás (t) | költség (euró/t) |
---|---|---|
I. egység | 460 | 26 |
II. egység | 560 | 21 |
legyen $x_{ij}\ge 0$ az $i$-ik termelőtől a $j$-ik gyáregységhez szállított mennyiség
\[ \sum_{j} x_{1j} \le 200\\ \sum_{j} x_{2j} \le 310\\ \sum_{j} x_{3j} \le 420\\ \sum_{i} x_{i1} \le 460\\ \sum_{i} x_{i2} \le 560\\ \max\left(50\sum_{ij}x_{ij}-\left(11\sum_{j} x_{1j}+10\sum_{j} x_{2j}+9\sum_{j} x_{3j}+26\sum_{i}x_{i1}+21\sum_{i}x_{i2} +3x_{11}+2x_{21}+6x_{31}+3.5x_{12}+2.5x_{22}+4x_{32}\right)\right)\\ \]
using JuMP, GLPK konzervgyár = Model(GLPK.Optimizer) # változók @variable(konzervgyár, x[1:3,1:2]>=0) # korlátozó feltételek # a termelők korlátai @constraint(konzervgyár, sum(x[1,1:end])<=200) @constraint(konzervgyár, sum(x[2,1:end])<=310) @constraint(konzervgyár, sum(x[3,1:end])<=420) # a gyáregységek korlátai @constraint(konzervgyár, sum(x[1:end,1])<=460) @constraint(konzervgyár, sum(x[1:end,2])<=560) # a profit alkotórészei: bevétel = 50*sum(x) vásárlás = 11*sum(x[1,1:end])+10*sum(x[2,1:end])+9*sum(x[3,1:end]) # a szállítási költségek mátrixa SZK = [ 3 3.5; 2 2.5; 6 4] szállítás = sum(SZK .* x) feldolgozás = 26*sum(x[1:end,1]) + 21*sum(x[1:end,2]) profit = bevétel - (vásárlás + szállítás + feldolgozás) # célfüggvény @objective( konzervgyár, Max, profit ) # optimizálás optimize!(konzervgyár) V = value.(x) println(objective_value(konzervgyár)) display(V)
13070.0 3×2 Matrix{Float64}: 200.0 0.0 170.0 140.0 0.0 420.0
opt=13070.0 | GY1 | GY2 |
---|---|---|
T1 | 200.0 | 0.0 |
T2 | 170.0 | 140.0 |
T3 | 0.0 | 420.0 |