Program do n-hetmanów

Program do n-hetmanów
BL
  • Rejestracja:około 11 lat
  • Ostatnio:około 11 lat
  • Postów:2
0

Witam serdecznie.

Proszę o pomoc w napisaniu programu do n-hetmanów. Może ktoś z Was ma coś podobnego.

Problem

Rozwiązywany problem to n-hetmanów, gdzie n jest parametrem programu. Określa on wielkość szachownicy jak i liczbę hetmanów.
Algorytm

Rozwiązać problem stosując algorytm ewolucyjny.
Chromosom: wektor zawierający n wartości określających położenie hetmanów w poszczególnych kolumnach
Funkcja przystosowania: liczba atakujących się hetmanów (wartość funkcji 0 oznacza rozwiązanie)
operatory genetyczne: dowolne do wyboru w tym metoda selekcji, krzyżowania, mutacji.
Parametry programu
n: wielkość szachownicy
liczność populacji zakres od 10 do 100
prawdopodobieństwo krzyżowania zakres od 0,7 do 1
prawdopodobieństwo mutacji zakres od 0,01 do 0,2
liczba generacji
Warunek stopu (zatrzymania pętli)
Wartość funkcji przystosowania równa 0
Osiągnięcie założonej liczby iteracji (generacji)
Wynik

Najlepszy chromosom z populacji (taki, którego funkcja przystosowania ma najmniejszą wartość)
Wykres zmian wartości funkcji przystosowania dla najlepszego osobnika w populacji w generacjach.
Wykres średniego przystosowania populacji zmieniającego się w generacjach.

fasadin
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0
Kopiuj
int main()
{
  return 0;
}

pomoglem zaczac. A teraz mozesz napsiac z czym dokladnie masz problem

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@BudrysLP ale gdzie widzisz problem? Bo masz tu opisane dokładnie jak to masz zaimplementować przecież. W sumie w ogóle nie rozumiem jaki sens dawac takie zadanie studentom, skoro jedyna część która wymaga myslenia już została wykonana. Sam algorytm genetyczny jest przecież zawsze dokładnie taki sam, więc u ciebie wystarczy podstawić odpowiednią funkcję celu i operatory.
Algorytm działa tak:
0. Losowanie populacji początkowej

  1. Wybieranie najlepszych osobników do krzyżowania
  2. Mutowanie wybranych osobników
  3. Uzyskujemy w ten sposób nowy zestaw osobników (dzieci i mutanty) i powtarzamy kroki 1,2,3 aż nie trafimy na zadowalającego osobnika.

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
BL
  • Rejestracja:około 11 lat
  • Ostatnio:około 11 lat
  • Postów:2
0

Tylko, że ja nie mam zielonego pojęcia o tym.
Nie jestem mocny w programowaniu.

fasadin
to zaplac komus by to zrobil. Nikt Ci za darmo nie da tu nic. Jak idziesz do fryzjera to mowisz "obstrzyzesz mi kogos bo ja nie jestem mocny? Oczywiscie za darmo"
_13th_Dragon
No to się naucz lub zmień kierunek studiów.
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Och poważnie? I tak nagle, ni z tego ni z owego ktoś ci to kazał napisać? Chciałbym żeby tak bylo, żeby ludzi na socjologii i pedagogice takich rzeczy uczyli, ale tak dobrze nie ma.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
BA
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 6 lat
  • Postów:36
1

Nie lubię lenistwa, ale tyle mogę dać - masz gotowy algorytm gotowy do implementacji pod tym linkiem - http://www.mimuw.edu.pl/~zawado/WI/WyklWI.pdf

IceHeart
Dzięki, przyda mi się do nauki. Swoją drogą czemu sam go nie znalazłem tego pdf-a...
0

Hej. Daj namiary na siebie, mogę ci to napisać za drobną opłatą.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.