Soru Python kodlamada takıldığım yeri geçemiyorum

Katılım
1 Mart 2022
Mesajlar
3
Reaksiyon puanı
2
Puanları
3
Yaş
30
Python kodda fonksiyon oluşturmuştum. oluşturduğum fonksiyonu kodun herhangi bir başka yerinde çağırsam da çalıştırmıyor. Yardımcı olabilecek olan varsa ayrıntı istedikleri takdir de yazarım.
 

bud

Cezalı
Cezalı
Katılım
29 Kasım 2014
Mesajlar
5,326
Çözümler
6
Reaksiyon puanı
1,710
Puanları
293
Yaş
26
Kodu paylaşırsan yardımcı olabiliriz.
 
Katılım
1 Mart 2022
Mesajlar
3
Reaksiyon puanı
2
Puanları
3
Yaş
30
NP = int(input("Popülasyon büyüklüğünü giriniz:"))
print("NP:",NP)

F = float(input("Ölçek faktörünü giriniz:"))
print("F:",F)

CR = float(input("Çaprazlama oranını giriniz:"))
print("CR:",CR)

#Satırlar arası ve makineler arası gereken boşluk
gm = 2
gr = 2

#Satır sayısı
r=5

#ürün sayısı makine sayısı ve makinelerin genişlik uzunluklarının okunması

ezgi_dosya = open("C:/Users/kullanici/Desktop/Test Problemleri/test_1.txt","r",encoding="utf-8")
for i in range(0,4):
line=ezgi_dosya.readline()
if i==1:n=int(line) #ürün sayısı
if i==3:m=int(line) #makine sayısı

while line.****("n w l")==-1:
line=ezgi_dosya.readline()
genıslık_uzunluk={}

while 1:
line=ezgi_dosya.readline()
if line.****("bitti")!=-1:
break
(n,w,l)=line.split()
genıslık_uzunluk[int(n)]=(float(w),float(l))
ezgi_dosya.close()
print(genıslık_uzunluk)
(w,l)=genıslık_uzunluk[1]
#print(genıslık_uzunluk[1])
genıslık=[]
uzunluk=[]
for i in range(m):
(w,l)=genıslık_uzunluk[i+1]
genıslık.append(w)
uzunluk.append(l)
print("urun_genislik:",genıslık)
print("urun_uzunluk:",uzunluk)

#ürün rotalarınınokunması

ezgi_dosya2=open("C:/Users/kullanici/Desktop/Test Problemleri/test_1_rota.txt","r",encoding="utf-8")
satir=ezgi_dosya2.readline()
while satir.****("başla")==-1:
satir=ezgi_dosya2.readline()
urunno_rota={}
while 1:
satir = ezgi_dosya2.readline()
if satir.****("bitti")!=-1:
break
satir=satir[:-1]
liste1=satir.split(",")
x=len(liste1)
urunno_rota[int(liste1[0])]=liste1[1:x]
print(urunno_rota)
#print(liste1)
#print(urunno_rota[(1)])
ezgi_dosya2.close()
urun_no=[]
urun_rota=[]
for i in urunno_rota.keys():
urun_no.append(i)
print("urun_no:",urun_no)
for i in urunno_rota.values():
urun_rota.append(i)
print("urun_rota:",urun_rota)
#print(urun_rota[0])

print("**************************************************************************************")
#başlangıç çözüm oluşturma

import random
populasyon = []
for i in range(0,NP):
brey = []
for j in range(1,m+1):
brey.append("{:.4f}".format(random.uniform(1, r + 1)))
#print(brey)
populasyon.append(brey)
print("populasyon:",populasyon)
print("**************************************************************************************")
#birinci amaç fonksiyonu bulma

length=[]
depth=[]
satır_genislik_maximum=[]
def amac_bir(i):
satır_liste = []
satır_liste_uzunluk=[]
for h in range(0, r):
satır_liste.append([])
satır_liste_uzunluk.append([])
for j in range(0, m):
for k in range(0, r):
if populasyon[j][0] == str(k + 1):
satır_liste[k].append(genıslık[j])
satır_liste[k].sort(reverse=True)
satır_liste_uzunluk[k].append(uzunluk[j])
#print("genislik:",satır_liste)
#print("uzunluk:",satır_liste_uzunluk)
satır_genislik=[]
for k in range(0,r):
satır_genislik.append(satır_liste[k][:1])
satır_genislik_maximum.append(satır_liste[k][:1])
#print("satırların max genişliği:",satır_genislik)
genislik_toplam=0
for i in range(0,r):
for j in range(0,len(satır_genislik)):
genislik_toplam+=satır_genislik[j]
#print("toplam genislik:",genislik_toplam)
genislik_toplam=genislik_toplam+(gr*(r-1))
#print("toplam genislik:", genislik_toplam)
uzunluk_liste = []
for j in range(0,r):
toplam = 0
for i in range(0,len(satır_liste_uzunluk[j])):
toplam+=satır_liste_uzunluk[j]
toplam=toplam+(gm*(len(satır_liste_uzunluk[j])-1))
uzunluk_liste.append(toplam)
uzunluk_liste.sort(reverse=True)
#print(uzunluk_liste)
uzunluk_toplam=uzunluk_liste[:1]
#print("uzunluk toplam:",uzunluk_toplam)

length.append(uzunluk_toplam[0])
depth.append(genislik_toplam)

for i in range(0,NP):
amac_bir(i)

print("length:",length)
print("depth:",depth)
#print("genişlik",satır_genislik_maximum)

alan=[]
for i in range(0,NP):
alan.append(length*depth)
print("alan:",alan)

print("***********************************************************")
#ikinci amaç fonksiyounu bulma

pop_dayalı_urun_akıs_mal=[]

def amac_iki(i):
satır_liste = []
for h in range(0, r):
satır_liste.append([])
for j in range(0, m):
for k in range(0,r):
if populasyon[j][0] == str(k+1):
satır_liste[k].append(populasyon[j])
satır_liste[k].sort()
print("satırlara atanan populasyonlar:",satır_liste)
sıralı_genislik=[]
sıralı_uzunluk=[]
sıralı_makine=[]
for h in range(0,r):
sıralı_genislik.append([])
sıralı_uzunluk.append([])
sıralı_makine.append([])
for j in range(0,r):
for l in range(0,len(satır_liste[j])):
for k in range(0,m):
if satır_liste[j][l]==populasyon[k]:
sıralı_genislik[j].append(genıslık[k])
sıralı_uzunluk[j].append(uzunluk[k])
sıralı_makine[j].append(genıslık_uzunluk[(k+1)])
print("genişlikler sıralı:",sıralı_genislik)
print("uzunluklar sıralı:", sıralı_uzunluk)
print("makineler sıralı:", sıralı_makine)

