eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingnazwa dla proceduryRe: nazwa dla procedury
  • Data: 2012-04-23 10:36:20
    Temat: Re: nazwa dla procedury
    Od: zażółcony <r...@c...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2012-04-23 10:03, f...@g...pl pisze:
    > zażółcony<r...@c...pl> napisał(a):
    >
    >> W dniu 2012-04-21 17:43, f...@N...gazeta.pl pisze:
    >>> kiedy klepie sie ai dla botow to jest pewna
    >>> glowna procedura owego ai, tam gdzie bot
    >>> sprawdza aktualne warunki (zewn i wewn) i
    >>> podejmuje decyzje nt swoich dzialan
    >>>
    >>> niekoniecznie jest to dlugie (moze miec kilkanascie
    >>> linijek) i zwykle zawiera jakas doze ifów
    >>>
    >>> pytanie jak to nazwac (owa procedure), bo jakas
    >>> krotka nazwa by sie przydala a nie mam pojecia
    >>> jak to nazwac (ew mozna mowic 'centralna procedura ai'
    >>> ale nie jest to za dobre przydaloby sie cos krotkiego
    >>> i wlasciwego)
    >>
    >> Ja akurat w przypadku ai botów spotkałem się z tym,
    >> że nie ma centralnej procedury, tylko są różne
    >> współpracujące strategie zachowania - i każda z nich
    >> analizuje sama, to co ją interesuje.
    >>
    >> Patrz 'strategy design pattern'.
    >>
    >> Strategia ruchu, strategia sterowania radarem,
    >> strategia kierowania lufą, strategia doboru
    >> momentu wystrzału i siły ładunku.
    >>
    >> http://robocode.sourceforge.net/
    >
    > raczej sa polaczone w jednym miejscu bo bot musi
    > zdecydowac czy w danym kwancie ruszyc lufa czy sie przesunac
    >
    > a jak nie to powiedz jak mialoby wygladac to 'rozdzielenie'
    > - jakis rodzaj rozdzielenia mozna sobie wyobrazic, np
    > silnik czolgu ma osobne ai i wieza strzelnicza osobne
    > i dzialaja rownolegle,
    > ale i tak wszystko jest wywolywane we wspolnej galezi,
    > tak ze nie jest dla mnie calkiem jasne czy pojecie 'centralnej
    > procedury ai' sie tu nie stosuje - tak naprawde wydaje mi sie
    > ze bot to glownie ta procedura + api do jej realizowania,
    > tak ze nie wiem co tu by mozna pociac i w co powtykac
    > tak zeby to nie mialo takiej centralnej postaci

    Twój mózg nie ma żadnej centralnej procedury - a działa
    całkiem inteligentnie.

    Ale zostawiając mózg, a wracając do projektowania.
    Wzorcem podobnym do 'strategy' jest wzorzec 'state'
    lub 'state machine'.

    Mówienie w tym wypadku o centralnej procedurze
    jest niewłaściwe - bo istotne jest to, że masz
    jakiś stan i on reaguje na zdarzenia. Może zareagować
    zmianą stanu na inny itp. Istotne jest to, że nie
    tworzysz jednej procedury zawierającej całą inteligencję,
    ale rozpraszasz tę inteligencję pomiędzy wiele procedur
    w różnych stanach. W rzeczywistej implementacji
    oczywiście moze sie zdarzyć, że gdzieś tam istnieje jakiś
    centralny dispatcher eventów, ale zajmuje się on wyłącznie
    przepchnięciem ich do aktualnie ustawionego stanu
    (lub też stanów - złożony organizm może się składać
    z wielu maszyn stanów odpowiedzialnych za sterowanie
    różnymi funkcjami).

    Wracając do robocode, jest bardzo ładny designersko
    robot 'rapture', który dobrze nadaje się imo właśnie
    do nauki, jak wyglada 'strategy pattern':
    http://robocoderepository.com/BotDetail.jsp?id=15

    Być może u Ciebie jest na to za wcześnie, ale idea
    jest taka, że różnym funkcjom 'organizmu' nadajemy
    wysoką niezależność działania - dzięki temu izolujemy
    kod, zawężamy cele procedur do rozwiązywania problemów
    z konkretnych dziedzin, a nie 'wszystkich'. Dla
    przykładu strategie ruchu są przykładowo takie:
    - jedna nastawiona na unikanie przeszkód (zderzanie
    ze ścianami jest bolesne) i włącza się, kiedy robot jest
    blisko ściany
    - kolejna jest nastawiona na unikanie tłumu, bo
    'gdzie drwa rąbią tam wióry lecą' - duży tłok oznacza
    dużo zderzeń i duże zagęszczenie odpalonych pocisków
    - strategia włącza się, kiedy w pobliżu jest np. więcej
    niż trzech przeciwników
    - strategia trzymania optymalnej odległości i
    'chaotycznego tańczenia' w walce z pojedynczym, wybranym
    przeciwnikiem

    Zauważ, że powyższe strategie zajmują się wyłącznie
    sterowaniem podwoziem - wyborem miejsca na mapie,
    do którego chcemy się udać i techniczną realizacją
    - obróceniem się w wybranym kierunku i odpowiednia prędkość.

    Osobno sterowany jest radar. Zasadniczo ma dwie strategie:
    - skan ogólny - obserwowanie całego otoczenia w celu
    rozeznania co się dzieje - policzenia wrogów, zgrubnego
    oszacowania ich ruchów itp
    - skanowanie podczas walki - radar drga w ograniczonym zakresie
    kątów będąc skupionym na wybranym przeciwniku, dzięki czemu
    uzyskuje na bieżąco dokładne informacje o jego położeniu
    i prędkości, co jest kluczowe dla precyzyjnego strzelania.

    Jest jeszcze, o ile pamiętam, zestaw strategii dla
    wieżyczki i działa (np. dobór ładunku zależnie od
    odległości, własnej energii i czegoś tam)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: