zwykłym algorytmem z funkcją celu?


@rotflolmaomgeez: Nie bardzo rozumiem co masz na myśli mówiąc zwykły algorytm z funkcją celu. Chodzi o algorytm wyszukiwania ścieżki/drogi do punktu?
Jeżeli tak to gdybym dołączył taki do rozgrywki - efekty byłyby jeszcze lepsze. Teraz bot gra w taki sposób, że ustawia sobie klocek w osi x, odpowiednio obraca i opuszcza. Nie dokonuje poprawek w trakcie lotu klocka. Gdyby wyszukiwał drogę do najlepszego punktu/położenia dla klocka mógłby w trakcie dokonywać korekcji i przez to mógłby tworzyć mniej dziur dzięki unikaniu wystających klocków.

I to chyba tyle z korzyści. Znacząco skomplikowałaby się implementacja bota, jego ruchy byłby odrobinę wolniejsze. No może efektywniej układałby linie, ale i bez tego bardzo dobrze
  • Odpowiedz
Mirki mam mega problem.. Mianowicie staram się stworzyć model Takagi-Sugeno za pomocą pakietu frbs dla języka R. Pojawia się jednak pewien problem. W dokumentacji do pakietu jest dokładny opis, jak stworzyć taki model, jednak dla dwóch wejść i jednego wyjścia. W moim projekcie niestety muszę zrobić model w którym jest jedno wejście i jedno wyjście, a takiego czegoś niestety nie mam pojęcia jak ruszyć... Może ktoś wie jak pomóc?
Kod z dokumentacji który działa:
http://pastebin.com/MDMGgERi
Mój kod który próbuję odpalić:
http://pastebin.com/CcPmSC9U

Z
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nie znam zupełnie tej funkcji, ale patrząc na model powinien się chyba dobrze zachowywać gdy oba parametry ustawisz na tą samą wartość. Co się wtedy dzieje?
  • Odpowiedz
Przypomniała mi się dzisiaj jedna z moich ukochanych gier z czasów licealnych i nawet późniejszych, gra która liczy sobie pewnie tyle lat co obecnie przeciętny Mirek, Mortal Kombat 4.