for i in range(0,r):
for j in range(0,len(sıralı_uzunluk)):
sıralı_uzunluk[j]=float(sıralı_uzunluk[j])

for i in range(0,len(urun_no)):
for j in range(0,len(urun_rota)):
urun_rota[j]=int(urun_rota[j])

satır_uzunluk=[]
for i in range(0,r):
satır_uzunluk.append([])
#print(satır_uzunluk)
for j in range(0,r):
toplam = 0
for i in range(0,len(sıralı_uzunluk[j])):
toplam+=sıralı_uzunluk[j]
toplam=toplam + ((len(sıralı_uzunluk[j])-1) * gm)
satır_uzunluk[j].append(toplam)
#print(toplam)
print("satırların uzunluğu:",satır_uzunluk)
satır_genislik_maximum=[]
for i in range(0,r):
sıralı_genislik.sort(reverse=True)
if sıralı_genislik!=[]:
satır_genislik_maximum.append(sıralı_genislik[:1])
else:
satır_genislik_maximum.append([])
#print(satır_genislik_maximum)
print("satırların genişliği:", satır_genislik_maximum)
print("******************************************************************")
# print(type(urun_rota[0][0]))
akıs_liste = []
for i in range(0, len(urun_rota)):
akıs_liste.append([])
# print(liste)
def urun_akıs(k):
for h in range(0, len(urun_rota[k])):
akıs_liste[k].append(uzunluk[urun_rota[k][h] - 1])
# akıs_liste[k].append(uzunluk[urun_rota[k][h + 1] - 1])
for k in range(0, len(urun_no)):
urun_akıs(k)
print("ürünlerin akış sırasındaki makine uzunluğu:",akıs_liste)
print("*************************************************************")
urun_akıs_maliyet = []
toplam_aynı_satır = []
for i in range(0, len(urun_no)):
toplam_aynı_satır.append([])
toplam_farklı = []
for i in range(0, len(urun_no)):
toplam_farklı.append([])
toplam_farklı_sağ = []
for i in range(0, len(urun_no)):
toplam_farklı_sağ.append([])
toplam_min = []
for i in range(0, len(urun_no)):
toplam_min.append([])
#print(toplam_min)
for k in range(0, len(akıs_liste)):
#print("k:", k)
#print(akıs_liste[k])
for l in range(0, len(akıs_liste[k]) - 1):
for e in range(0, len(akıs_liste[k])):
if e - l == 1:
#print("l:", l)
#print("e:", e)
#print("kl:", akıs_liste[k][l])
#print("ke:", akıs_liste[k][e])
# print(akıs_liste[k][l])
# print(akıs_liste[k][e])
for s in range(0, len(sıralı_uzunluk)):
for h in range(0, len(sıralı_uzunluk)):
if s == h:
if akıs_liste[k][l] in sıralı_uzunluk and akıs_liste[k][e] in sıralı_uzunluk[h]:
#print("a:", akıs_liste[k][l])
a = sıralı_uzunluk.index(akıs_liste[k][l])
#print("a:", a)
#print("b", akıs_liste[k][e])
b = sıralı_uzunluk[h].index(akıs_liste[k][e])
#print("b:", b)
if a > b:
a, b = b, a
toplam = 0
for t in range(a, b + 1):
toplam += sıralı_uzunluk[t]
toplam = toplam - (akıs_liste[k][l] / 2 + akıs_liste[k][e] / 2)
toplam = toplam + (abs(a - b) * gm)
#print("toplam:", toplam)
toplam_aynı_satır[k].append(toplam)
else:
toplam = 0
for t in range(a, b + 1):
toplam += sıralı_uzunluk[t]
toplam = toplam - (akıs_liste[k][l] / 2 + akıs_liste[k][e] / 2)
toplam = toplam + (abs(a - b) * gm)
#print("toplam:", toplam)
toplam_aynı_satır[k].append(toplam)
else:
if akıs_liste[k][l] in sıralı_uzunluk and akıs_liste[k][e] in sıralı_uzunluk[h]:
#print("a:", akıs_liste[k][l])
a = sıralı_uzunluk.index(akıs_liste[k][l])
#print("a:", a)
#print("b:", akıs_liste[k][e])
b = sıralı_uzunluk[h].index(akıs_liste[k][e])
#print("b:", b)
if a == 0 and b == 0:
if s < h:
toplam = akıs_liste[k][l] / 2 + akıs_liste[k][e] / 2
toplam_sağ = (satır_uzunluk[0] - akıs_liste[k][l] / 2) + (
satır_uzunluk[h][0] - akıs_liste[k][e] / 2)
toplam1 = 0
for t in range(s + 1, h + 1):
if len(satır_genislik_maximum[t]) == 0:
satır_genislik_maximum[t].append(0)
toplam1 += satır_genislik_maximum[t][0]
toplam1 = toplam1 + (abs(h - s) * gr)
toplam = toplam + toplam1
#print("toplam:", toplam)
toplam_sağ = toplam_sağ + toplam1
#print("toplam sağ:", toplam_sağ)
toplam_farklı[k].append(toplam)
toplam_farklı_sağ[k].append(toplam_sağ)
else:
toplam = akıs_liste[k][l] / 2 + akıs_liste[k][e] / 2
toplam_sağ = (satır_uzunluk[0] - akıs_liste[k][l] / 2) + (
satır_uzunluk[h][0] - akıs_liste[k][e] / 2)
toplam1 = 0
for t in range(h + 1, s + 1):
if len(satır_genislik_maximum[t]) == 0:
satır_genislik_maximum[t].append(0)
toplam1 += satır_genislik_maximum[t][0]
toplam1 = toplam1 + (abs(h - s) * gr)
toplam = toplam + toplam1
#print("toplam:", toplam)
toplam_sağ = toplam_sağ + toplam1
#print("toplam sağ:", toplam_sağ)
toplam_farklı[k].append(toplam)
toplam_farklı_sağ[k].append(toplam_sağ)
elif a == 0 and b != 0:
if s < h:
toplam = akıs_liste[k][l] / 2
toplam_sağ = satır_uzunluk[0] - akıs_liste[k][l] / 2
toplam_b = 0
for t in range(0, b):
toplam_b += sıralı_uzunluk[h][t]
toplam_b = toplam_b + akıs_liste[k][e] / 2 + (b * gm)
toplam_b_sağ = satır_uzunluk[h][0] - toplam_b
toplam = toplam + toplam_b
toplam_sağ = toplam_sağ + toplam_b_sağ
toplam1 = 0
for t in range(s + 1, h + 1):
if len(satır_genislik_maximum[t]) == 0:
satır_genislik_maximum[t].append(0)
toplam1 += satır_genislik_maximum[t][0]
toplam1 = toplam1 + (abs(h - s) * gr)
toplam = toplam + toplam1
#print("toplam:", toplam)
toplam_sağ = toplam_sağ + toplam1
#print("toplam sağ:", toplam_sağ)
toplam_farklı[k].append(toplam)
toplam_farklı_sağ[k].append(toplam_sağ)
else:
toplam = akıs_liste[k][l] / 2
toplam_sağ = satır_uzunluk[0] - akıs_liste[k][l] / 2
toplam_b = 0
for t in range(0, b):
toplam_b += sıralı_uzunluk[h][t]
toplam_b = toplam_b + akıs_liste[k][e] / 2 + (b * gm)
toplam_b_sağ = satır_uzunluk[h][0] - toplam_b
toplam = toplam + toplam_b
toplam_sağ = toplam_sağ + toplam_b_sağ
toplam1 = 0
for t in range(h + 1, s + 1):
if len(satır_genislik_maximum[t]) == 0:
satır_genislik_maximum[t].append(0)
toplam1 += satır_genislik_maximum[t][0]
toplam1 = toplam1 + (abs(h - s) * gr)
toplam = toplam + toplam1
#print("toplam:", toplam)
toplam_sağ = toplam_sağ + toplam1
#print("toplam sağ:", toplam_sağ)
toplam_farklı[k].append(toplam)
toplam_farklı_sağ[k].append(toplam_sağ)
elif a != 0 and b == 0:
if s < h:
toplam = akıs_liste[k][e] / 2
toplam_sağ = satır_uzunluk[h][0] - akıs_liste[k][e] / 2
# print("sağ",toplam_sağ)
toplam_a = 0
for t in range(0, a):
toplam_a += sıralı_uzunluk[t]
toplam_a = toplam_a + (akıs_liste[k][l] / 2) + (a * gm)
toplam_a_sağ = satır_uzunluk[0] - toplam_a
# print("sağ",toplam_a_sağ)
toplam = toplam + toplam_a
toplam_sağ = toplam_sağ + toplam_a_sağ
# print("sağ",toplam_sağ)
toplam1 = 0
for t in range(s + 1, h + 1):
if len(satır_genislik_maximum[t]) == 0:
satır_genislik_maximum[t].append(0)
toplam1 += satır_genislik_maximum[t][0]
toplam1 = toplam1 + (abs(h - s) * gr)
toplam = toplam + toplam1
#print("toplam:", toplam)
toplam_sağ = toplam_sağ + toplam1
#print("toplam sağ:", toplam_sağ)
toplam_farklı[k].append(toplam)
toplam_farklı_sağ[k].append(toplam_sağ)
else:
toplam = akıs_liste[k][e] / 2
toplam_sağ = satır_uzunluk[h][0] - akıs_liste[k][e] / 2
# print("sağ",toplam_sağ)
toplam_a = 0
for t in range(0, a):
toplam_a += sıralı_uzunluk[t]
toplam_a = toplam_a + (akıs_liste[k][l] / 2) + (a * gm)
toplam_a_sağ = satır_uzunluk[0] - toplam_a
# print("sağ",toplam_a_sağ)
toplam = toplam + toplam_a
toplam_sağ = toplam_sağ + toplam_a_sağ
# print("sağ",toplam_sağ)
toplam1 = 0
for t in range(h + 1, s + 1):
if len(satır_genislik_maximum[t]) == 0:
satır_genislik_maximum[t].append(0)
toplam1 += satır_genislik_maximum[t][0]
toplam1 = toplam1 + (abs(h - s) * gr)
toplam = toplam + toplam1
#print("toplam:", toplam)
toplam_sağ = toplam_sağ + toplam1
#print("toplam sağ:", toplam_sağ)
toplam_farklı[k].append(toplam)
toplam_farklı_sağ[k].append(toplam_sağ)
elif a != 0 and b != 0:
if s < h:
toplam_a = 0
for t in range(0, a):
toplam_a += sıralı_uzunluk[t]
toplam_a = toplam_a + (akıs_liste[k][l] / 2) + (a * gm)
toplam_a_sağ = satır_uzunluk[0] - toplam_a
toplam_b = 0
for t in range(0, b):
toplam_b += sıralı_uzunluk[h][t]
toplam_b = toplam_b + (akıs_liste[k][e] / 2) + (b * gm)
toplam_b_sağ = satır_uzunluk[h][0] - toplam_b
toplam = toplam_a + toplam_b
toplam_sağ = toplam_a_sağ + toplam_b_sağ
toplam1 = 0
for t in range(s + 1, h + 1):
if len(satır_genislik_maximum[t]) == 0:
satır_genislik_maximum[t].append(0)
toplam1 += satır_genislik_maximum[t][0]
toplam1 = toplam1 + (abs(h - s) * gr)
toplam = toplam + toplam1
#print("toplam:", toplam)
toplam_sağ = toplam_sağ + toplam1
#print("toplam sağ:", toplam_sağ)
toplam_farklı[k].append(toplam)
toplam_farklı_sağ[k].append(toplam_sağ)
else:
toplam_a = 0
for t in range(0, a):
toplam_a += sıralı_uzunluk[t]
toplam_a = toplam_a + (akıs_liste[k][l] / 2) + (a * gm)
toplam_a_sağ = satır_uzunluk[0] - toplam_a
toplam_b = 0
for t in range(0, b):
toplam_b += sıralı_uzunluk[h][t]
toplam_b = toplam_b + (akıs_liste[k][e] / 2) + (b * gm)
toplam_b_sağ = satır_uzunluk[h][0] - toplam_b
toplam = toplam_a + toplam_b
toplam_sağ = toplam_a_sağ + toplam_b_sağ
toplam1 = 0
for t in range(h + 1, s + 1):
if len(satır_genislik_maximum[t]) == 0:
satır_genislik_maximum[t].append(0)
toplam1 += satır_genislik_maximum[t][0]
toplam1 = toplam1 + (abs(h - s) * gr)
toplam = toplam + toplam1
#print("toplam:", toplam)
toplam_sağ = toplam_sağ + toplam1
#print("toplam sağ:", toplam_sağ)
toplam_farklı[k].append(toplam)
toplam_farklı_sağ[k].append(toplam_sağ)
for i in range(0, len(toplam_farklı)):
for j in range(0, len(toplam_farklı)):
if toplam_farklı[j] <= toplam_farklı_sağ[j]:
toplam_min.append(toplam_farklı[j])
else:
toplam_min.append(toplam_farklı_sağ[j])
# print("min toplam:", toplam_min)
for i in range(0, len(urun_no)):
for j in range(0, len(toplam_aynı_satır)):
if len(toplam_aynı_satır) != 0:
toplam_min.append(toplam_aynı_satır[j])
# print("min toplam:", toplam_min)
for k in range(0, len(toplam_min)):
toplam = 0
for j in range(0, len(toplam_min[k])):
toplam += toplam_min[k][j]
#print(toplam)
urun_akıs_maliyet.append(toplam)
print("aynı satır:", toplam_aynı_satır)
print("farklı satır:", toplam_farklı)
print("farklı satır sağ:", toplam_farklı_sağ)
print("min toplam:", toplam_min)
print("ürünlerin akış maliyeti:", urun_akıs_maliyet)
pop_dayalı_urun_akıs_mal.append(urun_akıs_maliyet)
for i in range(0,NP):
amac_iki(i)
print("*************************************************************************")
print("tüm populasyonların ürün akış maliyeti:",pop_dayalı_urun_akıs_mal)
#normalleştirme
urun_akıs_mal=[]
def akıstoplam(j):
toplam=0
for i in range(0,len(urun_no)):
toplam+=pop_dayalı_urun_akıs_mal[j]
urun_akıs_mal.append(toplam)
for j in range(0,NP):
akıstoplam(j)
print("toplam urun akıs maliyeti:",urun_akıs_mal)
Fmax=[]
Fmin=[]
Amax=[]
Amin=[]
def max_min_bulma(i):
Fmax.append(max(urun_akıs_mal))
Fmin.append(min(urun_akıs_mal))
Amax.append(max(alan))
Amin.append(min(alan))
for i in range(0,NP):
max_min_bulma(i)
print("fmax:",Fmax)
print("fmin:",Fmin)
print("amax:",Amax)
print("amin:",Amin)
normallesmis_akıs=[]
normallesmis_alan=[]
def norm_akıs_alan(i):
flow=(urun_akıs_mal - Fmin[0]) / (Fmax[0]-Fmin[0])
normallesmis_akıs.append(flow)
norm_alan= (alan-Amin[0]) / (Amax[0]-Amin[0])
normallesmis_alan.append(norm_alan)
for i in range(0,NP):
norm_akıs_alan(i)
print("normalleşmiş akış:",normallesmis_akıs)
print("normalleşmiş alan:",normallesmis_alan)
normallesmis_amac=[]
def normal_amac(i):
amac=normallesmis_akıs+normallesmis_alan
normallesmis_amac.append(amac)
for i in range(0,NP):
normal_amac(i)
print("normalleşmiş amaç:",normallesmis_amac)
print("***************************************************************************")
#Mutasyon evresi
from random import sample
import random
mutant_populasyon=[]
aday_popuplasyon=[]
def mutasyon(i):
mutant_populasyon.append([])
aday_popuplasyon.append([])
aday=list(range(0,NP))
#print("aday:",aday)
aday.remove(i)
#print("aday:", aday)
rasgele_index = sample(aday, 3)
#print("rasgele index:",rasgele_index)
XA = populasyon[rasgele_index[0]]
XB = populasyon[rasgele_index[1]]
XC = populasyon[rasgele_index[2]]
#print("XA:", XA)
#print("XB:",XB)
#print("XC:",XC)
for j in range(0,len(populasyon)):
XA[j] = float(XA[j])
XB[j] = float(XB[j])
XC[j] = float(XC[j])
mutasyon= XA[j] + F*(XB[j]-XC[j])
mutant_populasyon.append(mutasyon)
# Çaprazlama evresi
rassal= random.random()
#print("rassal:",rassal)
k= random.randint(0,m)
#print("k:",k)
if rassal <= CR or k==j:
aday_popuplasyon.append(mutant_populasyon[j])
else:
aday_popuplasyon.append(populasyon[j])
# Kendime göre adayı düzenleme
aday_popuplasyon[j] = float(aday_popuplasyon[j])
if aday_popuplasyon[j] < 0:
aday_popuplasyon[j] = aday_popuplasyon[j] * (-1)
aday_popuplasyon[j] = str(aday_popuplasyon[j])
if aday_popuplasyon[j][0] == "0":
aday_popuplasyon[j] = float(aday_popuplasyon[j])
aday_popuplasyon[j] = aday_popuplasyon[j] + 1
aday_popuplasyon[j] = float(aday_popuplasyon[j])
if aday_popuplasyon[j] >= r + 1:
aday_popuplasyon[j] = str(aday_popuplasyon[j])
a = aday_popuplasyon[j][0]
a = int(a)
aday_popuplasyon[j] = float(aday_popuplasyon[j])
aday_popuplasyon[j] = aday_popuplasyon[j] - abs(a - r)
for i in range(0,NP):
mutasyon(i)
print("mutant populasyon:",mutant_populasyon)
print("aday populasyon:",aday_popuplasyon)
baslangıc_alan=[]
baslangıc_akısmal=[]
baslangıc_normallesmisamac=[]
for i in range(0,NP):
baslangıc_alan.append(alan)
baslangıc_akısmal.append(urun_akıs_mal)
baslangıc_normallesmisamac.append(normallesmis_amac)
print("ilk çözümün alanı:",baslangıc_alan)
print("ilk çözümün akış maliyeti:",baslangıc_akısmal)
print("ilk çözümün normalleştirilmiş amaç fonksiyon değeri:",baslangıc_normallesmisamac)


