Python Programlama Dili ile yaptığım çalışmada Fonksiyonu çalıştıramıyorum

Katılım
2 Mart 2022
Mesajlar
2
Reaksiyon skoru
1
Oluşturduğum kodda fonksiyonu def ile daha önce tanımlamıştım. Tanımladığım fonksiyonu, kod dizisinin en sonunda elde ettiğim aday popülasyon listesinin içindeki elemanlar için çalıştırmak istiyorum fakat fonksiyonu çağırdığımda elde etmek istediğim değerleri getirmiyor. İlgilenen olursa kendimi daha net ifade eder yazarım.
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.find("n w  l")==-1:
    line=ezgi_dosya.readline()
genıslık_uzunluk={}

while 1:
    line=ezgi_dosya.readline()
    if line.find("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.find("başla")==-1:
    satir=ezgi_dosya2.readline()
urunno_rota={}
while 1:
    satir = ezgi_dosya2.readline()
    if satir.find("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)
 
Function'u başa al dene. İmport satırıda en başta olmalı diye biliyorum.
 
ilk olarak hata ne?
ikinci olarak bu tarz sorulara en iyi cevabı stackoverflow da bulursun.
 
Yeni mesajlar Yeni Konu Aç  

   

SON KONULAR

Çevrim içi yöneticiler

Forum istatistikleri

Konular
1,172,631
Mesajlar
10,569,352
Üyeler
186,217
Son üye
BayBatur
Geri
Top