Przeciwnicy mordobić często myślą, że da się w miarę grać wciskając byle co "na pałę", chciałem zdementować ten pogląd i nagrałem gameplay z mk4 przechodząc całą wieże wciskając tylko jeden przycisk - low kick (!) ( ͡° ͜ʖ ͡°
antros - Przypomniała mi się dzisiaj jedna z moich ukochanych gier z czasów licealnyc...
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hejżehej. Znajdzie się jakiś nocny marek co to ma chwilę żeby rzucić na mój kod?
Głównie chodzi o to, że nie działa ( ͡° ͜ʖ ͡°)
Możliwe, że błąd jest trywialny, albo wszystko jest źle i muszę zacząć od nowa.
Kod jest implementacją algorytmu genetycznego który ma dojść do momentu rozwiązania. Rozwiązaniem jest string: "10101010...101010";
W najlepszym wypadku najlepszym po kilku tysiącach generacji na końcu okazuje się string o takim samym wskaźniku "fitowania do rozwiązania" co losowo wygenerowany najlepszy z pierwszej generacji.
A i tak zazwyczaj dzieje się tak, że po operacjach najlepszy jest gorszy niż
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Wyrewolwerowanyrewolwer: Nie zajmowałem się za bardzo algorytmami genetycznymi, więc na szybko opieram się na wiki, co może nie być idealnym źródłem, ale mogę napisać parę uwag.

Z tego co rozumiem, to krzyżowanie następuje zawsze (tyle razy, żeby liczebność w kolejnym pokoleniu została zachowana, więc liczba krzyżowań może być różna, np. w zależności od tego, czy i ile najlepszych osobników przenosisz bezpośrednio do następnego pokolenia), a nie tylko z pewnym prawdopodobieństwem, więc podwyższenie do setki jest chyba ok. Natomiast prawdopodobieństwo mutacji powinno być stosunkowo małe, więc tu już nie jest ok.

Jak dla mnie podczas krzyżowania nie potrzebujesz brać wyników krzyżowania w obie strony, wystarczy jeden, w ten sposób możesz mieć 2 razy więcej par i być może nieco większą różnorodność. Swoją drogą wydaje mi się, że nic nie mutujesz, bo w którejś z pętli powinieneś zamienić miejscami in1 z in2, bo inaczej będziesz dostawał dokładnie to samo co na wejściu
  • Odpowiedz
@Wyrewolwerowanyrewolwer: po pierwsze, błąd za który karają biciem mydłem w zwiniętym ręczniku:
Nie. Rób. Metod. Statycznych
Metody static są powinny być używane jako helpery, nie jako trzon aplikacji.

Druga sprawa - strasznie to komplikujesz, niepotrzebnie.
Wystarczy że zrobisz interfejs Chromosome z metodami mutate(), crossover() i getAdaptationValue().
  • Odpowiedz
Mirki powoli zaczynam ogarniać to całe #ai i #algorytmygenetyczne (samotniku obserwujący to, ujawnij się) i z każdym zdaniem coraz bardziej mi się to podoba. Ogarniam całą tę mechanikę jak działać na pojedynczych chromosomach, ale co jeżeli w genotypie mam więcej niż 1? Powiedzmy - 4 chromosomy.
Jak dochodzi do mutacji i krzyżowań to udział w działaniu biorą tylko odpowiadające sobie chromosomy?


Jeszcze gdyby ktoś miał jakieś ciekawe źródło które dość prosto i jasno wyjaśnia wszystko od podstaw to byłbym szczęśliwy.

  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@iramusa: Pierwsze pytanie ciekawe i rzeczywiście odpowiedź mało satysfakcjonująca, to tylko odnośnik do książek. Ale drugie wydaje mi się dość oczywiste. O ile generalnie problem świadomości jest trudny (mało powiedziane) i udowodnienie, że coś jest świadome albo nie może być logicznie niemożliwe, to istnieją skrajne przypadki, co do których jesteśmy prawie pewni - jednym z nich jest to, że inni ludzie są świadomi, drugim, że aktualnie istniejące maszyny są nieświadome
  • Odpowiedz
@iramusa:

Jestem za to pewny, że biologiczne mózgi nie są niczym specjalnym w fizyce i potencjalnie algorytm uruchomiony na silikonowym procesorze może być świadomy i czuć tak jak my. Tak skomplikowanych algorytmów jeszcze nie ma.

Zgadzam się.

Nawet jeżeli już mielibyśmy jakąś definicje świadomości, nie do konca rozumiem dlaczego cierpienie bytów nieświadomych nie jest ważne a świadomych jest.

Cierpienie może istnieć tylko w świadomości, z definicji. Mogę przyjąć, że sygnalizacja
  • Odpowiedz
@grzegorz-zielinski: Tylko słowa Hawkinga to też takie hurr durr, a on w tematach innych niż fizyka wiedzy ponadprzeciętnej nie ma, zaś jego przemyślenia np. w temacie AI szczególnie błyskotliwe nie są i jest za nie krytykowany przez bardziej kompetentnych. Niestety mimo tego chętnie zabiera głos wykraczając poza fizykę, a ludzie się w niego wsł#!$%@?ą...
  • Odpowiedz
@Poczmistrz_z_Tczewa: możliwe. Czy tutaj mocno się myli prognozując wzrost nierówności społecznych w wyniku zastąpienia ludzkiej pracy robotami? Czy błędnie zakłada, że wolnorynkowe koncepty mogą się w tym przypadku przyczynić do zwycięstwa zysku nad zapewnieniem dobrobytu "nie-właścicielom" robotów?
  • Odpowiedz
Mirki mam taki temat do ogarnięcia: Metody sztucznej inteligencji w grze strategicznej.

Chciałbym napisać agenta uczącego sie grać przy pomocy uczenia się ze wzmocnieniem, taki agent mógłby grac przeciwko np algorytmowi minMax. Jakieś pomysły jaka gra nadawałaby się dobrze na taka implementacje?

Czy warcaby to dobry pomysł?

#programowanie #ai #sztucznainteligencja
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Gottek: tak, nadaje się. Ja bym pomyślał o grach typu pole kwadrat i z przeciwnych punktów ruszają dwie *gasienice*. Cel jest taki by zablokować przeciwnika, wygrywa ten który pierwszy dotrze na pole startowe przeciwnika. Jest masa takich gier, nie pamiętam nazw.
  • Odpowiedz
@mentis: Raczej wyzwolenie z finansowego wykluczenia;)
Ai nie będąc bytem prawnym nie może mieć dostępu do systemu bankowego. BTC to jedyny elektroniczny system płatniczy, który nie dba o to kim (albo czym) jesteś.
  • Odpowiedz