Uzunca bir kod. Yukarıda oluşturduğum amaç fonksiyonlarını en sonda oluşturduğum aday populasyon listemin içindeki değerler için hesaplatmak istiyorum.

Mesaj otomatik birleştirildi:

üstü çizili gelmiş anlaşılır değilse dosya halinde yükleyeyim
 

Ekli dosyalar

  • kod.txt
    kod.txt
    29.5 KB · Görüntüleme: 74

bud

Cezalı
Cezalı
Katılım
29 Kasım 2014
Mesajlar
5,326
Çözümler
6
Reaksiyon puanı
1,710
Puanları
293
Yaş
26
1646137662311.png


Kod ekleme kısmından paylaşırsan daha iyi olur yoksa kodun anlaşılması imkansız.
 
Katılım
1 Mart 2022
Mesajlar
3
Reaksiyon puanı
2
Puanları
3
Yaş
30
Kodu paylaşırsan yardımcı olabiliriz.
Kodu paylaşırsan yardımcı olabiliriz.
Python:
NP = int(input("Popülasyon büyüklüğünü giriniz:"))
print("NP:",NP)

F = float(input("Ölçek faktörünü giriniz:"))
print("F:",F)

CR = float(input("Çaprazlama oranını giriniz:"))
print("CR:",CR)

