
idea worker - fikir işçisi
PYTHON PULP ve MIN ÖRNEĞİ
06.08.2019 04:57Bu yazımda Pulp ile minimization örneği kodlarını ekleyeceğim. "Neden uğraşıyorsun? Şirketten bütçe çıkartırsın ve paket yazılım alınır." diyenler olacaktır, ama bireysel vizyon ve misyon ifademi hatırlatmak isterim. Python ücretsiz ve güvenilir bir dost, bunu da unutmayalım.
Python IDE'de olan kodları aşağıya ekliyorum. İlk başta karmaşık gelebilir, ama birkaç defa okumak karmaşayı azaltacaktır.
# doğrusal programlama minimization örneği
#Örnek Aydın Ulucan'ın "Yöneylem Araştırması" adlı kitabında mevcuttur.
'''
min X1 +X2 + X3 +X4 + X5 + X6
kısıtlar:
X6 +X1 >= 47
X1 +X2 >= 122
X2 + X3 >= 286
X3 + X4 >= 258
X4 + X5 >= 194
X5 + X6 >= 90
Xi >=0
'''
from pulp import *
prob_planlama = LpProblem("Min Hemşire Sayısı" , LpMinimize)
X1 = LpVariable("Değişken 1" , 0 , None , LpInteger)
X2 = LpVariable("Değişken 2" , 0 , None , LpInteger)
X3 = LpVariable("Değişken 3" , 0 , None , LpInteger)
X4 = LpVariable("Değişken 4" , 0 , None , LpInteger)
X5 = LpVariable("Değişken 5" , 0 , None , LpInteger)
X6 = LpVariable("Değişken 6" , 0 , None , LpInteger)
prob_planlama += X1 + X2 + X3 + X4 + X5 + X6
prob_planlama += X6 +X1 >= 47 , "Kısıt 1"
prob_planlama += X1 +X2 >= 122 , "Kısıt 2"
prob_planlama += X2 + X3 >= 286 , "Kısıt 3"
prob_planlama += X3 + X4 >= 258 , "Kısıt 4"
prob_planlama += X4 + X5 >= 194 , "Kısıt 5"
prob_planlama += X5 + X6 >= 90 , "Kısıt 6"
prob_planlama.solve()
print ("Statü: " , LpStatus[prob_planlama.status])
for v in prob_planlama.variables():
print (v.name , " = " , v.varValue)
print (pulp.value(prob_planlama.objective))
Kodları çalıştırınca elde dttiğimiz sonuçlar şunlar:
Statü: Optimal
Değişken_1 = 0.0
Değişken_2 = 179.0
Değişken_3 = 107.0
Değişken_4 = 151.0
Değişken_5 = 43.0
Değişken_6 = 47.0
527.0
—————