kornicameister / LakeSISE

0 stars 0 forks source link

Miary efektywności #1

Open karolgurecki opened 11 years ago

karolgurecki commented 11 years ago

Proszę ustalcie z osobą, z którą robicie actora tego samego typu jakie będzie miał on miary efektywności i jak będą zmieniane. Ustalenia proszę wpisywać w tym wątku. Osoby przypisane do danego typu aktora: Leśniczy - Tomek T, Karol G Kłusownik -Tomek T i Tomek S Ryba zwykła - Robert G, Łukasz R Ryba drapieżna - Łukasz R, Maciek B Ptak - Maciej B, Karol G Wędkarz- Tomek S, Robert G

Jezeli dojdziecie do wniosku, że coś będzie potrzebowali po stronie Clispa/Javy też to napiszcie w tym wątku.

tszopka commented 11 years ago

Wędkarz - zostajemy przy tym, co było ustalone wcześniej. 1 miara efektywności to stosunek liczby ryb do liczby prób (slot do ilości łapanych ryb już jest, potrzebny jest tylko slot z ilością prób o nazwie np. fishingAttempts). 2 miara efektywności to suma wag złapanych ryb, a to już jest realizowane przez slot weight u anglera.

Co do realizacji pewnych rzeczy - moim zdaniem wszyscy aktorzy powinni mieć jednakowy poziom hp na początku (np. 100), wtedy łatwiej porównywać. Natomiast waga u anglera i poachera powinna być na początku ustawiana na 0 (tak by można tam było zliczać sumę wag ryb).

kornicameister commented 11 years ago

Co do propozycji HP zgadzam się, tak samo jak i do tej wagi całej. Natomiast co do propozycji odnośnie miar efektywności: leśniczy - wlepionych mandatów vs ile razy go przekupiono kłusownik - ile razy uciekł vs ile razy dostał mandat

ukazuyr commented 11 years ago
  1. Dla ryby drapieznej i ptaka proponuje to samo- ilosc przezytych tur, waga(tutaj mozna dac prostego rule, albo cos bardziej madrego) , ilosc zjedzonych ryb
  2. Dla wiekszej wydajnosci dzialania proponuje zlozyc wszystkie bezsensowne pola "statusy" w jedno pole status np o wartosci 0X00000. Wiekszosc jezykow programowania zapewnia proste i efektywne sposoby operaowania na takich flagach, a nam to ulatwi dzialanie. Mozna by uzyc np tak 1 bit - czy postac wykonala juz ruch czy nie ( max 1 ruch na ture) 2 bit - czy aktor wykonal juz akcje czy nie (max 1 akcja na ture) 3 bit - czy aktor zyje etc.

Plus ograniczyc ilosc aktorow na planszy do logicznych ilosci (powiedzmy 3 kazdego rodzaju, a nie po 15), Plus ograniczyc ich maksymalny ruch do 1-2 pol zawsze (moze byc losowo lub static zaleznie od aktora).

Maciek Bąk

ukazuyr commented 11 years ago

Do tego, zeby nie wykonywalo sie nie wiadomo ile logiki na raz mozna zrobic wykonywanie ruchu aktorow jeden po drugim , ale co ture w losowej kolejnosci i tak samo z akcjami. Po wykonanym ruchu druga petla, w losowej kolejnosci aktorzy wykonuja jakies czynnosci.

rowik commented 11 years ago

Dla ryby drapieznej oraz ryby roślinożernej proponuje waga hp i ewentualnie poziom głodu.

ukazuyr commented 11 years ago

hp/poziom glodu wg mnie za szybko zmieniajace sie parametry zeby byly miarami efektywnosci

kornicameister commented 11 years ago

no ale ryby drapieżne wcinają inne ryby, to czemu nie to + ilość ucieczek ? i dla ryby roślinożernej ilość ucieczek + ?? [nie wiem co]

kornicameister commented 11 years ago