#Satırlar arası ve makineler arası gereken boşluk
gm = 2
gr = 2

#Satır sayısı
r=5

#ürün sayısı makine sayısı ve makinelerin genişlik uzunluklarının okunması

ezgi_dosya = open("C:/Users/kullanici/Desktop/Test Problemleri/test_1.txt","r",encoding="utf-8")
for i in range(0,4):
    line=ezgi_dosya.readline()
    if i==1:n=int(line) #ürün sayısı
    if i==3:m=int(line) #makine sayısı

while line.****("n w  l")==-1:
    line=ezgi_dosya.readline()
genıslık_uzunluk={}

while 1:
    line=ezgi_dosya.readline()
    if line.****("bitti")!=-1:
        break
    (n,w,l)=line.split()
    genıslık_uzunluk[int(n)]=(float(w),float(l))
ezgi_dosya.close()
print(genıslık_uzunluk)
(w,l)=genıslık_uzunluk[1]
#print(genıslık_uzunluk[1])
genıslık=[]
uzunluk=[]
for i in range(m):
    (w,l)=genıslık_uzunluk[i+1]
    genıslık.append(w)
    uzunluk.append(l)
print("urun_genislik:",genıslık)
print("urun_uzunluk:",uzunluk)

#ürün rotalarınınokunması

