Menu

Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.

Pokaż wiadomości Menu

Wiadomości - mariotti

#441
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 19:55
Cytat: Troll81 w 01 Czerwiec 2012, 19:37
Jeszcze Goldbach się gdzies zapodział w twej liście :D
Pomału bo dostałem zadyszki :)
Co to jest ten Goldbach? :)
Pozdrawiam
#442
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 19:10
Cytat: Troll81 w 01 Czerwiec 2012, 18:33
Z tego co pamiętam to program uppercase (czyli przykładowa apka) zamienia małe litery na duże. Jest prosty jak konstrukcja cepa bo ma tylko testować czy projekt wysyła aplikacje czy jest ona prawidłowo uruchamiana i zakańczana na komputerach i czy wyniki sa odsyłane i prawidłowo przyjmowane przez serwer....
Przeglądam poniższe instrukcje:
http://boinc.berkeley.edu/trac/wiki/SourceCode
http://boinc.berkeley.edu/trac/wiki/ExampleApps
http://boinc.berkeley.edu/trac/wiki/CompileApp
i próbuje cokolwiek uruchomić. Na początku wydaje się to zagmatwane, ale
mam nadzieję że przebrnę. Ma ktoś linuxa 64bit żeby pomóc w testowaniu
jakby mi się udało coś wyrzeźbić?
Pozdrawiam

#443
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 18:10
Cytat: krzyszp w 01 Czerwiec 2012, 17:10
W kwestii popularności, to chyba najlepiej systematycznie publikować wyniki, a pomysł z programem i turniejami też przysporzy wiele liczydłowych.
Kilkaset rdzeni do dyspozycji, to otrzymasz spokojnie z naszej drużyny, a w skali świata...

Generalnie dobry kontakt ze społecznością skupioną wokół BOINC jest chyba najlepszą opcją, najbardziej przyciąga chętnych gdyż ludzie zajmujący się tą technologią zwykle są ciekawi świata nauki  :)
Dobre kontakty to moja słaba strona ;-)  W pracy muszę mieć osobistego menadżera :)

A wracając do meritum...
Jak pobrać i skompilować ten przykładowy program? Motam się strasznie.
Mam kubuntu 64bity.

API niby przeczytałem, niby rozumiem:
http://boinc.berkeley.edu/trac/wiki/BasicApi#TheBOINCapplicationprogramminginterfaceAPI
Ale po pierwsze wydaje mi się podejrzanie mało tego, a
po drugie nadal nie wiem jak założyć projekt, jak to kompilować,
jak instalować, jak testować... To się kompiluje do jakiejś biblioteki?

Pozdrawiam

#444
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 17:01
Cytat
Jak coś, to z 10 -15 rdzeni będzie do dyspozycji :)
Myślę, że nie doceniasz popularności BOINC - ciekawy problem (a ten jest ciekawy) może łatwo przyciągnąć dziesiątki tysięcy ludzi (a przynajmniej komputerów) na stałe...
No jeśli tak to super fajnie. Taką aplikację rozproszoną bez pośrednictwa BOINC bym zrobił może w tydzień.
A tu minął tydzień i jedyne co osiągnąłem to pad systemu na obliczeniach rosetta.

Cytat
wystarczy odpowiednio dobrze ustawic system punktow za przeliczenie zadan. i chetnych bedzie bardzo duzo.
Na punktach na razie kompletnie się nie znam.

Cytat
Kwestia techniczna , miec serwer ktory bedzie w stanie obsluzyc taki ruch.
Czy komunikacja jest też za pośrednictwem API BOINC czy piszemy sobie własny serwer?

Cytat
I tu kolejna kwestia, raczej lepiej zeby zadania byly odpowiednio dlugie (4-6h) to zminiejszyloby ruch moze
Niestety pierwszy projekt z AI będzie miał jeden task na około 1-2 minuty. Transfery są małe, ale częste.
Nie wiem czy BOINC robi jakiś narzut na transfer.

Cytat
albo nawet zadania o czasie 200h :D jak pokazuje przykład primegrid :D da się
200h na jednym kompie jest niemożliwe. Uczenie to proces iteracyjny. Chodzi o
to aby iteracji było dużo, tysiące albo miliony. Dla metody magnetycznej idealnie
jest 100-1000 komputerów i na każdym 1 minuta obliczeń.

Cytat
Myślę że większym problemem będzie obsłużenie ruchu na serwerze i obróbka wyników/bieżące generowanie próbek niż brak chętnych.
Nie wiem jaki narzut na obsługę jest ze strony oprogramowania BOINC. W metodzie magnetycznej
klient będzie musiał odebrać dwie listy parametrów. Lista będzie mała, rzędu 50-2000 liczb w pliku
tekstowym. Program zmieniany będzie rzadko, po zmianie też będzie musiał go odebrać. Potem klient
liczy 1-2 minuty i wysyła wynik jako jeden wiersz tekstowy. I znowu pobór dwóch list i
tak w kółko.  Obróbka danych jest łatwa. Trzeba wyłonić zwycięzce, zrobić krok iteracyjny,
wylosować trochę liczb i następna iteracja gotowa.

Cytat
jeśli projekt ruszy i będzie popularny to i na odpowiedni sprzęt znajdzie się kasa.
Ciekawy jestem co zrobić aby stał się popularny. Popularność dobrze nabijają
takie rzeczy jak algorytmy genetyczne. Jednak obawiam się że na AG
trzeba milionów komputerów. Nie wiem czy to będzie dobrze brzmiało: algorytmy
rojowe do szachów?

Pozdrawiam
#445
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 09:29
Cytat: goofyx w 01 Czerwiec 2012, 09:05
na mnie możesz liczyć.
za 2-3 tygodnie skończę zdobywanie odznak w WCG i będę mógł przepiąć swoje hosty (jakoś 20 kompów) na inny projekt :)
Super fajnie, ale na razie to próbuję policzyć coś w ramach rosetta i... chyba nawet tego nie potrafię :)
Pozdrawiam
#446
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 08:48
Cytat: Troll81 w 01 Czerwiec 2012, 08:19
źródła przykładowej aplikacji uppercase powinny byc dostępne wraz z serwerem. Jest to przy okazji aplikacja testujące czy poszczególne składowe serwera działają prawidłowo.
Właśnie znalazłem to:
http://boinc.berkeley.edu/trac/wiki/BasicApi
Nie wydaje się straszne, oby tak dalej.
Pozdrawiam
#447
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 08:44
Cytat: goofyx w 01 Czerwiec 2012, 08:21
@mariotti (nawiązując do odpowiedzi nr.94)
piszesz różnych możliwościach do wyboru jeśli chodzi o algorytmy, o mocy jaka jest potrzebna i dziesiątkach lat obliczeń...
osobiście uważam, że boinc jest idealną platformą do czegoś takiego.
Zobaczymy. Jeśli podołam z tym API BOINC i jeśli będzie 20 wolontariuszy non-stop to super.

