-
31. Data: 2012-04-17 18:32:51
Temat: Re: zaawansowane ai
Od: " " <f...@N...gazeta.pl>
M.M. <m...@N...gazeta.pl> napisał(a):
> <f...@N...gazeta.pl> napisał(a):
>
> > o jakim grafie ty mowisz? ja nie mam zadnych grafow tylko mape
> > ktorej okolice czytam, nie bardzo wiem do czego uzywa sie grafow
> > w programoaniu np programow do gry w warcaby czy tic tac toe
> > - nie zajmowalem sie tym,
> To przypomnij sobie czasy gdy pisałeś A* :D
>
mam tu kod algorytmu na najkrotsza droge sprzed 10 lat (z poczatkow
nauki c) (nie chce mi sie tego czytac ale gdybym mial teraz to zrobic to
bym tylko troche poprawil owczesny 'drewniany styl' (glupie nazwy itd)
i tego mw i dzis uzyl (jest w c wiec jest dosyc szybkie)
polega to na wypoczkowaniu kolejnej obwodki z poprzedniej az dojedzie sie
do celu - nie pamietam jak to jest dokladnie z tym grafem i jak to jest
'wszerz'
void wypelnijmapeskalaremodleglosci(int XS, int YS, int XK, int YK)
{
int dx[8]={-1,0,1,-1,1,-1, 0, 1};
int dy[8]={ 1,1,1, 0,0,-1,-1,-1};
#define MAX_POJ_NACZOLOFALI 3000
TypeTWOINT lista1[MAX_POJ_NACZOLOFALI];
TypeTWOINT lista2[MAX_POJ_NACZOLOFALI];
TypeTWOINT* listaprzerabianych=lista1;
TypeTWOINT* listapaczkowanych=lista2;
TypeTWOINT* tmp;
int value_paczkowanych=1; // p/on/czkowanych tj. tworzonych w nowej
generacji z listy przerabianych
int j=0; // tutaj i jest aktualna pozycja na liscie
przerabianych, j na tworzonych
int czykonczymy=FALSE;
//ini - od takiej krotkiej listy startujemy
listaprzerabianych[0].x=XK;
listaprzerabianych[0].y=YK; VGAEKRAN[320*YK+XK]=0;
listaprzerabianych[1].x=KONIEC_OZN;
do
{
for(int i=0; i<MAX_POJ_NACZOLOFALI;i++)
{
if(listaprzerabianych[i].x==KONIEC_OZN) break;
// paczkuj_nowe_dookola_punktu
for(int ii=0; ii<8; ii++)
{
int xp=listaprzerabianych[i].x+dx[ii];
int yp=listaprzerabianych[i].y+dy[ii];
if(value_paczkowanych<VGAEKRAN[320*yp+xp] && VGAEKRAN[320*yp+xp]!
=255)
{
listapaczkowanych[j].x=xp;
listapaczkowanych[j].y=yp;
VGAEKRAN[320*yp+xp]=value_paczkowanych;
j++;
if(xp==XS && yp==YS) czykonczymy=TRUE;
}
}
}
listapaczkowanych[j].x=KONIEC_OZN;
//odwrocenie macierzy i od nowa
tmp=listapaczkowanych; listapaczkowanych=listaprzerabianych;
listaprzerabianych=tmp;
j=0; value_paczkowanych++;
}
while(!czykonczymy);
}
void narysujterazdroge(int XS, int YS)
{
int dx[8]={-1,0,1,-1,1,-1, 0, 1};
int dy[8]={ 1,1,1, 0,0,-1,-1,-1};
int x=XS;
int y=YS;
int xp, yp;
do {
//------
for(int i=0; i<8; i++)
{
xp=(x+dx[i]);
yp=(y+dy[i]);
unsigned valx=VGAEKRAN[320*y+x];
unsigned valxp=VGAEKRAN[320*yp+xp];
if(valxp==0) return;
if(valxp<valx) break;
}
//-------- w xp yp jest teraz nizszy sasiad x y
VGAEKRAN[320*y+x]=150;
x=xp; y=yp;
// delay(10);
} while(1);
}
>
> > za to kiedys klepalem dosyc duzo roguelika
> > (ktory jest wlasnie tilowym erpegiem z botami) i mam w tym troche
> > doswiadczenia (swietnie sie programuje takie rzeczy ijest tu
> > duzo ciekawych tematow - kiedys indziej napisze o tym wiecej)
> Ja za to nie wiem co to jest tilowy erpeg :)
>
> Pozdrawiam
>
>
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
32. Data: 2012-04-17 18:42:05
Temat: Re: zaawansowane ai
Od: " M.M." <m...@N...gazeta.pl>
<f...@N...gazeta.pl> napisał(a):
> > > majac ta procedure moge zapuszczac ja np dla wszystkich osmiu
> > > sasiednich pol krowy i kierowac ja na to pole ktore jest najmniej
> > > animozyjne (co wymagaloby malego sortowania :( - nie chce mi sie pisac)
> > Nawet bardzo małego sortowania, wystarczy wybrać jedno najlepsze :)
> >
>
> niby tak, z tym ze jak kilka bedzie rownie najlepszych to nie
> mozna zawsze wziac pierwszego z lewej, trzeba zbudowac małą listkę
> i uczciwie w niej zalosować - z podobnymi problemami wiazal sie
> pierwszy odrzucony przeze mnie pomysl, ->
>
> skanujesz okolice i szukasz najblizszej postaci do omijania
> po czym idziesz w przeciwna do niej strone,
>
> jesli bylaby tylko jedna to prosta rzecz, ale jesli bylyby np
> trzy najblizsze (np w ringu 2), to co wtedy ?
>
> 1) trzeba ew budowac liste i losowac - wole unikac budowania
> takich list,
> 2) nawet jesli zbuduje liste i wylosuje A to nie znaczy ze unikajac
> A krowa nie pojdzie prosto w kierunku B
>
> wersja z wagowym zliczaniem jakosci pol do wejscia na nie wydaje sie
> miec lepszą jakosc krowa powinna chodzic znacznie rozumniej
Krowa jest na każdym polu przez jakiś czas. W danej chwili z każdego
pola ma jakieś korzyści. Np. w danej chwili krowa ma takie potrzeby:
struct Krowa {
float pragnienie;
float głód;
float seks;
float bezpieczeństwo_cielaka;
float bezpieczeństwo_swoje;
};
Potrzeby zmieniają się albo wg reguły losowej albo deterministycznej.
Krowa np. planuje 30 przyszłych tików gry i chce maksymalizować
zaspokojenie swoich potrzeb. Każde pole dostarcza jej tych
potrzeb:
struct Pole {
float woda;
float pokarm;
float odległość_do_samca;
float odległość_od_drapieżników;
float odległość_od_ludzi;
};
Analogicznie cechy pola zmieniają się albo losowo, albo deterministycznie.
Krowa chce tak zaplanować swoje 30 ruchów aby maksymalizować sumę korzyści
płynących z przebywania na nich. Korzyści mogą być wg wzoru:
korwa.pragnienie * pole.woda + krowa.głód * pole.pokarm ...
krowa.bezpieczenstwo_swoje * ( pole.odleglosc_od_ludzi +
pole.odleglosc_od_drapieznikow ) ...
Któreś z pól które krowa może zbadać swoimi zmysłami albo odtworzyć jego
stan w swojej pamięci zapewni największe korzyści. Więc dla bieżących
potrzeb krowy któreś z otaczających pól będzie najlepsze. Ale po drodze
krowa też może sobie skubać trawkę, też musi czuć się bezpieczna, więc
liczy się nie tylko pole docelowe, ale cała podróż. Czyli krowa szuka
najlepszej trasy i wybiera pierwsze pole które prowadzi tą trasą.
Jakimś algorytmem zachłannym można taką trasę wyliczyć i krowa może
zrobić krok w jej kierunku. Potem kwestia dobrania parametrów, żeby
potrzeby krowy i zasoby na polach sensownie się zmieniały i powinno
działać lepiej niż zwykle się wymaga w takich grach.
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
33. Data: 2012-04-17 19:16:36
Temat: Re: zaawansowane ai
Od: " " <f...@N...gazeta.pl>
M.M. <m...@N...gazeta.pl> napisał(a):
> <f...@N...gazeta.pl> napisał(a):
>
> > > > majac ta procedure moge zapuszczac ja np dla wszystkich osmiu
> > > > sasiednich pol krowy i kierowac ja na to pole ktore jest najmniej
> > > > animozyjne (co wymagaloby malego sortowania :( - nie chce mi sie
pisac)
> > > Nawet bardzo małego sortowania, wystarczy wybrać jedno najlepsze :)
> > >
> >
> > niby tak, z tym ze jak kilka bedzie rownie najlepszych to nie
> > mozna zawsze wziac pierwszego z lewej, trzeba zbudowac małą listkę
> > i uczciwie w niej zalosować - z podobnymi problemami wiazal sie
> > pierwszy odrzucony przeze mnie pomysl, ->
> >
> > skanujesz okolice i szukasz najblizszej postaci do omijania
> > po czym idziesz w przeciwna do niej strone,
> >
> > jesli bylaby tylko jedna to prosta rzecz, ale jesli bylyby np
> > trzy najblizsze (np w ringu 2), to co wtedy ?
> >
> > 1) trzeba ew budowac liste i losowac - wole unikac budowania
> > takich list,
> > 2) nawet jesli zbuduje liste i wylosuje A to nie znaczy ze unikajac
> > A krowa nie pojdzie prosto w kierunku B
> >
> > wersja z wagowym zliczaniem jakosci pol do wejscia na nie wydaje sie
> > miec lepszą jakosc krowa powinna chodzic znacznie rozumniej
>
> Krowa jest na każdym polu przez jakiś czas. W danej chwili z każdego
> pola ma jakieś korzyści. Np. w danej chwili krowa ma takie potrzeby:
>
> struct Krowa {
> float pragnienie;
> float głód;
> float seks;
> float bezpieczeństwo_cielaka;
> float bezpieczeństwo_swoje;
> };
>
> Potrzeby zmieniają się albo wg reguły losowej albo deterministycznej.
> Krowa np. planuje 30 przyszłych tików gry i chce maksymalizować
> zaspokojenie swoich potrzeb. Każde pole dostarcza jej tych
> potrzeb:
> struct Pole {
> float woda;
> float pokarm;
> float odległość_do_samca;
> float odległość_od_drapieżników;
> float odległość_od_ludzi;
> };
>
> Analogicznie cechy pola zmieniają się albo losowo, albo deterministycznie.
>
> Krowa chce tak zaplanować swoje 30 ruchów aby maksymalizować sumę korzyści
> płynących z przebywania na nich. Korzyści mogą być wg wzoru:
> korwa.pragnienie * pole.woda + krowa.głód * pole.pokarm ...
> krowa.bezpieczenstwo_swoje * ( pole.odleglosc_od_ludzi +
> pole.odleglosc_od_drapieznikow ) ...
>
> Któreś z pól które krowa może zbadać swoimi zmysłami albo odtworzyć jego
> stan w swojej pamięci zapewni największe korzyści. Więc dla bieżących
> potrzeb krowy któreś z otaczających pól będzie najlepsze. Ale po drodze
> krowa też może sobie skubać trawkę, też musi czuć się bezpieczna, więc
> liczy się nie tylko pole docelowe, ale cała podróż. Czyli krowa szuka
> najlepszej trasy i wybiera pierwsze pole które prowadzi tą trasą.
>
> Jakimś algorytmem zachłannym można taką trasę wyliczyć i krowa może
> zrobić krok w jej kierunku. Potem kwestia dobrania parametrów, żeby
> potrzeby krowy i zasoby na polach sensownie się zmieniały i powinno
> działać lepiej niż zwykle się wymaga w takich grach.
to jest za trudne do realizacji - u mnie krowa nie planuje 30
ruchow do przodu (inaczej wygrywala by pewnie w szachy z kasparowem)
ani nie calkuje wszystkich mozliwych tras pod wzgledem korzysci ;-)-
jest uproszczony algorytm ktory uwzglednia wiele czynnikow ale w
sposob uproszczony - typu jesli krowa jest bardziej glodna niz
spiaca to je a jesli bardziej spiaca niz glodna to spi, jak chce
sie ruszyc to sprawdza sobie ktore pole jejnajbardziej pasuje
pod wzgledem zagrozen itp (troche za duzo sie rozgadalem ntt
nie mialem zamiaru gadac na ten temat 5 godzin tylko zakodowac
kawalek - ale mozliwe ze bede jeszcze podejmowac temat ai i
roguelikow bo jest tam sporo ciekawych kwestii)
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
34. Data: 2012-04-17 19:29:39
Temat: Re: zaawansowane ai
Od: " " <f...@N...gazeta.pl>
M.M. <m...@N...gazeta.pl> napisał(a):
> <f...@N...gazeta.pl> napisał(a):
>
> > zażółcony <r...@c...pl> napisał(a):
> >
> > > W dniu 2012-04-17 16:10, f...@N...gazeta.pl pisze:
> > > >>
> > > >> Nie wiem... zasymulować to może magnesami i tarciem? Wrogowie to
> > > >> magnesy odpychające, zielone pastwiska to magnesy przyciągające. Do
> > > >> tego uwzględnić tarcie (wystarczy statyczne) aby krowa nie rozpędzała
> > > >
> > > > za to dobrze ze poruszasz temat pastwisk, tez rozwazalem pola
> > > > z trawa przyciagajace krowe, ale chwilowo staram sie wyklepac
> > > > jakos 'ogolne ai' z ktorego krowa jest jednym z przypadkow (cowarda),
> > > >
> > > > oprogramowanie samej krowy jednak tez mnie interesuje np
> > > > koncepcja by krowa po wejsciu w tryb pragnienia skierowala sie
> > > > w poszukiwaniu wody - problemem by bylo okreslic algorytm
> > > > poszukiwania wody ale mozna po prostu podac krowie stale wspolrzedne
> > > > np rzeki i skierowac tam krowe przez A* lub prostrzy lokalny
> > > > sposob docierania do punktu (mysle by nie uzywac A* (choc mam juz
> > > > napisany bo lata temu uzywalem) tylko opracowac jakis uproszczony
> > > > lokalny algorytm typu skieruj sie w lini prostej do celu jesli
> > > > przeszkoda na drodzewylosuj pole w bok (albo wylosuj pole randem
> > > > kilka tur) - chodzi o taki algorytm ktory dzialalby chocby
> > > > dla przypadkow prostych przeszkud po drodze na trudniejszych moglby
> > > > ew krowe zwodzic - zna ktos taki lokalny algorytm ktory by
> > > > dzialal?
> > >
> > > I tu znów polecam algorytm zapachu. Możesz zaimplementować
> > > kilka różnych zapachów, jedne są dla krowy atrakcyjne, inne
> > > wręcz odrażające. W największym uproszczeniu masz tylko dwa zapachy
> > > - zapach jedzenia(wody) i zapach wroga. Ale możesz mieć ich więcej,
> > > np. zapach nagrzanego byka, który ma w sobie zarówno coś z
> > > atrakcyjności, jak i smaczek niebezpieczeństwa :) a krowa musi
> > > podejmować decyzję - co ważniejsze :)
> > >
> > > Całkiem serio mówię :)
> >
> > to z bykiem to mi sie za bardzo nie podoba ;-) to jest
> > dobre jako konepcja symulowania zapachu ale jako podloze
> > do danej sytuacji z krowa zbyt kosztowne (mam duza mape +
> > duzo postaci szukam stosunkowo dobrze dzialajacych uproszczen
>
> Cele krowy padają blisko niej. A więc jak dowolną metodą wyznaczasz
> trasę, to kontrolujesz odległość. Jeśli odległość przekroczy
> pewną wartość, to nie szukasz dalej. Zadanie okazało się zbyt
> trudne dla krowy, a algorytm nie musi męczyć się z ogromną
> mapą:)
> Pozdrawiam
>
poruszanie to odzielny temat, moj model gierki jest prosty
(bardziej toporny, kafelki sa spore itp (wrzuce moze za jakis czas
pod linka ale wolalbym by sie to zrobilo choc troche grywalne)
i do niego jakies bardziej skomplikowane marszruty postaci nie sa
potrzebne, chce oprogramowac proste tryby ("coward" jak
wspomniana wlasnie krowa "ataker" ("predator") czyli niejako
odwrotnosc itd- i przede wszystkim polapac sie w tym i zobaczyc
czy uda mi sie to ladnie zakodowac - co jest lekkim wyzwaniem
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
35. Data: 2012-04-17 20:01:47
Temat: Re: zaawansowane ai
Od: " M.M." <m...@N...gazeta.pl>
<f...@N...gazeta.pl> napisał(a):
> M.M. <m...@N...gazeta.pl> napisał(a):
>
> > <f...@N...gazeta.pl> napisał(a):
> >
> > > > > majac ta procedure moge zapuszczac ja np dla wszystkich osmiu
> > > > > sasiednich pol krowy i kierowac ja na to pole ktore jest najmniej
> > > > > animozyjne (co wymagaloby malego sortowania :( - nie chce mi sie
> pisac)
> > > > Nawet bardzo małego sortowania, wystarczy wybrać jedno najlepsze :)
> > > >
> > >
> > > niby tak, z tym ze jak kilka bedzie rownie najlepszych to nie
> > > mozna zawsze wziac pierwszego z lewej, trzeba zbudowac małą listkę
> > > i uczciwie w niej zalosować - z podobnymi problemami wiazal sie
> > > pierwszy odrzucony przeze mnie pomysl, ->
> > >
> > > skanujesz okolice i szukasz najblizszej postaci do omijania
> > > po czym idziesz w przeciwna do niej strone,
> > >
> > > jesli bylaby tylko jedna to prosta rzecz, ale jesli bylyby np
> > > trzy najblizsze (np w ringu 2), to co wtedy ?
> > >
> > > 1) trzeba ew budowac liste i losowac - wole unikac budowania
> > > takich list,
> > > 2) nawet jesli zbuduje liste i wylosuje A to nie znaczy ze unikajac
> > > A krowa nie pojdzie prosto w kierunku B
> > >
> > > wersja z wagowym zliczaniem jakosci pol do wejscia na nie wydaje sie
> > > miec lepszą jakosc krowa powinna chodzic znacznie rozumniej
> >
> > Krowa jest na każdym polu przez jakiś czas. W danej chwili z każdego
> > pola ma jakieś korzyści. Np. w danej chwili krowa ma takie potrzeby:
> >
> > struct Krowa {
> > float pragnienie;
> > float głód;
> > float seks;
> > float bezpieczeństwo_cielaka;
> > float bezpieczeństwo_swoje;
> > };
> >
> > Potrzeby zmieniają się albo wg reguły losowej albo deterministycznej.
> > Krowa np. planuje 30 przyszłych tików gry i chce maksymalizować
> > zaspokojenie swoich potrzeb. Każde pole dostarcza jej tych
> > potrzeb:
> > struct Pole {
> > float woda;
> > float pokarm;
> > float odległość_do_samca;
> > float odległość_od_drapieżników;
> > float odległość_od_ludzi;
> > };
> >
> > Analogicznie cechy pola zmieniają się albo losowo, albo deterministycznie.
> >
> > Krowa chce tak zaplanować swoje 30 ruchów aby maksymalizować sumę korzyści
> > płynących z przebywania na nich. Korzyści mogą być wg wzoru:
> > korwa.pragnienie * pole.woda + krowa.głód * pole.pokarm ...
> > krowa.bezpieczenstwo_swoje * ( pole.odleglosc_od_ludzi +
> > pole.odleglosc_od_drapieznikow ) ...
> >
> > Któreś z pól które krowa może zbadać swoimi zmysłami albo odtworzyć jego
> > stan w swojej pamięci zapewni największe korzyści. Więc dla bieżących
> > potrzeb krowy któreś z otaczających pól będzie najlepsze. Ale po drodze
> > krowa też może sobie skubać trawkę, też musi czuć się bezpieczna, więc
> > liczy się nie tylko pole docelowe, ale cała podróż. Czyli krowa szuka
> > najlepszej trasy i wybiera pierwsze pole które prowadzi tą trasą.
> >
> > Jakimś algorytmem zachłannym można taką trasę wyliczyć i krowa może
> > zrobić krok w jej kierunku. Potem kwestia dobrania parametrów, żeby
> > potrzeby krowy i zasoby na polach sensownie się zmieniały i powinno
> > działać lepiej niż zwykle się wymaga w takich grach.
>
> to jest za trudne do realizacji - u mnie krowa nie planuje 30
> ruchow do przodu (inaczej wygrywala by pewnie w szachy z kasparowem)
> ani nie calkuje wszystkich mozliwych tras pod wzgledem korzysci ;-)-
Nie trzeba wszystkich całkować ani nie trzeba tego robić super
dokładnie. Zastanawiam się nad takim przykładem: Jest sadzawka z
której wypływa strumyk. Sadzawka z jednej strony jest otoczona
stromym brzegiem, a z drugiej łagodnym. Przy tym brzegu łagodnym
krowa może się bez problemu napić. Przy tym stromym też
może, ale wpadnie do wody i zanim dopłynie do brzegu to jest
pewne prawdopodobieństwo że się utopi, albo ją zje krokodyl. Soczysta
trawa rośnie przy brzegu stromym. W dalszej odległości od sadzawki
jest las z wilkami które mogą krowę zjeść. Na strumyku jest mostek
którym krowa może przejść, ale często przechodzą nim ludzie których
się boi. W dodatku w różnych miejscach przy brzegu sadzawki ludzie
mogą rozpalać ogniska. Jak zrobić sensowne zachowanie krowy bez
całkowania tras po korzyściach? Najkrótsza droga do celu nic nie
da, bo krowa wlezie w ognisko, albo wpakuje się na mostek między
ludzi :) Spanie gdy chce się jej bardziej spać niż jeść da taki
efekt że zaśnie w ognisku :)
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
36. Data: 2012-04-17 20:29:02
Temat: Re: zaawansowane ai
Od: "Jordan Szubert" <u...@j...us.to>
Dnia 17-04-2012 o 20:01:47 M.M. <m...@n...gazeta.pl> napisał(a):
[...]
> Nie trzeba wszystkich całkować ani nie trzeba tego robić super
> dokładnie. Zastanawiam się nad takim przykładem: Jest sadzawka z
> której wypływa strumyk. Sadzawka z jednej strony jest otoczona
> stromym brzegiem, a z drugiej łagodnym. Przy tym brzegu łagodnym
> krowa może się bez problemu napić. Przy tym stromym też
> może, ale wpadnie do wody i zanim dopłynie do brzegu to jest
> pewne prawdopodobieństwo że się utopi, albo ją zje krokodyl. Soczysta
> trawa rośnie przy brzegu stromym. W dalszej odległości od sadzawki
> jest las z wilkami które mogą krowę zjeść. Na strumyku jest mostek
> którym krowa może przejść, ale często przechodzą nim ludzie których
> się boi. W dodatku w różnych miejscach przy brzegu sadzawki ludzie
> mogą rozpalać ogniska. Jak zrobić sensowne zachowanie krowy bez
> całkowania tras po korzyściach? Najkrótsza droga do celu nic nie
> da, bo krowa wlezie w ognisko, albo wpakuje się na mostek między
> ludzi :) Spanie gdy chce się jej bardziej spać niż jeść da taki
> efekt że zaśnie w ognisku :)
Fakt, że prawdziwe krowy zwykle w ogniskach nie sypiają, ale tutaj też
krowa nie musi być doskonale inteligentna, wystarczy, że bardziej się boi
ogniska, niż chce spać
Ogólnie, chciałbym zwrócić uwagę na to, że algorytm określający, co krowa
powinna zrobić, by odnieść największą korzyść, nawet uwzględniający
niedoskonałą wiedzę o środowisku, niekoniecznie jest algorytmem najlepiej
pokazującym, co prawdziwa, głupia krowa robi
--
Jordan Szubert
-
37. Data: 2012-04-17 21:20:53
Temat: Re: zaawansowane ai
Od: " M.M." <m...@N...gazeta.pl>
Jordan Szubert <u...@j...us.to> napisał(a):
> Fakt, że prawdziwe krowy zwykle w ogniskach nie sypiają, ale tutaj też
> krowa nie musi być doskonale inteligentna, wystarczy, że bardziej się boi
> ogniska, niż chce spać
> Ogólnie, chciałbym zwrócić uwagę na to, że algorytm określający, co krowa
> powinna zrobić, by odnieść największą korzyść, nawet uwzględniający
> niedoskonałą wiedzę o środowisku, niekoniecznie jest algorytmem najlepiej
> pokazującym, co prawdziwa, głupia krowa robi
Widziałem głównie krowy na łańcuchach, nie wiem co by robiły jakby miały
trochę więcej swobody i by musiały trochę zatroszczyć się o swoje przetrwanie.
Natomiast wiem co robił mój kot, a podobno jest mniej inteligentny od takich
zwierząt jak psy czy świnie. Otóż mój kot uwielbiał bawić się w aportowanie
piłki zrobionej z ugniecionej foli aluminiowej. Rzucałem mu a on biegł za
nią i przynosił z powrotem aby mu dalej rzucać. Gdy wrzucałem mu na
przeszkody, np. na wysoką szafę, to kot dobiegł do szafy, chwilę postał,
jakby się zastanawiał. Potem ruszył w koło szafy aż napotkał stojący obok
fotel. Po fotelu wskoczył na szafę, znalazł piłkę i przyniósł. Za drugim
razem gdy wrzucałem mu na szafę, to wbiegał od razu po fotelu, nie zastanawiał
się, ani nie obchodził w koło. Myślę więc że krowa w dzikich warunkach
mogłaby całkiem inteligentnie unikać zagrożenia i szukać sobie lepszych
pastwisk. Szczególnie gdyby pole manewru miał w zasięgu wzroku/węchu.
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
38. Data: 2012-04-19 17:03:46
Temat: Re: zaawansowane ai
Od: " " <f...@N...gazeta.pl>
<f...@N...gazeta.pl> napisał(a):
> A.L. <l...@a...com> napisał(a):
>
> > On Mon, 16 Apr 2012 21:13:55 +0000 (UTC), Edek Pienkowski
> > <e...@g...com> wrote:
> >
> > >Dnia Mon, 16 Apr 2012 18:15:14 +0000, fir napisal:
> > >
> > >> czy ktos moze powiedziec czym zajmuje sie zaawansowwane ai?
> > >> (takie np jaki zajmuje sie ktos kto robi doktorat z 'ai')
> > >
> > >Z a się zgodzę, ale już z i nie.
> > >
> > >> jakos nie mam wizji co to takiego
> > >> (obecnie akurat klepie w pewnym sensie nawet zlozone
> > >> ai w swojej gierce - z poczatku pisalo mi sie lepiej
> > >> ostatnio jakos zdeczka 'siadlem')
> > >
> > >Boty tu, boty tam? ;)
> > >
> > >Edek
> >
> > Jako czlonek AAAI (Association for the Advancement of Artificial
> > Intelligence) od ponad 20 lat z checia bym odpisal. Gdyby nie smutny
> > fakt ze Original Poster siedzi u mnie w KF
> >
> > A.L.
>
> hehe ;-)
>
jest wyjscie z tej sytuacji -> a.l. musi udzielic mi amnstii
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
39. Data: 2012-04-19 17:49:13
Temat: Re: zaawansowane ai
Od: zażółcony <r...@c...pl>
W dniu 2012-04-17 16:38, f...@N...gazeta.pl pisze:
> tutaj w przypadku prostej krowy bylyby dwa problemy ->
>
> mam duzo postaci>10 tys i duza mape> 1000x1000
> i updatowanie dla kazdej z nich mapy zapachu by troche
> trwalo (co prawda jest to chyba (*)koszt porownywalny z
> rozgladaniem sie, gdzie kazda postac przy kazdym rozejrzeniu
> sie musi przeczytac np do 400 sasiadujacych pol - to ujdzie
> ale jest to lekkie obciazenie)
>
> (*) po zastanowieniu wychodzi ze jendak znacznie wiekszy bo
> tzrebaby chyba przetwarzac cala mape wzgledem zapachow a to
> by zmulilo jak nie wiem co
>
> poaztym, zapachy mieszalyby sie i trzebeby kombinowac z podzialam
> na podtypy i/lub uzywac wielu map do trzymania roznych - za duza
> komplikacja za duzo ramu i za wolno
Żebyś dobrze zrozumiał - updatowanie mapy dla jednego zapachu
robisz tylko raz - nie przypadkiem wspomniałem o automatach
komórkowych. Wtedy nie ma tu problemu dużej ilości postaci,
bo każda z nich generuje tylko zapach 'pod sobą' o wielkości 10.
W jednym cyklu gry musisz teraz przejść 1000 x 1000 pól i
zaktualizować mapę zapachu zgodnie z regułą max(sąsiedzi)-1
Robisz to raz a nie tyle razy, ile jest postaci.
Po drugie - w grach zazwyczaj wystarczy podział na 'dobrych' i
'złych', więc wszyscy źli pachną tak samo. Ale masz rację
- jeśłi to nieuniknione, to wprowadzenie większej ilości
typów zapachów sytuację komplikuje. Natomiast jeszcze bym
nie rezygnował - na automatach komórkowych możesz zgrabnie
zaimplementować więcej możliwości. Najprostsze byłoby
założenie, że zapachy się przykrywają, tzn. niektóre są
silniejsze. Wtedy masz maksa 'dwukryterialnego', troszeczkę
bardziej złożona funkcja wyboru, ale bez przesady.
Algorytm zapachu jest o tyle ciekawy, że zapach rozchodzi się
z pewnym opóźnieniem, nie niknie od razu po zniknięciu
swojego źródła, automatycznie znajduje luki np. w murach.
Ja kiedyś zaimplementowałem na tym algorytm 'potwora'
wyszukującego na mapie i pożerającego diamenty :)
Po zapachu potrafił je wyszukać nawet w najbardziej zawiłych
labiryntach, nie był za to w stanie ich wyczuć przez mur,
Gubił trop po zawaleniu przejścia przez kamienie, by go
po jakimś czasie (nie od razu) odzyskać, gdy w jakimś innym
miejscu planszy pojawiło się przejście.
Gdyby pokombinować, to można też spróbować na automatach komórkowych
zaimplementować algorytm zapachu ukierunkowanego, który
by bardziej przypominał światło, ale trzeba by się wtedy
trochę bardziej pobawić, każdy automat musiałby mieć więcej
pamięci, by wiedzieć skąd światło przyszło i jaki jest
jego rozrzut 'na przyszłość'. Myślę, że dałoby się
tu uzyskać całkiem niezły efekt czegoś w rodzaju
'zapachu wyrzucanego kierunkowo', zachowującego się
bardziej jak dźwięk, czyli coś pośredniego między
zapachem a światłem, wystarczającego, by z dużej
odległości widzieć niedokładnie, z dużym wpływem przeszkód
zasłaniających prosty kierunek, a dokładnie widzieć z bliska.
-
40. Data: 2012-04-20 10:26:31
Temat: Re: zaawansowane ai
Od: zażółcony <r...@c...pl>
W dniu 2012-04-17 21:20, M.M. pisze:
> Jordan Szubert<u...@j...us.to> napisał(a):
>
>> Fakt, że prawdziwe krowy zwykle w ogniskach nie sypiają, ale tutaj też
>> krowa nie musi być doskonale inteligentna, wystarczy, że bardziej się boi
>> ogniska, niż chce spać
>> Ogólnie, chciałbym zwrócić uwagę na to, że algorytm określający, co krowa
>> powinna zrobić, by odnieść największą korzyść, nawet uwzględniający
>> niedoskonałą wiedzę o środowisku, niekoniecznie jest algorytmem najlepiej
>> pokazującym, co prawdziwa, głupia krowa robi
>
> Widziałem głównie krowy na łańcuchach, nie wiem co by robiły jakby miały
> trochę więcej swobody i by musiały trochę zatroszczyć się o swoje przetrwanie.
> Natomiast wiem co robił mój kot, a podobno jest mniej inteligentny od takich
> zwierząt jak psy czy świnie. Otóż mój kot uwielbiał bawić się w aportowanie
> piłki zrobionej z ugniecionej foli aluminiowej. Rzucałem mu a on biegł za
> nią i przynosił z powrotem aby mu dalej rzucać. Gdy wrzucałem mu na
> przeszkody, np. na wysoką szafę, to kot dobiegł do szafy, chwilę postał,
> jakby się zastanawiał. Potem ruszył w koło szafy aż napotkał stojący obok
> fotel. Po fotelu wskoczył na szafę, znalazł piłkę i przyniósł. Za drugim
> razem gdy wrzucałem mu na szafę, to wbiegał od razu po fotelu, nie zastanawiał
> się, ani nie obchodził w koło. Myślę więc że krowa w dzikich warunkach
> mogłaby całkiem inteligentnie unikać zagrożenia i szukać sobie lepszych
> pastwisk. Szczególnie gdyby pole manewru miał w zasięgu wzroku/węchu.
> Pozdrawiam
Krowa, tak jak Twój kot, szybko nauczyłaby się chodzić do wodopoju
utartą ścieżką. Tego faktu uczenia nie widać w tych algorytmach,
które tu omawiamy. 'Głupia' krowa nie wejdzie w ognisko, ale
może dostać histerii, kiedy pojawi się ono nieoczekiwanie
na utartej ścieżce :)