ezgi_dosya2=open("C:/Users/kullanici/Desktop/Test Problemleri/test_1_rota.txt","r",encoding="utf-8")
satir=ezgi_dosya2.readline()
while satir.****("başla")==-1:
    satir=ezgi_dosya2.readline()
urunno_rota={}
while 1:
    satir = ezgi_dosya2.readline()
    if satir.****("bitti")!=-1:
        break
    satir=satir[:-1]
    liste1=satir.split(",")
    x=len(liste1)
    urunno_rota[int(liste1[0])]=liste1[1:x]
print(urunno_rota)
#print(liste1)
#print(urunno_rota[(1)])
ezgi_dosya2.close()
urun_no=[]
urun_rota=[]
for i in  urunno_rota.keys():
    urun_no.append(i)
print("urun_no:",urun_no)
for i in urunno_rota.values():
    urun_rota.append(i)
print("urun_rota:",urun_rota)
#print(urun_rota[0])

print("**************************************************************************************")
#başlangıç çözüm oluşturma

import random
populasyon = []
for i in range(0,NP):
    brey = []
    for j in range(1,m+1):
        brey.append("{:.4f}".format(random.uniform(1, r + 1)))
    #print(brey)
    populasyon.append(brey)
print("populasyon:",populasyon)
print("**************************************************************************************")
#birinci amaç fonksiyonu bulma

length=[]
depth=[]
satır_genislik_maximum=[]
def amac_bir(i):
    satır_liste = []
    satır_liste_uzunluk=[]
    for h in range(0, r):
        satır_liste.append([])
        satır_liste_uzunluk.append([])
    for j in range(0, m):
        for k in range(0, r):
            if populasyon[i][j][0] == str(k + 1):
                satır_liste[k].append(genıslık[j])
                satır_liste[k].sort(reverse=True)
                satır_liste_uzunluk[k].append(uzunluk[j])
    #print("genislik:",satır_liste)
    #print("uzunluk:",satır_liste_uzunluk)
    satır_genislik=[]
    for k in range(0,r):
        satır_genislik.append(satır_liste[k][:1])
        satır_genislik_maximum.append(satır_liste[k][:1])
    #print("satırların max genişliği:",satır_genislik)
    genislik_toplam=0
    for i in range(0,r):
        for j in range(0,len(satır_genislik[i])):
            genislik_toplam+=satır_genislik[i][j]
    #print("toplam genislik:",genislik_toplam)
    genislik_toplam=genislik_toplam+(gr*(r-1))
    #print("toplam genislik:", genislik_toplam)
    uzunluk_liste = []
    for j in range(0,r):
        toplam = 0
        for i in range(0,len(satır_liste_uzunluk[j])):
            toplam+=satır_liste_uzunluk[j][i]
        toplam=toplam+(gm*(len(satır_liste_uzunluk[j])-1))
        uzunluk_liste.append(toplam)
        uzunluk_liste.sort(reverse=True)
    #print(uzunluk_liste)
    uzunluk_toplam=uzunluk_liste[:1]
    #print("uzunluk toplam:",uzunluk_toplam)

    length.append(uzunluk_toplam[0])
    depth.append(genislik_toplam)

for i in range(0,NP):
    amac_bir(i)

print("length:",length)
print("depth:",depth)
#print("genişlik",satır_genislik_maximum)

alan=[]
for i in range(0,NP):
    alan.append(length[i]*depth[i])
print("alan:",alan)

print("***********************************************************")
#ikinci amaç fonksiyounu bulma

pop_dayalı_urun_akıs_mal=[]