Cytat: goofyx w 01 Czerwiec 2012, 08:21
Jeśli masz "problem" z wyborem konkretnego algorytmu czy sposobu w jaki ma być rozwijana baza wiedzy programu to może utworzysz projekt z kilkoma aplikacjami używającymi każda innego algorytmu <- dzięki czemu sam będziesz wstanie określić po jakimś czasie, który algorytm jest najlepszy do nauki. Wiem, że to trudne <- ale może zamiast zastanawiać się co wybrać, można przetestować więcej niż jeden algorytm.
Myślę i myślę i czaszka mi już dymi... Muszę najpierw zrozumieć API BOINC, bo robię
plany a nie wiem czy dam radę napisać cokolwiek :)


Cytat: goofyx w 01 Czerwiec 2012, 08:21
Po za tym to może być ciekawe doświadczenie także dla ciebie <- pisałeś, że z takimi algorytmami masz kontakt od 10 lat.
Projekt testujący różne rozwiązania + dający później możliwość zagrania z taką coraz "mądrzejszą" SI byłby baardzo atrakcyjny.
No wiesz jednego dnia wygrywasz z SI, a drugiego po aktualizacji wiedzy wtapiasz ;) to zmusza cie do poprawy umiejętności :)
com napisał napisałem, mam nadzieję że na temat ;)
Komputery grają już za mocno w szachy żeby z nimi grać. Z moim programem nie wygrałem
jeszcze ani razu. Mam na swoim kompie obliczeniowym 60 programów napisanych przez
innych autorów. Programy te są bardzo różne zarówno pod względem siły jak i stylu gry.
W trakcie uczenia co jakiś czas mój program gra z tymi programami minimum 200 gier, no
widzę czy robi postępy.

W przypadku uczenia w BOINC będzie tak samo (o ile zrobię), np. co 3 doby uczenia jeden
turniej kontrolny i wyniki gdzieś na stronie www.

Co jakiś czas pojawiają się także wyniki na stronach z turniejami programów szachowych, np.
tam jest taka: http://wbec-ridderkerk.nl/html/BayesianElo_ed18.htm
Będzie widać czy program robi postępy czy nie.
Pozdrawiam



#448
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 08:17
Cytat: Troll81 w 01 Czerwiec 2012, 07:39
no i najwazniejsza decyzja podjeta :D. jak masz pytania to mecz na forum :D
No mam pytanie. Gdzie jest tutorial i przykład jak zrobić najprostszą aplikację?
Pozdrawiam
#449
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 07:31
Cytat: Troll81 w 01 Czerwiec 2012, 06:43
nikt nie mówi że zrobienie takiego projektu to hop siup. Najpierw sam musisz zdecydowac która droga pójdziesz ty i twój pies :D
Jedyna droga która wydaje mi się słuszna to droga kolejnych przybliżeń do celu.
Najpierw coś prościutkiego. Jeśli się uda to coś trudniejsze itd.

Na razie nie mogę przebrnąć przez instalacje i konfiguracje środowiska, bibliotek itd.
Pozdrawiam
#450
Rozmowy nieBOINCowane / własny projekt
01 Czerwiec 2012, 04:25
Cytat: krzyszp w 01 Czerwiec 2012, 01:35
Można zamieszczać kilka cytatów w jednym poście ;)
Proszę nie, gdy jeden post tnę na kilka cytatów to już się boję że pomieszam wszystko :)


Cytat: krzyszp w 01 Czerwiec 2012, 01:35
Ale wracając do tematu...
Myślę, że właśnie droga wykorzystania BOINC jako "trenera" właściwego systemu ma najwięcej zalet:
1. Możesz utworzyć tysiące wątków i jednocześnie testować setki taktyk.
To nie jest takie proste że więcej znaczy po prostu lepiej. W pewnej odmianie algorytmów
rojowych (którą osobiście nazywam metodą magnetyczną) bardzo ciekawe rezultaty miałem
gdy testowałem jednocześnie tylko 10 strategii. Metoda magnetyczna jest odporna na
niedokładne testowanie gdyż uśrednia wyniki z tysięcy turniejów. Z symulacji na
prostszych zadaniach niż szachy wychodziło mi że optymalna ilość w jednym turnieju
to 10 programów i 90 gier - każdy z każdym ze zmianą kolorów.

Z kolei w przypadku algorytmu genetycznego obawiam się że tysiące komputerów to
nadal za mało na szachy. Raczej potrzebne są miliony komputerów i całe dziesiątki lat
obliczeń.

Cytat: krzyszp w 01 Czerwiec 2012, 01:35
2. Stosunkowo łatwo regulować ramy czasowe, a także testować jednocześnie różne okresy testów (długość trwania poszczególnej rozgrywki) niezależnie od innych (poprzez preferencje).
3. Dowolna kombinacja powyższych.
4. Można także testować algorytmy dla określonych maszyn (w sensie ilości rdzeni, poprzez aplikacje wielowątkowe, uruchamiane tylko na komputerach o określonej ilości wolnych rdzeni).
5. Oddzielenie funkcji testujących strategie pozwala na oddzielne ładowanie i testowanie wyników (a to również można "zrównoleglić" i wysłać jako osobną aplikację bazującą na uzyskanych poprzednio wynikach).
Temat rzeka :) Zastanawiałem się nad problemami uczenia i programowania
szachów przez 10 lat, de facto z przerwami. Mógłbym pisać i pisać... większość
moich pomysłów jest niedopracowana a jeszcze większa większość nie sprawdzona - nigdy
ich nawet nie próbowałem zaimplementować, więc to mogą być tylko bzdury :)

Chcąc opisać tylko to co w miarę wartościowe i tak zmuszony jestem do pisania w
skrócie. Przede wszystkim są różne metody uczenia. Każda metoda wymaga czegoś
innego. Pierwszy z rękawa podział metod uczenia jest np. taki: z nauczycielem, bez
nauczyciela i ze wzmocnieniem. Przy czym nie ma większego problemu aby użyć
metody kombinowanej która łączy w sobie cechy powyższych.

Weźmy np. uczenie ze wzmocnieniem. Wtedy model o jakim mówisz pasuje jak ulał.
Mamy rozproszone środowisko testowe i mamy jakiś scentralizowany algorytm uczenia.
Program jest modyfikowany, trafia do środowiska, tam jest testowany, jeśli test
wypadł pomyślnie to następuje jakieś wzmocnienie cech, a jeśli negatywnie to jakiś
zanik. [Tak na marginesie: łatwo napisać takie zdanie, ale realizacja takich algorytmów
zwłaszcza do tak trudnego zadania jak szachy jest bardzo skomplikowana. Poza tym
testowanie, wzmocnienie/zanik cech i modyfikacje można zaimplementować na
bardzo wiele sposobów, a poszczególne sposoby znacznie różnią się efektywnością.
Bez problemu można zrobić tak że program nigdy się nie wyuczy, choć implementacja
algorytmu będzie poprawna.]