Pozostaje sprawa jeszcze jak będziemy to ogarniać. Myślałem nad tym, żeby dać każdemu aktorowii po stronie Javy funkcję która by mogła zbierać miary efektywności z resultu od Clispa i na podstawie zadanej konfiguracji wyciągać to co by się chciało. Ostatecznie storować to w jakimś pliku *.dat. Działało by to tak, że wystarczyło by skonfigurować aktora wedle predefiniowanego ustawienia (to co ustalimy dla każdego typu).

Idąc dalej tym torem...niech każdy model implementuje interfejs który zwraca miarę efektywności właściwą dla siebie i rejestrować go w procesorze efektywności. Potem co k-tur odpalać procesor, który przeliczy to w odpowiedni sposób i zapisze w pliku.

Co o tym myślicie ?

ukazuyr commented 11 years ago

Ja mysle ze nastepuje tutaj proba kompilikacji czegos co powinno byc prosto i sprawnie, bo nikt nam nie placi za to zebysmy pisali kosmiczna appke w bezuzytecznym jezyku AI. I nadal sadze ze dla aktorow ktorych ja robie miary efektywnosci rzedu : ilosc zlapanych ryb, ilosc przezytych tur powinny byc w 100% wystarczajace

kornicameister commented 11 years ago

Niemniej jakoś w zwarty sposób trzeba to zliczać i prezentować, ale mam pomysł na coś w miarę sensownego i nie wymagającego dużego nakładu pracy.

Natomiast co do części związanej ze zbieraniem tego do pliku, podoba mi się to dlatego, że byłby to sposób na jakies wykresy, co kojarzy mi się, że ona chciała mieć. Poprawcie mnie jeśli się mylę.

@ukazuyr myślę, że język sam w sobie może być użytyczny, ale zastosowanie do celów edukacyjnych mija się z celem.

ukazuyr commented 11 years ago

Sugeruje zeby poprostu dogadac sie miedzy soba zeby KAZDY aktor mial 2 MIARY efektywnosci (1 od jednej osoby, druga od drugiej), najlepiej w miare proste, zeby nie trzeba bylo implementowac 1000 linijek kodu na takie bzdury. Co do uzycia plikow do agregacji danych - jestem jak najbardziej za, bo to zawsze jest dobra metoda.

A co z tymi flagami ktore wczesniej wspominalem? W ten sposob mozna by ograniczyc ilosc akcji kazdego aktora do 1 + ruch, co generowalo by mniejsze zuzycie i szybsze dzialanie apki. No i bylby mniejszy burdel, bo byla by jedna flaga zamiast atri w aktorze

kornicameister commented 11 years ago

Wpadłem na taki pomysł, że nie będzie zbyt wiele linii kodu, a dane będą wyciągane z faktu danego aktora. Po ich wyciągnieciu od razu zapisze się je do pliku i będą tam dostępne.

Jedynie chciałbym wiedzieć jedną rzecz:

Niezależnie od tego miary efektywności będą wpisane w plik properties i będą dostępne przez

org.kornicameister.sise.lake.types.actors.DefaultActor#getType#getEffectiveness

gdzie ostatnia metoda będzie zwracać nazwy efektywności.

kornicameister commented 11 years ago

5 pytanie ?

rowik commented 11 years ago

ja jestem za waga i ilość ucieczek dla ryby roślinożernej natomiast waga+(ilośc złapanych ryb lub przeżyte rundy)

ghost77 commented 11 years ago

czy został już dodany slot z ilością prób złowienia ryby dla wędkarza?

kornicameister commented 11 years ago

zaraz będzie dodany, proszę o spojrzenie na plik effectiveness.properties i tam wpisywać te miary efektywności, które zostały ustalone.

Co do moich aktorów proponouje -> poacher [ilość złowionych ryb, ilość udanych łapówek] -> forester [ilość mandatów wystawionych z sukecem, ilość nieudanych łapówek]

tszopka commented 11 years ago

Jeśli chodzi o poachera, to pierwsza miara chyba lepsza by była stosunek ilości złowionych ryb do prób złowienia (tak jak pisałem na początku). Druga miara jak najbardziej ok.