def amac_iki(i):
    satır_liste = []
    for h in range(0, r):
        satır_liste.append([])
    for j in range(0, m):
        for k in range(0,r):
            if populasyon[i][j][0] == str(k+1):
                satır_liste[k].append(populasyon[i][j])
                satır_liste[k].sort()
    print("satırlara atanan populasyonlar:",satır_liste)
    sıralı_genislik=[]
    sıralı_uzunluk=[]
    sıralı_makine=[]
    for h in range(0,r):
        sıralı_genislik.append([])
        sıralı_uzunluk.append([])
        sıralı_makine.append([])
    for j in range(0,r):
        for l in range(0,len(satır_liste[j])):
            for k in range(0,m):
                if satır_liste[j][l]==populasyon[i][k]:
                    sıralı_genislik[j].append(genıslık[k])
                    sıralı_uzunluk[j].append(uzunluk[k])
                    sıralı_makine[j].append(genıslık_uzunluk[(k+1)])
    print("genişlikler sıralı:",sıralı_genislik)
    print("uzunluklar sıralı:", sıralı_uzunluk)
    print("makineler sıralı:", sıralı_makine)

    for i in range(0,r):
        for j in range(0,len(sıralı_uzunluk[i])):
            sıralı_uzunluk[i][j]=float(sıralı_uzunluk[i][j])

    for i in range(0,len(urun_no)):
        for j in range(0,len(urun_rota[i])):
            urun_rota[i][j]=int(urun_rota[i][j])

    satır_uzunluk=[]
    for i in range(0,r):
        satır_uzunluk.append([])
    #print(satır_uzunluk)
    for j in range(0,r):
        toplam = 0
        for i in range(0,len(sıralı_uzunluk[j])):
            toplam+=sıralı_uzunluk[j][i]
        toplam=toplam + ((len(sıralı_uzunluk[j])-1) * gm)
        satır_uzunluk[j].append(toplam)
        #print(toplam)
    print("satırların uzunluğu:",satır_uzunluk)
    satır_genislik_maximum=[]
    for i in range(0,r):
        sıralı_genislik[i].sort(reverse=True)
        if sıralı_genislik[i]!=[]:
            satır_genislik_maximum.append(sıralı_genislik[i][:1])
        else:
            satır_genislik_maximum.append([])
    #print(satır_genislik_maximum)
    print("satırların genişliği:", satır_genislik_maximum)
    print("******************************************************************")
    # print(type(urun_rota[0][0]))
    akıs_liste = []
    for i in range(0, len(urun_rota)):
        akıs_liste.append([])
    # print(liste)
    def urun_akıs(k):
        for h in range(0, len(urun_rota[k])):
            akıs_liste[k].append(uzunluk[urun_rota[k][h] - 1])
            # akıs_liste[k].append(uzunluk[urun_rota[k][h + 1] - 1])
    for k in range(0, len(urun_no)):
        urun_akıs(k)
    print("ürünlerin akış sırasındaki makine uzunluğu:",akıs_liste)
    print("*************************************************************")
    urun_akıs_maliyet = []
    toplam_aynı_satır = []
    for i in range(0, len(urun_no)):
        toplam_aynı_satır.append([])
    toplam_farklı = []
    for i in range(0, len(urun_no)):
        toplam_farklı.append([])
    toplam_farklı_sağ = []
    for i in range(0, len(urun_no)):
        toplam_farklı_sağ.append([])
    toplam_min = []
    for i in range(0, len(urun_no)):
        toplam_min.append([])
    #print(toplam_min)
    for k in range(0, len(akıs_liste)):
        #print("k:", k)
        #print(akıs_liste[k])
        for l in range(0, len(akıs_liste[k]) - 1):
            for e in range(0, len(akıs_liste[k])):
                if e - l == 1:
                    #print("l:", l)
                    #print("e:", e)
                    #print("kl:", akıs_liste[k][l])
                    #print("ke:", akıs_liste[k][e])
                    # print(akıs_liste[k][l])
                    # print(akıs_liste[k][e])
                    for s in range(0, len(sıralı_uzunluk)):
                        for h in range(0, len(sıralı_uzunluk)):
                            if s == h:
                                if akıs_liste[k][l] in sıralı_uzunluk[s] and akıs_liste[k][e] in sıralı_uzunluk[h]:
                                    #print("a:", akıs_liste[k][l])
                                    a = sıralı_uzunluk[s].index(akıs_liste[k][l])
                                    #print("a:", a)
                                    #print("b", akıs_liste[k][e])
                                    b = sıralı_uzunluk[h].index(akıs_liste[k][e])
                                    #print("b:", b)
                                    if a > b:
                                        a, b = b, a
                                        toplam = 0
                                        for t in range(a, b + 1):
                                            toplam += sıralı_uzunluk[s][t]
                                        toplam = toplam - (akıs_liste[k][l] / 2 + akıs_liste[k][e] / 2)
                                        toplam = toplam + (abs(a - b) * gm)
                                        #print("toplam:", toplam)
                                        toplam_aynı_satır[k].append(toplam)
                                    else:
                                        toplam = 0
                                        for t in range(a, b + 1):
                                            toplam += sıralı_uzunluk[s][t]
                                        toplam = toplam - (akıs_liste[k][l] / 2 + akıs_liste[k][e] / 2)
                                        toplam = toplam + (abs(a - b) * gm)
                                        #print("toplam:", toplam)
                                        toplam_aynı_satır[k].append(toplam)
                            else:
                                if akıs_liste[k][l] in sıralı_uzunluk[s] and akıs_liste[k][e] in sıralı_uzunluk[h]:
                                    #print("a:", akıs_liste[k][l])
                                    a = sıralı_uzunluk[s].index(akıs_liste[k][l])
                                    #print("a:", a)
                                    #print("b:", akıs_liste[k][e])
                                    b = sıralı_uzunluk[h].index(akıs_liste[k][e])
                                    #print("b:", b)
                                    if a == 0 and b == 0:
                                        if s < h:
                                            toplam = akıs_liste[k][l] / 2 + akıs_liste[k][e] / 2
                                            toplam_sağ = (satır_uzunluk[s][0] - akıs_liste[k][l] / 2) + (
                                                        satır_uzunluk[h][0] - akıs_liste[k][e] / 2)
                                            toplam1 = 0
                                            for t in range(s + 1, h + 1):
                                                if len(satır_genislik_maximum[t]) == 0:
                                                    satır_genislik_maximum[t].append(0)
                                                toplam1 += satır_genislik_maximum[t][0]
                                            toplam1 = toplam1 + (abs(h - s) * gr)
                                            toplam = toplam + toplam1
                                            #print("toplam:", toplam)
                                            toplam_sağ = toplam_sağ + toplam1
                                            #print("toplam sağ:", toplam_sağ)
                                            toplam_farklı[k].append(toplam)
                                            toplam_farklı_sağ[k].append(toplam_sağ)
                                        else:
                                            toplam = akıs_liste[k][l] / 2 + akıs_liste[k][e] / 2
                                            toplam_sağ = (satır_uzunluk[s][0] - akıs_liste[k][l] / 2) + (
                                                        satır_uzunluk[h][0] - akıs_liste[k][e] / 2)
                                            toplam1 = 0
                                            for t in range(h + 1, s + 1):
                                                if len(satır_genislik_maximum[t]) == 0:
                                                    satır_genislik_maximum[t].append(0)
                                                toplam1 += satır_genislik_maximum[t][0]
                                            toplam1 = toplam1 + (abs(h - s) * gr)
                                            toplam = toplam + toplam1
                                            #print("toplam:", toplam)
                                            toplam_sağ = toplam_sağ + toplam1
                                            #print("toplam sağ:", toplam_sağ)
                                            toplam_farklı[k].append(toplam)
                                            toplam_farklı_sağ[k].append(toplam_sağ)
                                    elif a == 0 and b != 0:
                                        if s < h:
                                            toplam = akıs_liste[k][l] / 2
                                            toplam_sağ = satır_uzunluk[s][0] - akıs_liste[k][l] / 2
                                            toplam_b = 0
                                            for t in range(0, b):
                                                toplam_b += sıralı_uzunluk[h][t]
                                            toplam_b = toplam_b + akıs_liste[k][e] / 2 + (b * gm)
                                            toplam_b_sağ = satır_uzunluk[h][0] - toplam_b
                                            toplam = toplam + toplam_b
                                            toplam_sağ = toplam_sağ + toplam_b_sağ
                                            toplam1 = 0
                                            for t in range(s + 1, h + 1):
                                                if len(satır_genislik_maximum[t]) == 0:
                                                    satır_genislik_maximum[t].append(0)
                                                toplam1 += satır_genislik_maximum[t][0]
                                            toplam1 = toplam1 + (abs(h - s) * gr)
                                            toplam = toplam + toplam1
                                            #print("toplam:", toplam)
                                            toplam_sağ = toplam_sağ + toplam1
                                            #print("toplam sağ:", toplam_sağ)
                                            toplam_farklı[k].append(toplam)
                                            toplam_farklı_sağ[k].append(toplam_sağ)
                                        else:
                                            toplam = akıs_liste[k][l] / 2
                                            toplam_sağ = satır_uzunluk[s][0] - akıs_liste[k][l] / 2
                                            toplam_b = 0
                                            for t in range(0, b):
                                                toplam_b += sıralı_uzunluk[h][t]
                                            toplam_b = toplam_b + akıs_liste[k][e] / 2 + (b * gm)
                                            toplam_b_sağ = satır_uzunluk[h][0] - toplam_b
                                            toplam = toplam + toplam_b
                                            toplam_sağ = toplam_sağ + toplam_b_sağ
                                            toplam1 = 0
                                            for t in range(h + 1, s + 1):
                                                if len(satır_genislik_maximum[t]) == 0:
                                                    satır_genislik_maximum[t].append(0)
                                                toplam1 += satır_genislik_maximum[t][0]
                                            toplam1 = toplam1 + (abs(h - s) * gr)
                                            toplam = toplam + toplam1
                                            #print("toplam:", toplam)
                                            toplam_sağ = toplam_sağ + toplam1
                                            #print("toplam sağ:", toplam_sağ)
                                            toplam_farklı[k].append(toplam)
                                            toplam_farklı_sağ[k].append(toplam_sağ)
                                    elif a != 0 and b == 0:
                                        if s < h:
                                            toplam = akıs_liste[k][e] / 2
                                            toplam_sağ = satır_uzunluk[h][0] - akıs_liste[k][e] / 2
                                            # print("sağ",toplam_sağ)
                                            toplam_a = 0
                                            for t in range(0, a):
                                                toplam_a += sıralı_uzunluk[s][t]
                                            toplam_a = toplam_a + (akıs_liste[k][l] / 2) + (a * gm)
                                            toplam_a_sağ = satır_uzunluk[s][0] - toplam_a
                                            # print("sağ",toplam_a_sağ)
                                            toplam = toplam + toplam_a
                                            toplam_sağ = toplam_sağ + toplam_a_sağ
                                            # print("sağ",toplam_sağ)
                                            toplam1 = 0
                                            for t in range(s + 1, h + 1):
                                                if len(satır_genislik_maximum[t]) == 0:
                                                    satır_genislik_maximum[t].append(0)
                                                toplam1 += satır_genislik_maximum[t][0]
                                            toplam1 = toplam1 + (abs(h - s) * gr)
                                            toplam = toplam + toplam1
                                            #print("toplam:", toplam)
                                            toplam_sağ = toplam_sağ + toplam1
                                            #print("toplam sağ:", toplam_sağ)
                                            toplam_farklı[k].append(toplam)
                                            toplam_farklı_sağ[k].append(toplam_sağ)
                                        else:
                                            toplam = akıs_liste[k][e] / 2
                                            toplam_sağ = satır_uzunluk[h][0] - akıs_liste[k][e] / 2
                                            # print("sağ",toplam_sağ)
                                            toplam_a = 0
                                            for t in range(0, a):
                                                toplam_a += sıralı_uzunluk[s][t]
                                            toplam_a = toplam_a + (akıs_liste[k][l] / 2) + (a * gm)
                                            toplam_a_sağ = satır_uzunluk[s][0] - toplam_a
                                            # print("sağ",toplam_a_sağ)
                                            toplam = toplam + toplam_a
                                            toplam_sağ = toplam_sağ + toplam_a_sağ
                                            # print("sağ",toplam_sağ)
                                            toplam1 = 0
                                            for t in range(h + 1, s + 1):
                                                if len(satır_genislik_maximum[t]) == 0:
                                                    satır_genislik_maximum[t].append(0)
                                                toplam1 += satır_genislik_maximum[t][0]
                                            toplam1 = toplam1 + (abs(h - s) * gr)
                                            toplam = toplam + toplam1
                                            #print("toplam:", toplam)
                                            toplam_sağ = toplam_sağ + toplam1
                                            #print("toplam sağ:", toplam_sağ)
                                            toplam_farklı[k].append(toplam)
                                            toplam_farklı_sağ[k].append(toplam_sağ)
                                    elif a != 0 and b != 0:
                                        if s < h:
                                            toplam_a = 0
                                            for t in range(0, a):
                                                toplam_a += sıralı_uzunluk[s][t]
                                            toplam_a = toplam_a + (akıs_liste[k][l] / 2) + (a * gm)
                                            toplam_a_sağ = satır_uzunluk[s][0] - toplam_a
                                            toplam_b = 0
                                            for t in range(0, b):
                                                toplam_b += sıralı_uzunluk[h][t]
                                            toplam_b = toplam_b + (akıs_liste[k][e] / 2) + (b * gm)
                                            toplam_b_sağ = satır_uzunluk[h][0] - toplam_b
                                            toplam = toplam_a + toplam_b
                                            toplam_sağ = toplam_a_sağ + toplam_b_sağ
                                            toplam1 = 0
                                            for t in range(s + 1, h + 1):
                                                if len(satır_genislik_maximum[t]) == 0:
                                                    satır_genislik_maximum[t].append(0)
                                                toplam1 += satır_genislik_maximum[t][0]
                                            toplam1 = toplam1 + (abs(h - s) * gr)
                                            toplam = toplam + toplam1
                                            #print("toplam:", toplam)
                                            toplam_sağ = toplam_sağ + toplam1
                                            #print("toplam sağ:", toplam_sağ)
                                            toplam_farklı[k].append(toplam)
                                            toplam_farklı_sağ[k].append(toplam_sağ)
                                        else:
                                            toplam_a = 0
                                            for t in range(0, a):
                                                toplam_a += sıralı_uzunluk[s][t]
                                            toplam_a = toplam_a + (akıs_liste[k][l] / 2) + (a * gm)
                                            toplam_a_sağ = satır_uzunluk[s][0] - toplam_a
                                            toplam_b = 0
                                            for t in range(0, b):
                                                toplam_b += sıralı_uzunluk[h][t]
                                            toplam_b = toplam_b + (akıs_liste[k][e] / 2) + (b * gm)
                                            toplam_b_sağ = satır_uzunluk[h][0] - toplam_b
                                            toplam = toplam_a + toplam_b
                                            toplam_sağ = toplam_a_sağ + toplam_b_sağ
                                            toplam1 = 0
                                            for t in range(h + 1, s + 1):
                                                if len(satır_genislik_maximum[t]) == 0:
                                                    satır_genislik_maximum[t].append(0)
                                                toplam1 += satır_genislik_maximum[t][0]
                                            toplam1 = toplam1 + (abs(h - s) * gr)
                                            toplam = toplam + toplam1
                                            #print("toplam:", toplam)
                                            toplam_sağ = toplam_sağ + toplam1
                                            #print("toplam sağ:", toplam_sağ)
                                            toplam_farklı[k].append(toplam)
                                            toplam_farklı_sağ[k].append(toplam_sağ)
    for i in range(0, len(toplam_farklı)):
        for j in range(0, len(toplam_farklı[i])):
            if toplam_farklı[i][j] <= toplam_farklı_sağ[i][j]:
                toplam_min[i].append(toplam_farklı[i][j])
            else:
                toplam_min[i].append(toplam_farklı_sağ[i][j])
    # print("min toplam:", toplam_min)
    for i in range(0, len(urun_no)):
        for j in range(0, len(toplam_aynı_satır[i])):
            if len(toplam_aynı_satır[i]) != 0:
                toplam_min[i].append(toplam_aynı_satır[i][j])
    # print("min toplam:", toplam_min)
    for k in range(0, len(toplam_min)):
        toplam = 0
        for j in range(0, len(toplam_min[k])):
            toplam += toplam_min[k][j]
        #print(toplam)
        urun_akıs_maliyet.append(toplam)
    print("aynı satır:", toplam_aynı_satır)
    print("farklı satır:", toplam_farklı)
    print("farklı satır sağ:", toplam_farklı_sağ)
    print("min toplam:", toplam_min)
    print("ürünlerin akış maliyeti:", urun_akıs_maliyet)
    pop_dayalı_urun_akıs_mal.append(urun_akıs_maliyet)
