Konzervgyár

leírás

nyit/zár

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)
T120011
T231010
T34209
honnan\hováI. telepII. telep
T133.5
T222.5
T364.0
gyárkapacitás (t)költség (euró/t)
I. egység46026
II. egység56021

modell

nyit/zár

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)\\ \]

megoldás (JuMP+GLPK)

nyit/zár
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.0GY1GY2
T1200.00.0
T2170.0140.0
T30.0420.0