Naprzeciw metod ze wzmocnieniem stoją metody z nauczycielem. Problemem w metodach z
nauczycielem jest zebranie reprezentatywnego zbioru danych. Załóżmy jednak że
jakoś udało się ten zbiór pozyskać i możemy uczyć z nauczycielem. Jak takie uczenie
może wyglądać? Cóż, trzeba wziąć jakiś aproksymator albo klasyfikator i go po prostu uczyć. Np.
możemy wziąć lasy drzew regresyjnych, albo bazy reguł, albo sztuczne sieci neuronowe, albo...
Dane wysyłamy do komputerów wolontariuszy i na każdym komputerze następuje proces
uczenia z innym zarodkiem liczb losowych. Potem czekamy miesiąc czasu i najlepsze rozwiązanie
kopiujemy do programu szachowego. Z tym też się wiąże masa problemów, np. trzeba zupełnie inaczej
podejść do problemu gdy dane nie zmieszczą się w pamięci jednego komputera. Pozostaje także problem
zebrania reprezentatywnych danych.


Naprawdę to nie jest tak hop-siup :) Samo napisanie w miarę dobrego programu
do gry w szachy może zająć np. od jednego roku do nawet 10 lat. A tutaj jeszcze
trzeba zaimplementować algorytmy uczenia i dobrać je tak, aby miały chociaż
minimalne szanse na powodzenie. A gdzie uczenie książki debiutowej... a
gdzie uczenie gry w końcówce... :)


Cytat: krzyszp w 01 Czerwiec 2012, 01:35
W sumie jestem baaaardzo ciekawy tego projektu. Ciekawe może być sam... turniej pomiędzy komputerami wolontariuszy!  :fright:
Ja tym bardziej :) W ogóle można zrobić duuuużo, jednak poprawna implementacja tych
algorytmów jest bardzo trudna. To nie jest tak że pogadamy sobie na forum, krzykniemy
hura, zrobimy, uruchomimy i będą super wyniki. To jest katorżnicza robota. Niektóre
techniki w programach szachowych powstały przez pomyłkę. Wszelka logika mówiła
że dany kod jest błędy i niekorzystnie wpłynie na siłę gry a jednak w testach program
grał lepiej.

Takich pomysłów jest dużo, ale trzeba spojrzeć realnie z punktu widzenia ich realizacji :)
Myślałem np. nad czymś takim aby wolontariusz mógł regulować ręcznie parametry.
Potem następuje ogromny turniej i mamy tą marchewkę: autor parametrów dostaje
jakąś nagrodę, albo chociaż jego nazwisko się pojawia na stronie. Jednak będzie problem z
czymś takim w praktyce. W przypadku algorytmu genetycznego trzeba zrobić setki
milionów gier aby wyłonić zwycięzcę. A w przypadku metody magnetycznej parametry się...
nie liczą! Następuje tylko uśrednianie wyników i tak naprawdę końcowy program to
ten który nie zagrał nawet ani jedne gry - a wiadomo że on jest najlepszy - paradoks? :)

Muszę napisać jakieś prostsze zadanie na rozgrzewkę aby nabrać obycia w BOINC.

Pozdrawiam
#451
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 21:48
Cytat: Rysiu w 31 Maj 2012, 21:43
Cytat: mariotti w 31 Maj 2012, 21:08
Cytat: Rysiu w 31 Maj 2012, 20:25
Proszę nie pisać miliarda postów, a starać się wszystko mieścić w jednym (nie chce mi się teraz tego łączyć).
A po co łączyć posty? Jest pytanie i odpowiedź, czy może być bardziej czytelnie?
Pozdrawiam
Tak. W jednym poście można zmieścić wszystkie odpowiedzi. Nikt na forum nie pisze tyle postów jeden pod drugim.
To się zrobi bałagan, nie będzie wiadomo która wypowiedź tyczy się którego problemu. Już trudno
się połapać o czym rozmawiamy, a bez podziału na posty to w ogóle będzie mieszanka :)
Pozdrawiam

#452
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 21:30
Cytat: Tomasz R. Gwiazda w 31 Maj 2012, 20:25
mysle ze sie wiele wyjasni jak bedzie testowa aplikacja
i jak troche pomozemy podpinajac sie do projektu :)
wtedy wyjdzie jaka moc obliczeniowa (ile hostow) przez jaki czas pomoze osiagnac cel.
Chyba założę że będzie maksymalnie 100 komputerów i napiszę taki algorytm uczenia
który niemal na pewno będzie robił postępy na takiej mocy obliczeniowej.

Niestety nadal jestem kompletnie zielony jeśli chodzi o działanie samej sieci BOINC.
Gdy przebrnę etap rozgryzania BOINC to myślę że w około 3-6 tygodni mógłbym
jeden z moich projektów przenieść z wersji jedno komputerowej na rozproszoną.

Optymistycznie za 2-3 miesiące coś powinno ruszyć.

Pozdrawiam
#453
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 21:08
Cytat: Rysiu w 31 Maj 2012, 20:25
Proszę nie pisać miliarda postów, a starać się wszystko mieścić w jednym (nie chce mi się teraz tego łączyć).
A po co łączyć posty? Jest pytanie i odpowiedź, czy może być bardziej czytelnie?
Pozdrawiam
#454
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 21:05
Cytat: goofyx w 31 Maj 2012, 15:59
4. ale co da ci duuża moc na jednym komputerze skoro chcesz zrobić aplikację boinc i pozyskać jak najwięcej userów <- tego nie rozumiem. no chyba że robisz aplikację dla siebie i wiesz że będzie ona chodzić na i7 z 8 wątkami
Nie pisałem że chcę dużą moc na jednym komputerze, ale że z upływem czasu
moc pojedynczego komputera rośnie. Więc rośnie moc komputerów na których
program docelowo będzie grał. Więc zapotrzebowanie na moc w trakcie uczenia
też rośnie (przykład z kierowcą wyścigowym). Więc z upływem czasu, pomimo
narastającej mocy obliczeniowej pojedynczego komputera, proces uczenia
nie będzie dużo szybciej przebiegał. :)

Pozdrawiam
#455
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 20:58
Cytat: krzyszp w 31 Maj 2012, 15:36
Ja to rozumiem inaczej.
Sensem aplikacji ma być nauka systemu prawidłowego planowania gry a nie napisanie programu szachowego. Przy takim założeniu ma powstać aplikacja BOINC i wtedy najlepiej napisać aplikację trenującą system - dobrze rozumiem?
Dobrze zrozumiałeś, ale jest jedno ale. Otóż napisanie systemu który będzie uczył grać w szachy coś od zera jest
skazane na kompletną porażkę. Jeśli systemowi uczącemu powierzymy zadanie zbudowania programu szachowego
to nie będzie rezultatów bez względu jakiej mocy użyjemy. Może przesadzam... jakbyśmy mieli
10^(10^8) komputerów to powinno się udać ;-)