for i in range(0,NP):
    amac_iki(i)
print("*************************************************************************")
print("tüm populasyonların ürün akış maliyeti:",pop_dayalı_urun_akıs_mal)
#normalleştirme
urun_akıs_mal=[]
def akıstoplam(j):
    toplam=0
    for i in range(0,len(urun_no)):
        toplam+=pop_dayalı_urun_akıs_mal[j][i]
    urun_akıs_mal.append(toplam)
for j in range(0,NP):
    akıstoplam(j)
print("toplam urun akıs maliyeti:",urun_akıs_mal)
Fmax=[]
Fmin=[]
Amax=[]
Amin=[]
def max_min_bulma(i):
    Fmax.append(max(urun_akıs_mal))
    Fmin.append(min(urun_akıs_mal))
    Amax.append(max(alan))
    Amin.append(min(alan))
for i in range(0,NP):
    max_min_bulma(i)
print("fmax:",Fmax)
print("fmin:",Fmin)
print("amax:",Amax)
print("amin:",Amin)
normallesmis_akıs=[]
normallesmis_alan=[]
def norm_akıs_alan(i):
    flow=(urun_akıs_mal[i] - Fmin[0]) / (Fmax[0]-Fmin[0])
    normallesmis_akıs.append(flow)
    norm_alan= (alan[i]-Amin[0]) / (Amax[0]-Amin[0])
    normallesmis_alan.append(norm_alan)