Co do anglera -> stosunek ryb złowionych do prób złowienia (slot o którym pisał Robert dwa posty wyżej), a druga miara to suma wag złowionych ryb (do tego już mamy weight u anglera).

kornicameister commented 11 years ago

Mi pasuje.

ukazuyr commented 11 years ago

A ja nadal nie jestem przekonany do WAGI jako do miary dla czegolwiek. Chyba ze sugerujesz zeby kazda ryba/ptak/cokolwiek zaczynalo z ta sama waga? Bo inaczej nie nie dalo by sie uznac tego jako miare efektywnosci, bo nie znamy poczatkowych wartosci. Miara efek. powinno byc cos co kazdy aktor danego rodzaju ma na tym samym poziomie na poczatku : eg. Ilosc zlapanych ryb (0), ilosc przezytych rund (0), ilosc ucieczek (0) etc.

ukazuyr commented 11 years ago

A i kiedy my do niej wlasciwie idziemy? Bo nie kazdemu moga wszystkie terminy pasowac (mnie np 12-22 wrz nie ma).

kornicameister commented 11 years ago

no to lepiej się bujnąć, tak jak to było oryginalnie planowane ja bym w poniedziałek się przeszedł.

kornicameister commented 11 years ago

Dobra, to żeby podsumować:

tszopka commented 11 years ago

Chyba przypadkiem u anglera i poachera wpisałeś to samo. U anglera w założeniu miała być suma wag złapanych ryb (a nie ilość otrzymanych mandatów).

Co do terminu ja się dostosuję, byle byśmy się tak dzień wcześniej określili.

kornicameister commented 11 years ago

@tszopka hmm, nie wiedziałem, że muszą być dla każdego takie same ?

co do tego tej wagi, to ok, może być ale wtedy reguły łapania ryb musiałyby jakoś wybierać te tłuściejsze...a jak to zrobić ?

karolgurecki commented 11 years ago

Forester: ilość przyłapań poachera/wędkarza przez ilość tur

Bird: ilość złapanych ryb/ ilość tur

kornicameister commented 11 years ago

Edit 1:

proszę o komentarze @tszopka , @karolgurecki , @ukazuyr , @ukazuyr , @rowik , @ghost77

karolgurecki commented 11 years ago

Ma tam pasi

ukazuyr commented 11 years ago

jak dla mnie tez super, jednoczesnie nieskomplikowane te wskazniki, a i takie jak trzeba

karolgurecki commented 11 years ago

Jak będziecie poprawiać swoich aktów pamiętajcie o przeciążeniu metody getEffectivness() w javie. Ułatwi to nam napisanie sprawka. Przykłady użycie macie w moich i @kornicameister aktorach. Oczywiście jeżeli używanie jakiegoś pola X w clispie do miary Y to nie musicie jej zmieniać na slot effectivity_1 lub 2. Ważne jest tylko aby było dobre mapowanie przy pomocy tej funkcji.

tszopka commented 11 years ago

Prośba ode mnie - ponieważ miary efektywności obu moich aktorów biorą pod uwagę liczbę otrzymanych mandatów, to bardzo proszę osoby ogarniające foresterów o zmianę slotu effectivity_1 w aktorach angler i poacher w momencie złapania/wystawienia mandatu o 1. Ja nie mogę tego robić, bo to forester wystawia mandat, a szkoda dwa razy go wystawiać (w sensie, raz u Was, a potem w logice mojego aktora). Oczywiście, jeżeli jeszcze zdążycie wprowadzić te poprawki. Dziękuję! @kornicameister @karolgurecki

Z kolei @ghost77 zwróć uwagę na to, żeby ten właśnie slot odpowiedzialny był za ilość otrzymanych mandatów również u Ciebie u anglera.

karolgurecki commented 11 years ago

@tszopka zrobione @ghost77 pamiętaj o poprawnym przeciążeniu. @ukazuyr , @rowik co jest?