Więc systemowi trzeba jakoś pomóc. Jeśli wiadomo że system nie będzie w stanie czegoś wyuczyć to trzeba
zrobić to za niego. Więc zwyczajnie trzeba napisać program szachowy i to w dodatku mocny program w oparciu o
najnowszą wiedzę jaka jest dostępna na świecie - powiedzmy że taki program już mam, ale wymaga paru
udoskonaleń. Potem małe kawałeczki z tego programu się wyrzuca i system jako zadanie otrzymuje zbudowanie
tylko tych kawałeczków w sposób lepszy niż było w oryginale. O jakich kawałeczkach mowa? Powiedzmy że dzielą
się na cztery grupy:
1) parametry funkcji oceniającej
2) parametry przeszukiwania drzewa gry
3) książka otwarć
4) baza danych, albo baza wiedzy o grze w końcówkach - jeśli AI to raczej baza wiedzy :)


Cytat: krzyszp w 31 Maj 2012, 15:36
Jeśli tak, mamy dwa założenia wzajemnie się wykluczające:
1. Aplikacja jednowątkowa - dostaje określone parametry, wykonuje funkcje trenujące, zwraca wyniki - program na serwerze dokonuje oceny wyników działania.
2. Aplikacja wielowątkowa - służy głównie do np. testowania algorytmów gry (z wyszczególnieniem wielowątkowości), może też być użyta do trenowania, ale w tym wypadku w zasadzie jest marnowaniem zasobów (IMHO).
Wszystko zależy od celu tworzenia aplikacji, jeśli ma służyć tylko jako "trener" właściwego systemu, to w zasadzie nie ma znaczenia, której opcji użyjesz, bo wtedy w całym systemie poszczególne taski (wysłane aplikacje) są właśnie takimi "wątkami" większego systemu.
Hmmm
Jest to znacznie bardziej skomplikowane. Po pierwsze sam program do gry w szachy
powinien być wielowątkowy. Jeśli nie będzie wielowątkowy, to katastrofy nie będzie, ale
dobrze by było jakby był. Po drugie rożne z tych małych kawałeczków które wymieniłem
powyżej są w różnym stopniu podatne na różne metody uczenia. Czasami mogłoby być
właśnie tak jak napisałeś, np. scentralizowany algorytm wnioskowania, a w sieci
BOINC turnieje i testy.


Cytat: krzyszp w 31 Maj 2012, 15:36
Natomiast faktem jest, że w zasadzie nie masz innej możliwości (tak myślę) uzyskania takiej ilości mocy obliczeniowej do trenowania algorytmów szachowych w inny sposób...
No nie mam :)

Pozdrawiam
#456
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 20:18
Cytat: lukaszja w 31 Maj 2012, 15:51
3. Ilość wątków i czasu przeznaczonego na 1 WU dla mnie przekłada się na poziom "mocy" - nie jestem pewien, czy 8 aplikacji na 1 rdzeniu dadzą to samo, to 1 aplikacja wykorzystująca 8 rdzeni - to pytanie do znawców tematu.
Zależy o jakiej mocy rozmawiamy. O mocy obliczeniowej? O mocy programu - czyli o
to jak dobrze gra? Czy o mocy algorytmu uczenia  - czyli o to jak mocy wyprodukuje
program?

Jeśli chodzi o siłę gry to tam jest najlepsze znane mi opracowanie:
http://www.cis.uab.edu/hyatt/search.html

Jeśli chodzi o moc algorytmu uczącego to odmian algorytmów tego typu
jest bardzo dużo. Czasami z dodaniem nowego procesora/komputera ich
wydajność narasta liniowo, a czasami znacznie wolniej. Dużo zależy
od ilości komputerów, mylę że do około 300 - 1000 komputerów
wydajność w algorytmach rojowych narastałaby liniowo.

Cytat: lukaszja w 31 Maj 2012, 15:51
4. Sama "moc" przekłada się na założenia końcowe - szukamy szachowego Gralla, czy "tylko" podwyższamy poprzeczkę znajomości tej gry.
Mnie się marzy taki algorytm który co roku wygeneruje trochę mocniejszy
program do grania w szachy, ale to naprawdę bardzo trudne zadanie.

Pozdrawiam
#457
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 20:04
Cytat: Martin Fox w 31 Maj 2012, 15:30
Cytat: mariotti w 31 Maj 2012, 14:12
Załóżmy że dzisiejszy standard to procesory 4-rdzeniowe i możliwość
przetwarzania 2mld instrukcji na sekundę. Więc dziś się pisze programy
szachowe które dobrze grają w czasie 30 minut na 4 rdzeniach, czyli
takie które wykorzystują 2mld * 30 * 60 * 4 instrukcji. Ok?

Za 10 lat będziemy mieli 40 rdzeni i szybkość 20mld instrukcji. Więc
będzie się pisało programy które zagrają optymalnie pod warunkiem
wykorzystania 20mld * 30 * 60 * 40 instrukcji. Ok?
A nie można napisać programu wykorzystującego jeden rdzeń robiący (przykładowo) 2mld * 30 * 60 instrukcji, i puścić cztery takie na czterech rdzeniach?
Można, nikt nie pisał że nie można.
Pozdrawiam
#458
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 20:00
Cytat: goofyx w 31 Maj 2012, 14:51
dzisiaj mam chyba ciężki dzień.
porównanie do kierowcy i samochodu to kapuje, ale jaką ty aplikację chciałbyś zrobić?
tylko taką co działa na procesorach 4 wątkowych przez np.: 10 minut?
dla każdej ilości wątków inną aplikację chcesz zrobić <- naprawdę się pogubiłem.
Jak dla mnie to albo program jest jednowątkowy albo wielowątkowy <- tworzenie iluś tam aplikacji w zależności od ilości wątków jest chyba nie zbyt trafiona.
wytłumacz mi to jak 5-latkowi <- ja naprawdę chcę zrozumieć sens tego co chcesz mi przekazać.
Jedyne co ja chcę, to być autorem, albo współautorem bardzo mocnego
programu do gry w szachy :) Jeśli zrozumiałeś porównanie do kierowcy to
zrozumiałeś wszystko. Za 10 lat będziemy mieli szybsze komputery, ale
to oznacza że warunki w których będzie grał program się zmienią. Ta
zmiana pociąga za sobą konieczność użycia większej mocy obliczeniowej w
trakcie uczenia. A więc relatywnie szybsze komputery niewiele pomagają.
Pozdrawiam