for i in range(0,NP):
    norm_akıs_alan(i)
print("normalleşmiş akış:",normallesmis_akıs)
print("normalleşmiş alan:",normallesmis_alan)
normallesmis_amac=[]
def normal_amac(i):
    amac=normallesmis_akıs[i]+normallesmis_alan[i]
    normallesmis_amac.append(amac)
for i in range(0,NP):
     normal_amac(i)
print("normalleşmiş amaç:",normallesmis_amac)
print("***************************************************************************")
#Mutasyon evresi
from random import sample
import random
mutant_populasyon=[]
aday_popuplasyon=[]
def mutasyon(i):
    mutant_populasyon.append([])
    aday_popuplasyon.append([])
    aday=list(range(0,NP))
    #print("aday:",aday)
    aday.remove(i)
    #print("aday:", aday)
    rasgele_index = sample(aday, 3)
    #print("rasgele index:",rasgele_index)
    XA = populasyon[rasgele_index[0]]
    XB = populasyon[rasgele_index[1]]
    XC = populasyon[rasgele_index[2]]
    #print("XA:", XA)
    #print("XB:",XB)
    #print("XC:",XC)
    for j in range(0,len(populasyon[i])):
        XA[j] = float(XA[j])
        XB[j] = float(XB[j])
        XC[j] = float(XC[j])
        mutasyon= XA[j] + F*(XB[j]-XC[j])
        mutant_populasyon[i].append(mutasyon)
        # Çaprazlama evresi
        rassal= random.random()
        #print("rassal:",rassal)
        k= random.randint(0,m)
        #print("k:",k)
        if rassal <= CR or k==j:
            aday_popuplasyon[i].append(mutant_populasyon[i][j])
        else:
            aday_popuplasyon[i].append(populasyon[i][j])
        # Kendime göre adayı düzenleme
        aday_popuplasyon[i][j] = float(aday_popuplasyon[i][j])
        if aday_popuplasyon[i][j] < 0:
            aday_popuplasyon[i][j] = aday_popuplasyon[i][j] * (-1)
        aday_popuplasyon[i][j] = str(aday_popuplasyon[i][j])
        if aday_popuplasyon[i][j][0] == "0":
            aday_popuplasyon[i][j] = float(aday_popuplasyon[i][j])
            aday_popuplasyon[i][j] = aday_popuplasyon[i][j] + 1
        aday_popuplasyon[i][j] = float(aday_popuplasyon[i][j])
        if aday_popuplasyon[i][j] >= r + 1:
            aday_popuplasyon[i][j] = str(aday_popuplasyon[i][j])
            a = aday_popuplasyon[i][j][0]
            a = int(a)
            aday_popuplasyon[i][j] = float(aday_popuplasyon[i][j])
            aday_popuplasyon[i][j] = aday_popuplasyon[i][j] - abs(a - r)
for i in range(0,NP):
    mutasyon(i)
print("mutant populasyon:",mutant_populasyon)
print("aday populasyon:",aday_popuplasyon)
baslangıc_alan=[]
baslangıc_akısmal=[]
baslangıc_normallesmisamac=[]
for i in range(0,NP):
    baslangıc_alan.append(alan[i])
    baslangıc_akısmal.append(urun_akıs_mal[i])
    baslangıc_normallesmisamac.append(normallesmis_amac[i])
print("ilk çözümün alanı:",baslangıc_alan)
print("ilk çözümün akış maliyeti:",baslangıc_akısmal)
print("ilk çözümün normalleştirilmiş amaç fonksiyon değeri:",baslangıc_normallesmisamac)
 
Üst