From e4bc5e206321ac996b07b757cd4a1b9380872a71 Mon Sep 17 00:00:00 2001 From: Mateusz Kantorski Date: Wed, 14 Jun 2023 13:02:11 +0200 Subject: [PATCH 1/2] Add invidual generating --- algorytm_genetyczny.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 algorytm_genetyczny.py diff --git a/algorytm_genetyczny.py b/algorytm_genetyczny.py new file mode 100644 index 0000000..56a8f5d --- /dev/null +++ b/algorytm_genetyczny.py @@ -0,0 +1,23 @@ +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 From 8cf63dc56df7f3463e5806d5f0e36bb6b4bca146 Mon Sep 17 00:00:00 2001 From: Mateusz Kantorski Date: Wed, 14 Jun 2023 13:04:08 +0200 Subject: [PATCH 2/2] Add population generation --- algorytm_genetyczny.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/algorytm_genetyczny.py b/algorytm_genetyczny.py index 56a8f5d..d1bab56 100644 --- a/algorytm_genetyczny.py +++ b/algorytm_genetyczny.py @@ -21,3 +21,18 @@ def wygeneruj_osobnika(zasieg_wspolrzednych, ilosc_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))