Merge pull request 'genetic_algorithm' (#29) from genetic_algorithm into master

Reviewed-on: #29
This commit is contained in:
Mateusz Kantorski 2023-06-14 13:10:15 +02:00
commit 88f5a1acd0
1 changed files with 38 additions and 0 deletions

38
algorytm_genetyczny.py Normal file
View File

@ -0,0 +1,38 @@
import random
EKRAN_SZEROKOSC = 770
EKRAN_WYSOKOSC = 770
blockSize = 70
LICZBA_REGALOW = 14
LICZBA_MIEJSC_DLA_PACZKE = 1
LICZBA_SKRZYNEK_NA_LISTY = 1
def wygeneruj_osobnika(zasieg_wspolrzednych, ilosc_wspolrzednych):
# ilosc_wspolrzednych = ilosc_wspolrzednych/2
osobnik = list()
for j in range(ilosc_wspolrzednych):
x = random.randint(0, zasieg_wspolrzednych)
y = random.randint(0, zasieg_wspolrzednych)
e = (x, y)
while e in osobnik:
x = random.randint(0, zasieg_wspolrzednych)
y = random.randint(0, zasieg_wspolrzednych)
e = (x, y)
osobnik.append(e)
return osobnik
def wygeneruj_populacje_poczatkowa(liczebnosc_populacji):
populacja = list()
zasieg = int(EKRAN_WYSOKOSC / blockSize)
ilosc_wspolrzednych = (LICZBA_REGALOW + LICZBA_MIEJSC_DLA_PACZKE + LICZBA_SKRZYNEK_NA_LISTY)
for i in range(liczebnosc_populacji):
osobnik = wygeneruj_osobnika(zasieg, ilosc_wspolrzednych)
while osobnik in populacja:
osobnik = wygeneruj_osobnika(zasieg, ilosc_wspolrzednych)
populacja.append(osobnik)
return populacja
print(wygeneruj_populacje_poczatkowa(100))