Algorytmy genetyczne dla róznych zadań, technologia implementacji. Ogólnie AI

0

Szukam kilku dobrych rad.

Mam zamiar zrobić kawałek softu który pozwalałby rozwiązywać pewne problemy za pomocą genetycznych algorytmów. Soft ma być mocno konfigurowalny. Widzę to tak że rdzeń jest zaimplementowany raz na zawsze, a chcąc użyć softu do rozwiązania konkretnego problemu, trzeba napisać klasę która posiada jakiś opis wejściowych obiektów, implementację funkcji oceny i całą resztę charakterystyczną dla konkretnego problemu. Oprócz tego oczywiście możliwa łatwa konfiguracja parametrów algorytmu takich jak "poziom randomu" itd. (Przepraszam za brak fachowego słownictwa, jeszcze nie wszedłem do końca w teorię).

Najchętniej bym się za to zabrał w C# bo ten język mam w miarę opanowany i posługuję się nim naturalnie. Jednak zastanawiam się nad C++. Na pewno dużo bym się przy tym namęczył, ale mam na uwadze szybkość. Jak to jest? Warto się babrać w C++ dla szybkości?

Proszę o wszelkie rady dot. tematu. Być może macie lepszy pomysł niż algorytmy genetyczne? Ogólnie celem moim jest rozwiązywanie problemów głównie z dziedziny ruchu, mobilności, mechaniki etc. ale też innych. Czy genetyczne dadzą tutaj dobre wyniki? Może inna gałąź AI?

0

Warto się babrać w C++ dla szybkości?

Jeżeli tylko dla szybkości, to raczej nie. A tym bardziej, jeśli myślisz, że wybranie C++ w magiczny sposób uczyni Twój program ultra szybkim.

Szczególnie w przypadku złożonych problemów, coś co się będzie dużo bardziej liczyć dla wydajności, to jak zaprojektujesz algorytmy i struktury danych, a nie jakiego języka użyjesz.

0

Napisz prototyp w czymś bardziej wysokopoziomowym C#/Java/Scala/etc. i jak będzie działać za wolno to przepisz na C++. Implementacja algorytmu genetycznego nie jest czymś bardzo rozbudowanym więc dużo czasu na przepisanie nie zmarnujesz.
Jeżeli chodzi o same algorytmy genetyczne to w ogólności lepiej sprawdzają się inne algorytmy metaheurystyczne w zależności od problemu (TabuSearch, Simulated Annealing, Beam Search, A*, Variable Neighbourhood Search). Algorytmy genetyczne są mocno przereklamowane, bardziej skomplikowane i wolniejsze.

0

Ok pewnie zrobię to w C#

@0x200x20
Mówisz że genetyczne nie dadzą zadowalających wyników? Ja się jeszcze nie wgryzłem w temat ale wybrałem je właśnie dlatego ze można raz dobrze napisany algorytm zparametryzować dla różnych problemów. Ale dzięki za rady zainteresuje się innymi algo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1