#459
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 19:51
Cytat: Cyfron w 31 Maj 2012, 14:47
a możesz mi wytłumaczyć (bo po prostu nie rozumiem) mariotti - dlaczego czas grania jest taki ważny?

Mówiąc w uproszczeniu jest tak jak już pisałem. Program szachowy ma
wiele cech. Jedna część z tych cech jest wrażliwa na głębokość przeszukiwania,
a druga nie.

Załóżmy że mamy program który ma jakąś cechę X. Gramy tym
programem miliony partii, zmieniamy cechę X i sprawdzamy czy program
po zmianie gra lepiej czy gorzej. W końcu wybieramy taką wartość cechy po jakiej
program grał najlepiej. Następnie zmieniamy warunki testowania. Np. wcześniej
graliśmy partie na 5 minut, a po zmianie gramy na godzinę. I znowu zmieniamy
cechę X i wybieram taką z jaką program grał najlepiej. Jeśli to jest cecha
depth-sensitive to dla różnych czasów różne konfiguracje będą najlepsze.

Tak wiec jeśli zoptymalizujemy program do gry na 5minut to niekoniecznie
będzie optymalny na 60 minut.

Cytat: Cyfron w 31 Maj 2012, 14:47
Bo ja tak sobie myślę, że ten algorytm, który ma potem grać, to trzeba nauczyć pewnych postępowań, myślenia o kolejnych ruchach - czy uczenie nie polega na przeprowadzeniu po prostu iluś partii (nie ważne jak szybko, tylko ważne ile)? i na podstawie symulacji on sobie będzie wiedział jaka opcja jest najbardziej korzystna jako kolejny ruch.
Co nazywasz 'symulacjami'?

Cytat: Cyfron w 31 Maj 2012, 14:47
Ja mam wrażenie, że w szachach nie liczy się jak długo się gra (bo jeden ruch można wymyślać przez tydzień) tylko "ogranie" i wiedzenie co należy kiedy zrobić. więc jak dla mnie liczy się jednak prędkość i ilość wątków, a tutaj mówisz, że prędkość i ilość nie ma znaczenia, bo cały czas jest to samo, bo liczy się czas przeliczania - dlaczego?
W zupełnie innym kontekście pisałem że prędkość i ilość nie ma znaczenia. Byś musiał
przeczytać od kilku postów wcześniej.

Pozdrawiam
#460
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 14:44
Cytat: goofyx w 31 Maj 2012, 14:20
@mariotti: wybacz ale kompletnie cie nie rozumiem :(
chcesz przygotować aplikację z obsługa np.: 4 wątków, zamiast aplikacji na 1 wątku, która mogła by być uruchomiona jako 4 różne procesy?
Nie wiem w jaki sposób to jeszcze wytłumaczyć aby było jasne.

Czasami używa się określenia że niektóre cech programu
szachowego są depth sensitive a inne nie są.

Porównuję to do wyścigów samochodowych. Kierowca trenuje na
słabym samochodzie i w końcu osiąga perfekcje. Przed zawodami
otrzymuje jednak lepszy samochód. Czy to że otrzymał lepszy
samochód coś pomoże? Raczej zaszkodzi, bo nie będzie znał
możliwości samochodu. Z programem jest tak samo. Jeśli
będzie trenowany na jednym wątku i czas 10s, a potem
ktoś go weźmie do gry na 40 wątkach a czas ustawi na 1 godzinę,
to program nie będzie umiał w pełni ani wykorzystać tej godziny, ani
40 wątków, bo nie był uczony w takich warunkach.

Pozdrawiam
#461
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 14:12
Cytat: krzyszp w 31 Maj 2012, 12:11
PoznanskaPyra miał chyba coś innego na myśli.
Otóż w BOINC, poszczególne projekty zwykle używają jednego rdzenia (wątku), bo tak jest prościej. Dzięki temu możesz jednocześnie uruchomić np. 6 aplikacji uczących się, każda na jednym rdzeniu.
Osobnym podejściem jest właśnie aplikacja wielowątkowa - w tym wypadku występuje zjawisko, o którym piszesz.
Niemniej, przy założeniu jednego wątku na jedną aplikację, możesz mieć "na raz" odpalone np. 20k programów uczących się na 5k maszyn. Za 2 lata może to być 50k programów na 5k maszyn, itd.
Ja to tak właśnie zrozumiałem, ale nie rozumiecie mnie. Chodzi o to że te 50k
programów za dwa lata niewiele zmieni.

Załóżmy że dzisiejszy standard to procesory 4-rdzeniowe i możliwość
przetwarzania 2mld instrukcji na sekundę. Więc dziś się pisze programy
szachowe które dobrze grają w czasie 30 minut na 4 rdzeniach, czyli
takie które wykorzystują 2mld * 30 * 60 * 4 instrukcji. Ok?

Za 10 lat będziemy mieli 40 rdzeni i szybkość 20mld instrukcji. Więc
będzie się pisało programy które zagrają optymalnie pod warunkiem
wykorzystania 20mld * 30 * 60 * 40 instrukcji. Ok?

A więc dysponując dziś 1tys dzisiejszych komputerów mamy te
same możliwości tuningu co za 10 lat dysponując 1tys szybszych
komputerów. Po prostu za 10 lat też zmienią się wymogi.
Zapotrzebowanie na szybkość i ilość procesorów zmieni się
proporcjonalnie.

Dopiero gdy komputery przyspieszą około 10^20 - 10^40 razy
nastąpi przełom, bo ktoś przeszuka szachy do końca i poda
optymalną strategię.

Pozdrawiam






#462
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 11:49
Cytat: PoznanskaPyra w 31 Maj 2012, 11:22
Mi tu chodziło o co innego. Mamy 12 wątków, czyli 12 treningów na raz liczby te się podwajają. Najlepsze do tego celu są opetrony, niskie taktowanie( w tym wypadku nic to nie zmieni) ale za to 16 rdzeni na jednym procesorze.
Chyba coś nie tak z moją umiejętnością tłumaczenia :)

Jeśli staną się popularne procesory które mają 100 rdzeni to programy
szachowe będą je wykorzystywały. Użytkownik kupi sobie procesor ze
stoma rdzeniami i uruchomi na nim program szachowy na 100 wątkach.
Oznacza to, że w trakcie tuningu najlepiej też będzie używać wszystkich
stu rdzeni do jednej rozgrywki. Jeśli będziemy tuningować 100 programów
jednocześnie i każdy na innym rdzeniu to tuningujemy program do gry w
innych warunkach niż docelowe.

Już dziś można zrobić w trakcie tuningu rozgrywki z przeszukiwaniem
drzewa gry na 2 ruchy w głąb. Wtedy rozgrywka trwa ułamki sekund i
nawet na wolnej maszynie można zrobić miliony gier. Problem w tym że
program który zwycięża na dwa ruch w głąb, niekoniecznie będzie także
zwyciężał na 4 ruchy w głąb. To są trochę inne zadania.

Program na 100 rdzeniach będzie osiągał głębokość powiedzmy 16 ruchów, a
gdy do tuningu użyjemy tylko jednego rdzenia i krótkiego czasu to będzie
osiągał głębokość np. 12 ruchów.

Nie wiem do czego to jeszcze porównać... może to tak samo jakby
kierowca rajdowy trenował na samochodzie o kiepskich parametrach. A
do startu by dostał super nowoczesną maszynę. Może się okazać że
mu to nawet zaszkodzi, bo nie będzie dobrze znał nowego samochodu :)

Pozdrawiam



#463
Rozmowy nieBOINCowane / własny projekt
31 Maj 2012, 10:54
Cytat: goofyx w 31 Maj 2012, 08:02
Cytat: mariotti w 30 Maj 2012, 19:25
Cytat: PoznanskaPyra w 30 Maj 2012, 18:52
Jeżeli teraz i7 robi 12 wątków na raz to za 10 lat, to pewnie ze 30 wątków na raz nie będzie niczym wyjątkowym. Wtedy jeden procesor może robić na raz kilka gier.
No właśnie nie jest tak kolorowo. Jeśli będą komputery z 30ma procesorami to docelowo
program będzie używał właśnie 30 procesorów. Więc idealnie byłoby jakby był uczony też
na takiej maszynie. Jakkolwiek wzrośnie szybkość komputer to tak samo wzrośnie
zapotrzebowanie w trakcie uczenia.
zgadza się.
Kiedyś grze wystarczył jeden wątek bo procesory miały 1 rdzeń czyli 1 wątek <- teraz niektóre gry korzystają już z 2-3 wątków, a  Wiedźmin 2 chyba nawet z 4. Programy graficzne potrafią obsłużyć tyle wątków na ile pozwoli im sprzęt np.: 3D max.
Dzięki coraz szybszym CPU i GPU gry i programy będą coraz "lepsze" a to oznacza zwiększający się popyt na zasoby. Podobnie było z RAM'em, kiedyś 32 mega ramu to był full wypas, a teraz Windows 7 zżera na dzień dobry chyba do 512MB Ram <- nie wspominając o np.: Modern Warfare 3, który siedzi na 1,5Gb ramu <- co nie jest największą wartością jaką widziałem.
To jest prawda, ale piszesz o czymś innym.

Chodzi o to, że jak biegacz trenuje bieg na 100 metrów, to
najlepiej będzie biegał na 100 metrów. Na kilometr prawdopodobnie
też mu się poprawią osiągi, ale jednak najlepszy będzie na 100 metrów,
bo taki dystans biegał na treningach.

Podobnie jest z programem szachowym. Jeśli się go dostosuje do
gry na 30 sekund, to prawdopodobnie też będzie lepiej grał na godzinę,
ale najlepiej od razu go tuningować do gry na godzinę. Jeśli
moc komputerów wzrasta, to także trzeba na tuning przeznaczać
więcej obliczeń.

Pozdrawiam
#464
Rozmowy nieBOINCowane / własny projekt
30 Maj 2012, 19:25
Cytat: PoznanskaPyra w 30 Maj 2012, 18:52
Jeżeli teraz i7 robi 12 wątków na raz to za 10 lat, to pewnie ze 30 wątków na raz nie będzie niczym wyjątkowym. Wtedy jeden procesor może robić na raz kilka gier.
No właśnie nie jest tak kolorowo. Jeśli będą komputery z 30ma procesorami to docelowo
program będzie używał właśnie 30 procesorów. Więc idealnie byłoby jakby był uczony też
na takiej maszynie. Jakkolwiek wzrośnie szybkość komputer to tak samo wzrośnie
zapotrzebowanie w trakcie uczenia.
#465
Rozmowy nieBOINCowane / własny projekt
30 Maj 2012, 18:47
Cytat: PoznanskaPyra w 30 Maj 2012, 18:18
Bierzesz pod uwagę zmienną, czyli prędkość obliczeń komputerów, ciągłe przyrastanie ilości rdzeni w procesorze? Za 10lat, obecne komputery będą przestarzałymi złomami.
Niestety w szachach to zbyt dużo nie zmienia, ponieważ rozgrywka
jest na czas. Im szybszy komputer, tym rozgrywka w tym samym
czasie pochłania więcej mocy obliczeniowej.

Zwykle rozgrywka trwa od 30-120 minut. Aby uzyskać najlepszy program w
tak długiej rozgrywce, to w trakcie uczenia również należałoby prowadzić
rozgrywki na czas 30-120mnut. Oczywiście rzadko kto ma dostęp do
tak dużej mocy obliczeniowej, więc w trakcie uczenia rozgrywki skraca
się np. do 10-60 sekund. Potem można mieć nadzieję, że jeśli program
dobrze gra na 10 sekund to również będzie dobrze grał na 120 minut. Na
ogół jest to prawda, ale nie zawsze. Lepiej jest gdy rozgrywki są przeprowadzane na
możliwie długi czas bez względu na aktualną szybkość komputerów.

Chyba trzeba zapomnieć o algorytmach genetycznych nawet jeśli ma
się 10tys komputerów. Bardziej realne wydają się algorytmy rojowe.
Dla genetycznych to może od miliona...

Do algorytmów rojowych 1000 komputerów to aż za dużo. Przy pełnym
zrównolegleniu jedna iteracja ucząca trwa około 30-60 sekund. Na jedną
dobę można uzyskać powiedzmy 2tys iteracji. Często ciekawe rezultaty
miałem już po 1tys iteracji.

Pozdrawiam
#466
Rozmowy nieBOINCowane / własny projekt
30 Maj 2012, 17:29
Cytat: krzyszp w 29 Maj 2012, 11:19
Myślę, że przy odrobinie wysiłku osiągnięcie 10k liczących (a to oznacza użytkowników, a nie ilość komputerów/procesorów/rdzeni - tych może być np 5 x tyle) algorytm 3 wydaje się wręcz oczywisty :)
Algorytm 3 jest najbardziej intrygujący, ale nie wiem czy jest choć trochę realny :D

Żeby ocenić siłę gry programu trzeba rozegrać chociaż 60tys gier. Jeśli gra trwa
chociaż 60s to jedna ocena zajmuje 1000 godzin, czyli około 40 dni. Jakby mieć
10tys komputerów na 10 lat to można zrobić takich ocen około 800tys. Wydaje się
że 800tys to jest śmiesznie mało dla tak trudnego zadania.

Chyba nawet jakby było 10tys komputerów i bardzo dużo czasu to trzeba
zaprojektować jakąś szybszą metodę.

Pozdrawiam
#467
Rozmowy nieBOINCowane / własny projekt
29 Maj 2012, 13:50
Cytat: Troll81 w 29 Maj 2012, 13:04
chess960. zajmował sie konkretna odmianą szachów....
To taka odmiana która pozwala na pewną losowość w układzie startowym. O ile
dobrze zdążyłem się zorientować to próbowali zbudować taką książkę debiutową
aby był w niej bogaty zestaw ruchów dla każdego układu startowego. Nie natknąłem
się tam na opis metody uczenia, jedyne co się rzuca w oczy to fakt, że program
grał gry na bardzo długi czas. Wyniki z takich gier można analizować na
wiele sposobów.
Pozdrawiam
#468
Rozmowy nieBOINCowane / własny projekt
29 Maj 2012, 11:29
Cytat: krzyszp w 29 Maj 2012, 11:19
Myślę, że przy odrobinie wysiłku osiągnięcie 10k liczących (a to oznacza użytkowników, a nie ilość komputerów/procesorów/rdzeni - tych może być np 5 x tyle) algorytm 3 wydaje się wręcz oczywisty :)
Jest także coś ciekawego do zaimplementowania, co zgromadziło by może nawet dziesiątki tysięcy ludzi...
Istnieje możliwość, że stworzyłbyś stronę internetową do gry w szachy z komputerem (serwerem), gdzie po stronie maszyny grałby program nauczony grać za pomocą BOINC? Coś takiego, nawet przy oczywistych ograniczeniach (np. max. 5 graczy jednocześnie ze względu na potrzebną moc obliczeniową) było by ewenementem na skalę światową...
Hmmmm zastanawiające to wszystko :)

Na pewno zrobienie strony internetowej do gry z programem w szachy jest w tym
wszystkim najprostszym zadaniem. Dużo dłubania byłoby z interfejsem w JavaScript, a
po stronie serwera to tylko kilka komend dla programu. To da się łatwo zawsze zrobić...

Dużo gorzej z dopracowywaniem "algorytmów szachowych", to może trwać całe
miesiące, albo lata.

Pozdrawiam

#469
Rozmowy nieBOINCowane / własny projekt
29 Maj 2012, 10:57
Cytat: xelexin w 29 Maj 2012, 08:59
Czytając ogólnie idea ciekawa :)

Jeżeli potrzebujesz pomocy uderzaj do mnie! :)
Dziękuję za ofertę pomocy, skorzystam na pewno. Ale wszystko powoli i
dokładnie, bo dość trudne i wymagające zagadnienia :)
Pozdrawiam

#470
Rozmowy nieBOINCowane / własny projekt
29 Maj 2012, 10:51
Cytat: krzyszp w 29 Maj 2012, 08:33
W temacie sztucznej inteligencji?
Możesz IMHO spokojnie myśleć w o liczbach cztero (a może pięcio) cyfrowych... (np. Chess960@Home - 7,501 użytkowników, Mersenne@Home ok 2k) :)
Wszystko zależy od tego, jak ciekawy jest problem oraz czy będziesz publikował wyniki (ludziska lubią otwarte projekty).

7.5tys użytkowników to bardzo dużo, nie myślałem że takie ilości są realne...

Do tej pory testowałem około 4-5 metod uczenia maszynowego:
1) Metody bazujące na aproksymacji funkcji
a) liniowych
b) nieliniowych
2) Odmianę algorytmu rojowego (nazywam ją metodą magnetyczną)
3) Algorytmy genetyczne/ewolucyjne.
4) Metody ręczne.

Ad 1) Ogólnie metody te są bardzo szybkie. Osiągałem przy ich pomocy ciekawe
wyniki już po około 30-60 godzinach obliczeń. Niestety metody te mają
dwie wady. Po pierwsze są ograniczone do funkcji ciągłych, a może nawet
do różniczkowalnych. Po drugie wymagają reprezentatywnych danych, a to
bardzo trudno zapewnić. Nawet trudno jest zdefiniować czym są reprezentatywne
dane. Zwykle dane są w jakiś sposób statystycznie obciążone. Metoda dochodzi
do pewnego poziomu (często bardzo przyzwoitego) ale potem efekt jest odwrotny
do zamierzonego: program w miarę uczenia gra coraz gorzej. Obserwowałem takie
zjawisko przez ostatnie pół roku chyba ze 30 razy. Jak na razie nie rozumiem co
dokładnie jest przyczyną załamania, podejrzewam że są nią niezbyt dobre dane uczące.
Więc raczej ta metoda nie będzie się nadawała do obliczeń rozproszonych.

Ad 2) Algorytmy rojowe mają mniej ograniczeń, można nimi optymalizować funkcje
nieciągłe i nieróżniczkowalne. Okupione jest to oczywiście czasem uczenia. Gdy
badałem skuteczność algorytmów rojowych to zwykle miałem dobre rezultaty po
około 12-120 tygodniach ciągłych obliczeń. Nie obserwowałem nigdy aby dochodziło
do procesu załamania w trakcie uczenia, raczej był stabilny postęp. Metoda dość dobrze
się zrównolegla, praktycznie przy zastosowaniu 100 procesorów zrównoleglenie jest
liniowe. Myślę że ta metoda jest najbardziej rozsądnym kandydatem na BOINC.

Ad 3) Algorytmy ewolucyjne bądź genetyczne mają największy potencjał, ale wymagają
koszmarnej mocy obliczeniowej. Po trzech latach ciągłych obliczeń nie zaobserwowałem
nawet najmniejszego postępu. Z symulacji na prostszych grach wynika że trzeba
zastosować minimum 1tys komputerów przez wiele lat. Oszacowanie 1tys jest absolutnie
minimalne, być może musi być ich aż 10tys. Nie wiem czy jest sens rzucania się na tak
trudne  zadanie nawet w sieci BOINC.

Ad 4) Metody ręczne wymagają współpracy z dobrymi szachistami. Szachista obserwuje
grę programu i następnie sugeruje programiście co mogło być przyczyną przegranej.
Potem programista próbuje uwagi szachisty zaimplementować na setki różnych
sposobów (coś jak algorytm genetyczny, ale sterowany ludzkim umysłem). Ostatecznie
wykonuje się ogromny turniej w którym grają wszystkie wersje w celu weryfikacji. Myślę
że ta metoda też by się nadawała na BOINC.

Do tego wszystkiego dochodzą metody wyspecjalizowane np. do samych debiutów
szachowych, albo końcówek. Na razie nie wyobrażam sobie aby one nadawały się
do obliczeń rozproszonych. Chociaż może...

Najbardziej kuszący jest punkt trzeci, ale niesie z sobą takie ryzyko, że po 50latach
obliczeń u tysięcy użytkowników nie będzie żadnego efektu :)

Pozdrawiam




#471
Rozmowy nieBOINCowane / własny projekt
29 Maj 2012, 07:43
Cytat: Troll81 w 29 Maj 2012, 07:08
i tak warto zapisac :D
Hmmm w pewnym sensie masz rację.
Jeśli przybędzie tysiąc procesorów do obliczeń to wszystko warto :>
A tak poważnie i realnie to na jaką moc obliczeniową jest szansa?
Pozdrawiam
#472
Rozmowy nieBOINCowane / własny projekt
28 Maj 2012, 22:02
Będę próbował wpinać się w BIONC dokładnie ze wskazówkami jakie znajdę w
dokumentacji. Nic nowego/odmiennego nie wymyślę w tej dziedzinie.
#473
Rozmowy nieBOINCowane / własny projekt
28 Maj 2012, 11:16
Cytat: Troll81 w 28 Maj 2012, 10:57
chodzi raczej o kwestie dokumentowania. Możesz to spisywać choćby i w rodzie. Załózmy że spotakasz dwa sposoby roziazania jakiegos problemu. Wykorzystasz jeden z nich i niby problem zniknął. Ale za miesiąc okaże się że rozwiązanie nie do końca działa a ty juz nie pamietasz które wybrałeśi jak sie je robiło. A tak wrócisz do bloga i sobie sprawdzisz. ponadto dokumentacja bywa przestarzała i np cos tam sie zmieniło. Np w nowszej wersji PHP juz czegoś tam nie trzeba robić... tego jest mnóstwo. Zresztą jako programista powinienes wiedziec jak wazne jest dokumentowanie tego co robisz. Nie zakładaj też że zawsze tylko ty będziesz cos robił przy projekcie. Czasem ktos cie będzie musiał zastąpic i dobrze by było by wiedział co i jak albo wiedział gdzie tego szukac.....
To jest oczywiste że swoje prace warto dokumentować. Myślałem
że chodzi o "moje ślady" w sieci obliczeń rozproszonych...
Jeśli chodzi o udokumentowanie moich prac z zakresu uczenia maszynowego w
szachach to oczywiście gromadzę doświadczenia, wiedzę, wyniki eksperymentów,
przemyślenia i co tam jeszcze. Przy pomyślnych wiatrach za kilka lat powstanie z
tego monografia.
Pozdrawiam


#474
Rozmowy nieBOINCowane / własny projekt
28 Maj 2012, 10:01
Cytat: Troll81 w 28 Maj 2012, 09:44
dokładnie jak pisze Cyfron. Rób sobie dokumentację to łatwiej będzie ci po miesiącu np wrócić do tego dlaczego np cos ci nie dizała....
Nie wydaje mi się aby to był dobry pomysł. Jeśli czegoś się nauczę to z
materiałów które gdzieś znajdę. Więc co będę mógł zrobić? Powielić
to co znalazłem i ewentualnie dodać swoje pomyłki? ;-) Nie zrobię tego
lepiej niż autorzy. Jeśli nie ma dobrych materiałów i naprawdę trzeba je
wykonać to ja po prostu tego się nie nauczę bo nie będę miał skąd.
Natomiast mogę was zapewnić że jeśli wpadnie mi w ręce jakiś dobry
papier to się podzielę.
Pozdrawiam
#475
Rozmowy nieBOINCowane / własny projekt
28 Maj 2012, 08:41
Cytat: Troll81 w 28 Maj 2012, 08:30
no więc własnie proponuje jego utworzenie :D
Jeśli się nie znam na tym to jak mam go utworzyć?
Pozdrawiam
#476
Rozmowy nieBOINCowane / własny projekt
28 Maj 2012, 08:12
Cytat: Troll81 w 28 Maj 2012, 06:16
może przy okazii poprowadzisz bloga o tworzeniu projektu? ewentualnie udokumentujesz swe poczynania w formie artykułu?? byłby to świetny materiał dla idacych w twe ślady.....
Obecnie sam takiego bloga potrzebuję.
Pozdrawiam
#477
Rozmowy nieBOINCowane / własny projekt
27 Maj 2012, 22:37
Ok, dziękuję za namiary.
Jakby jeszcze ktoś jeszcze podrzucił jakieś materiały (może po polsku) to
będę wdzięczny. Zacząłem czytać wiki, zobaczymy czy się połapię w
tym wszystkim :) Wkrótce dam znać co się dzieje.
Pozdrawiam
#478
Rozmowy nieBOINCowane / własny projekt
27 Maj 2012, 18:27
Dziękuję za wszystkie odpowiedzi.

Moja decyzja jest taka: najpierw napiszę jakiś baaardzo prosty
projekt zgodny z BOINC, żeby nie rzucać się od razu na głęboką
wodę. Chcę zobaczyć jak się programuje aplikacje zgodne z
BOINC i jak to wszystko działa. Jeśli się uda z prostym projektem,
to potem sztuczna inteligencja w zastosowaniu do szachów.

Macie może jakieś propozycje bardzo prostej aplikacji? Mnie tak
na zawołanie przychodzi np. metoda brut-force do sprawdzania
czy liczba 64 bitowa jest liczbą pierwszą.

Moja pierwsza prośba o pomoc jest nasŧępująca: jak się zabrać za pisanie
aplikacji zgodnej z BOINC? Co powinienem przeczytać najpierw?
Dacie linki do materiałów? Na obliczeniach rozproszonych powiedzmy że
się znam, ale jak to jest zorganizowane w BOINC to kompletnie nie wiem.


Pozdrawiam
#479
Rozmowy nieBOINCowane / własny projekt
26 Maj 2012, 03:33
Cytat: PoznanskaPyra w 26 Maj 2012, 02:28
Wg mnie konieczne by było napisanie aplikacji na CUDA NV lub ATI STREAM. Mogę się też postarać wykonać jakieś odznaki :)
Witam :)

Ale konieczne do czego? Do szachów się nie nadają, bo nie mają stosu.

Pozdrawiam
#480
Rozmowy nieBOINCowane / własny projekt
26 Maj 2012, 01:56
Za sprawą waszych wypowiedzi jestem wstępnie napalony.
Musiałbym więc zapoznać się z jakimś regulaminem i potem z
dokumentacją. Jakie dokumenty polecacie dla początkującego?
Bez zrozumienia na jakiej zasadzie to działa trudno snuć
dalsze spekulacje...

Może na rozgrzewkę warto napisać coś prostszego... może jakiś
hello world szachowy... może tzw test PERFT. Test ten polega
na policzeniu ile liści ma drzewo gry po przeszukaniu na zadaną
głębokość. Może policzymy na głębokość 14 ruchów :D
http://www.talkchess.com/forum/viewtopic.php?start=0&t=38862&topic_view=flat&sid=cb1572b39cc54505d74c2ec5044a572a

Pozdrawiam