eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingnazwa dla procedury › Re: nazwa dla procedury
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.task
    .gda.pl!not-for-mail
    From: zażółcony <r...@c...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: nazwa dla procedury
    Date: Mon, 23 Apr 2012 10:36:20 +0200
    Organization: CI TASK http://www.task.gda.pl/
    Lines: 106
    Message-ID: <jn34a6$52f$1@news.task.gda.pl>
    References: <jmukis$c5n$1@inews.gazeta.pl> <jn2vtr$uhg$1@news.task.gda.pl>
    <jn32ct$84u$1@inews.gazeta.pl>
    NNTP-Posting-Host: efp194.internetdsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.task.gda.pl 1335170182 5199 83.14.249.194 (23 Apr 2012 08:36:22 GMT)
    X-Complaints-To: a...@n...task.gda.pl
    NNTP-Posting-Date: Mon, 23 Apr 2012 08:36:22 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327
    Thunderbird/11.0.1
    In-Reply-To: <jn32ct$84u$1@inews.gazeta.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:196928
    [ ukryj 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: