» »

Predictor II

Predictor II

«
1
2

Thomas ::

Danes (1. oktobra 2002) bomo (virtualno) po prodajnem (po toliko oni prodajajo) tečaju Banke Slovenije, za milijon SIT kupili češke krone in poljske zlote. Vsakih za 500 tisoč SIT.

Dobili smo jih:

Kron - 66275,20

in

Zlotov - 8903,60.

Tako nam je svetoval en zevoluiran programski špekulant. Najboljši od nekaj milijard.

Bomo videli, kako mu bo šlo zanaprej.



:)
Man muss immer generalisieren - Carl Jacobi

pramarko ::

Kdo je to kupil?
Virtualno? Se pravi... gre za testiranje programa???
Ha?

Zgodovina sprememb…

  • spremenilo: pramarko ()

Thomas ::

pramarko,

Dinamični modul programa Predictor II je to virtulano kupil, za svoj virtualni račun.

Boljš zanjga - za modul - da mu (virtualni) kupček počasi raste, sicer bo izbrisan in nadomeščen z drugim.

Simulacija evolucije, kjer je merilo za fitness koliko denarja zasluži.

More bit že dober da ostane na svojem, saj plačuje 3 promile provizije, pri vsaki konverziji. Bančni standard pač.

Random program tako v letu dni zgubi ene pol, zaradi teh provizij.

Tale ma že svoj record. Cca. 1/4 neto (virtualnega) profita od 1.1. 2002.

Javni test je zdaj na sporedu!

:)
Man muss immer generalisieren - Carl Jacobi

pramarko ::

Zanimivo!
A to razijajo Slovenci?! Zakon!
A mogoče veš na podlagi katerih programov se Predictor odloča?
Katera firma pa je naredila (oz. ga dela) ta program? Evolve?

Zgodovina sprememb…

  • spremenilo: pramarko ()

Thomas ::

No, bomo videli, kako se bo zadeva obnesla do 31. oktobra, dneva varčevanja. :D

Tele reči so trenutno marsikje v svetu (bolj na začetku) razvoja.

Jest sploh ne verjamem, da se peš da v realnem času kaj uporabnega razviti.

Simulacija evolucije se mi pa zdi možna pot. No, in to tukajle poizkušamo. "Namesto" problemov, ki smo jih reševali v preteklosti. Recimo.

:)
Man muss immer generalisieren - Carl Jacobi

Thomas ::

No ... danes bomo pa zamenjali vse češke krone v poljske zlote. Po tečaju banke Slovenije in s plačilom 3 promile provizije banki.

Tahko imamo zdaj:

17785.68 poljskih zlotov.


:)

Man muss immer generalisieren - Carl Jacobi

Thomas ::

Včerajšnja, nulta transakcija (nakup delovnih deviz) nas je stala 3000 SIT, vendar smo jih dobili z današnjimi tečaji cca 1800 nazaj. Kar pa še ne pomeni nič - jasno. Šele relativno dolga vrsta medvalutnih transakcij kakršna je današnja, bo dala tako ali drugače zanimiv rezultat.

:)
Man muss immer generalisieren - Carl Jacobi

Odin ::

Kako pa deluje ta program?

Če bi nonstop kupoval in prodajal nekak ne diši po dobičku.

Thomas ::

To deluje nekako tako, kot deluje "štetje kart" pri Black Jacku.

Dve razilki sta:



  • predicting valut je 1000 krat bolj kompliciran od igranja BJ


  • predicting valut je legalen




Kako točno deluje, pa jest niti ne vem. Zevoluiran algoritem pač.

Podrobneje ne bi.

:)
Man muss immer generalisieren - Carl Jacobi

pramarko ::

Aha.. nisem vedel, da je to bistvu nadaljevanje enega že odprtega foruma... pardon!

Ej, Thomas, tole genetsko programiranje je pa res ful zanimivo! Sm mau srfu pa sm našel celo nekaj razumljivih uvodnih tutorialov. Edini problem je, da bi jst to zadevo rad tudi v praxi sprobal, pa nisem nikjer našel napotkov kako se zadeve lotit.

A bi ti bilo odveč napisat genetski program za en čist banalen primer... kaj vem... npr. da poišče parametre valja (r in h), ki bo imel čim manjšo površino ob čim večjem volumnu... al to ni ravno najboljši primer?
Če bi objavil takšen banalen primer, bi ti bilo po moje vsi tule zelo hvaležni (bi si znali lažje predstavljat in vedeli bi kako se začet s tem ukvarjat), po drugi strani pa ti ne bi izdal nobenih fint, ki si jih pridobil z leti in so kot praviš pravzaprav poslovna skrivnost.

Ali pa... če ti je lažje... a lahko objaviš svoj prvi delujoči genetski program?

Pa k že ravno težim, katera orodja vse uporabljaš (poleg UE)?
Kako da ne programiraš v Lispu?? V tutorialih je bil namreč precej opevan.

LP
Marko

Odin ::

Torej vse kar dela je kopuje/prodaja valute?

Če je tu dobiček, vsaka čast programu in avtorju programa!!

In če bi vsak imel tak program, bi šle menjalnice, že po par dnevih, v stečaj8-O

Ampak vseeno mi ni jasno.

Torej je poljska valuta zdaj kao ful trdna?

Kako lahko računalnik predvideva katera valuta bo padla/narasla?

Za to bi po moje potreboval znanje o globalni ekonomiji in politiki.

pramarko ::

Eh, sej že zdaj vem, da sem se spomnil neprimeren primer, ampak se sploh ne spomnim primernega banalnega primera :8)
Če se ti spomniš česa primernega, bi bilo zlo fajn :)

asPeteR ::

Odlična ideja!

... toda, kaj ko bi probal zevoluirati podoben algoriten, samo s to razliko, da bi bil optimiziran za borzo, za trge vrednostnih papirjev?

Kajti, ce bi(bo) to delovalo si miljarder!

8-O

pramarko ::

Hehe, najbrž tudi z dobrim svetovalcem glede deviznih gibanj je lahko miljarder, rabi pa začetni kapital.

Thomas ::

Prav. Napisali bomo (psevdo)program, ki dela nekaj precej zahtevnega. Tako boste lahko razumeli poanto, ko boste v svoj najljubši prevajalnik pretipkali zadevo in jo zagnali.

Imamo dva kaveljna. Enega na višini 10 metrov, drugega pa na višini 5 metrov. Horizontalna oddaljenost med kavljema je 12 metrov, tako da je zračna črta med njima 13 metrov.

Imamo pa tudi verigo, dolgo 20 metrov, sestavljeno iz členov dolgih 1 milimeter. Obesili jo bomo od kavlja do kavlja. Od prvega do zadnjega glida ketne.

Se veriga dotika tal?

Definiramo array 20 tisoč X koordinat.

Definiramo array 20 tisoč Y koordinat.

Definiramo array 20 tisoč kotov alfa.

Potem jih nafilamo z random vrednostmi.

X in Y predstavljata koordinate enega konca člena, alfa pa kot na proti vodoravnici.

Kaj smo s tem naredili. Nekam v zrak smo nametali vseh 20000 členov verige.

Zdej pa definiramo EROR kot vsoto:



  • evklidska razdalja prve točke prvega člena od prvega kavlja

  • +
  • evklidska razdalja zadnje točke zadnjega člena od zadnjega kavlja

  • +
  • vsota 20000 razdalj med členi. In sicer zadnji konec enega s prvim koncem naslednjega člena

  • +
  • vsota vseh višin težišč




Potem pa naredimo en loop, v katerem se delajo slučajne spremembe na slučajnem številu členov. Kadar se EROR zmanjša, obdržimo novo stanje. Kadar pa ne, vzpostavimo prejšnje.

Very soon se veriga prav uleže!

Sem na razpolago za podvprašanja.

:)
Man muss immer generalisieren - Carl Jacobi

Odin ::

Imamo dva kaveljna. Enega na višini 10 metrov, drugega pa na višini 5 metrov. Horizontalna oddaljenost med kavljema je 12 metrov, tako da je zračna črta med njima 13 metrov.
To je vse jasno:)) . Dalje bore malo:(

Kaj pomeni array?
Zakaj bi bilo x (in y) 20000, če pa je ketne v širino(dolžino) največ 12m(10m)


Kaj zadostuje za tako nalogo gimnazijska matematična izobraženost, ali je to že na višjem nivoju?

Thomas ::

Array je polje. 20000 členov verige imamo po milimeter dolge. Pač je daljša od 13 metrov.

Zdej jo pa (predolgo) obesimo. Se bo dotaknila tal?

Kako se bo sploh ulegla?

(Gimnazijsko znanje matematike/fizike je načelno dovolj za rešitev tega problema. Ampak samo načelno.)

No, če pa narediš tako kot sem rekel, torej random namečeš tiste rinčke v zrak in izračunaš EROR kot povedano ... potem pa narediš še Loop kot sem napisal ...

Bo magija delovala in dobil boš sliko obešene ketne. Majke mi!

8-)
Man muss immer generalisieren - Carl Jacobi

Odin ::

Ja sej nalogo popolnoma razumem.

Sem tudi že probal na klasičen način rešit(krožnico, elipso...) pa ne gre.

Je pa res, da se na programe en k.rc spoznam.
Bi še probal rešit, pa se mi sanje ne kaj je to EROR in LOOP.
Bi mi lahko še to razložil?

Thomas ::

EROR je ena številka. Vsota vseh tistih količin, ki sem jih napisal.

Vse razdalje med obročki (ki bi morale biti 0) + razdalja začetnega in končnega obročka od kavlja (ki morata na koncu biti 0) + vsota vseh višin obročkov (katera mora biti čimmanjša).

To je ta EROR nič drugega.

Loop je pa neskončna zanka, v kateri random rahlo nekaj spremeniš, potem pa če je na novo izračunani EROR manjši kot dosedaj najboljši - okay. Sicer pa privzameš stanje pred to random spremembo. Vrneš se na zadnjo najboljšo generacijo.

Tipična evolucija.

Če boš probal in naredil - ti bo postalo zelo jasno.

:)
Man muss immer generalisieren - Carl Jacobi

Odin ::

Torej
EROR=0+0+0+1(recimo da je 1m)=1

Če prav razumem:
če bo zdaj prišel neki novi rezultat 0.7 je ok.

Ni mi jasno kak bi lahko do takšnega rezultat prišel, kje bi lahko random spremenil?
Kak misliš, da je loop neskončna zanka?


Vseeno se mi zdi, da sem že bliže:D

Binji ::

Primer izredno enostavne neskoncne zanke je npr:
10 GOTO 10

oz

1
10 GOTO 1


or whatever
Kdor ne navija ni Slovenc, hej, hej, hej!

Thomas ::

Včerajšnja prva transakcija čeških kron v poljske zlote nas je stala slabih 1500 SIT. Vrednost celega kupčka zlotov, pa je od včeraj na danes zrasla za 2500 SIT.

Do popoldne se bo zračunala današnja konverzija ...

:)
Man muss immer generalisieren - Carl Jacobi

Thomas ::

Danes naj bi ostali pri zlotih. Njegova modrost program, pravi tako.

Tako sicer največkrat reče. Ne vidi velike verjetnosti za takšno spremembo tečaja, ki bi prekašala stroške konverzije (provizijo banke). Tudi ne misli, da so zloti tako nevarni, da bi se jih bilo dobro znebiti.

Zato svetuje čakanje.

Svašta, a?

:D
Man muss immer generalisieren - Carl Jacobi

pramarko ::

> Potem pa naredimo en loop, v katerem se delajo slučajne spremembe na slučajnem številu členov. Kadar se EROR zmanjša, obdržimo novo stanje. Kadar pa ne, vzpostavimo prejšnje.

Tale loop mi ni čisto jasen. Delamo random spremembe na random členih. To pomeni, da se teoretično lahko zgodi, da bo loop, preden bo našel pravilne koordinate vseh členkov, preizkusil vse možne kombinacije x, y lokacij vseh členkov (če predpostavimo, da so x in y intigerji omejeni z max in min. vrednostjo)... ne samo to... lahko da nikoli ne bo našel pravilne postavitve členkov.
Pa še nekaj me matra glede loopa. Morda še bolj kot tistole zgoraj. Kako naj loop ustavim? Kaj je exit criteria?

Kaj je pa s tistim genetskim programiranjem, ki dajo kot output nek drug program? Vsaj tako sem razumel tvoje pisanje v oni drugi temi (na področju programiranje). A to prav razumem, program napiše program [ki napiše program [...]]? Če prav razumem, kako ful zajebano pa je narediti program, ki naredi program???

Aja... v kolikšnem času pa lahko pričakujem, da mi bo brute-force sprocesiral rezultat za zgornji primer, glede na to, da imam durona 900?

Thomas ::

Iz loopa, kjer se računa in računa in računa ... greš kadar:



  • EROR postane 0


  • čez nek določen čas


  • po pritisku na ESC,ESC


  • nikoli




Vse te rešitve so možne. Pomembno je le, da imaš vsak boljši rezultat takoj ko se izračuna, napisan na disku!

Ljudje večkrat narobe mislijo, da evolucijski algoritem sproba kar vse možnosti. To je zelo narobe! Kakor se je samo na enem delu DNA ichtostege naredila majčkena mutacija ... pa potem samo na majčkenem delu DNA dimetrodonta ... pa potem samo na enem majčkenem delu DNA prokonzula ... pa potem samo na enem majčkenem delu DNA australopitecusa ... da je prišlo do človeka - se dela v evolucijskem programiranju isto.

Če bi čakali človeka, da direktno stopi iz morja, bi čakali več let, kot je atomov v Vesolju.

Ker je pa prišel indirektno, prek mnogih "vmesnih stopenj", se je to lahko zgodilo bistveno hitreje. Verjetnosti se potem čisto drugače računajo.

Isti princip pri razpenjanje ketne.

Ali pa pri razvoju Predictorja.

:)
Man muss immer generalisieren - Carl Jacobi

Thomas ::

Tečaj zlota je v nasprotju s pričakovanjem programa padel. Trenutno smo 1% v minusu.

Se program iz te svoje napake lahko česa nauči? Lahko nadoknadi padec?

Bomo videli. :)
Man muss immer generalisieren - Carl Jacobi

Kaiser ::

Tole ketno bi precej elegantno rešil v MATLABU, če poanta ni v optimizacijskem algoritmu, ker so le-ti že vgrajeni. Vneseš začetne vrednosti, cenilka je že definirana, štartaš optimizacijo in greš na pir.
"Very funny, Scotty. Now beam down my clothes!"

City ::

Thomas je to "prva naloga", ki jo opravlja program? ker me zanima kakšna je zanesljivost.
Jasno mi je, da naprimer program pri napaki potem upošteva verjetnost in ti potem na podlagi verjetnosti poda napr. nek rezultat.
Samo računanje verjetnosti pri finančnih načrtovanjih je "OK" ampak samo za krajše časovno obdobje razen, če mu stalno ne dodajaš spremenljivke in seveda obseg programa. Jaz ne vem če bi pri tem lahko 100% zaupal samo programu, ker je pri tem spremeba spremenjivke človeški faktor.
Zdi se mi zelo zanimiva zadeva.

Thomas ::

Kaiser

Tale ketna je primer, kako algoritem dela. Jasno, da bi ga lahko rešil tudi MATLAB. Ampak je tule za poskusnega zajčka.

[Off topic se mi zdi zanimivo, kako proameriški sem v političnih debatah in kako sem tukajle skoraj alergičen na njihove uveljavljene rešitve. Ker če se jih bomo preveč oklepali in ne naredili nič svojega - je to slabo!]

City

Ne, ne ... to ni prva naloga. To je samo ena taka atraktivna naloga. En posebno trd oreh. En sharpener.

> Samo računanje verjetnosti pri finančnih načrtovanjih je "OK" ampak samo za krajše časovno obdobje razen

Ja ... absolutno! Nobenih dolgoročnih, samo kratkoročne napovedi.

> če mu stalno ne dodajaš spremenljivke in seveda obseg programa

To je bistvenega pomena. Tistega včeraj se že sramujemo, ker do danes nam je evolucija naredila korak naprej. :D

> Jaz ne vem če bi pri tem lahko 100% zaupal samo programu, ker je pri tem spremeba spremenjivke človeški faktor.

Jest se pa nagibam ravno v nasprotno smer. Hladna presoja računalnika je boljša, kot pa intuitivne reakcije človeka. Ker svet je kontraintuitiven.

To seveda velja nad nekim pragom kompleksnosti programa.

Zdej recimo bi meni intuicija rekla - znebi se zlotov! Kar tako, na pamet. Računalnik pa računa s svojimi formulami in na daljši rok začne zakon velik števil zagotovo delati zanj. Kot pri Black Jacku. Če je le zadosti dober.

Mislim da je že zdaj dober - in vem da je vsak dan boljši.


:)
Man muss immer generalisieren - Carl Jacobi

Thomas ::

Teh 17785.68 zlotov bomo skonvertirali v 31895,64 norveških kron. Po nasvetu danes dopoldne rojenega modula.

:)

PRIPIS!

Tole je problem!!!

Potem sem videl, da ŽE obstaja jutrišnji tečaj. Ki pokaže, da smo zaslužili ene 8000 SIT.

Da ne bo dvomov v kredibilnost ... bomo ostali pri 17785.68 poljski zlotih.


:)
Man muss immer generalisieren - Carl Jacobi

Zgodovina sprememb…

  • spremenil: Thomas ()

Thomas ::

Predictor vztraja, da zamenjamo zlote v norveške krone. Po trenutno veljavnem ceniku Banke Slovenije, jih bomo dobili 31627,80.

:)
Man muss immer generalisieren - Carl Jacobi

Gandalfar ::

Thomas: za naslednji projekt lahko poskusis z delnicami na navidezni studentski borzi :)

pramarko ::

Thomas: zdajle sem si končno vzel čas, da naredim svoj prvi evolucijski program! Po tvojem receptu. :D
Hvala!

Thomas ::

Ja - in kako se obnaša? Kaj dela? :) :\
Man muss immer generalisieren - Carl Jacobi

Sergio ::

Thomas, cudno se mi zdi, da se tvojemu predictorju ni posvetilo zamenjati v evre pretekli vikend... ma to valuto sploh vneseno v check-up?
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

Thomas ::

Kontrolira vse valute na listi Banke Slovenije.

Zakaj in kako mu niso bili všeč evri, ne vem. Gledam samo bottom line in imam razloge, da mu čisto (90%+) zaupam. ;)
Man muss immer generalisieren - Carl Jacobi

Sergio ::

lepo da mu zaupaš :)

poročaj še, kaj bo menjal. in btw - koliko si na "profitu" od štartnega dne?
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

Thomas ::

Sergio

Ja sej skozi pišem, kako pa kaj. Ob koncu meseca bomo pa naredili rekapitulacijo. Preverljivo z datumi, urami in tečaji BS.

Ni ga čez public preizkus!

;)

Man muss immer generalisieren - Carl Jacobi

Tomi ::

Thomas: samo nekaj mi povej, kako je pa Predictor programiran. Ker je tema bolj skopa z informacijami, pa me zanima, kako je s tem.
Sicer pa, tema me je vzpodbudila, da sem šel na Študentsko borzo. Končno bom lahko pokazal, da znam z denarjem in delnicami.
metrodusa.blogspot.com

Thomas ::

Tomi

Niti ni sprogramiran. Zevoluiran je.

Prvi "Adam" v vrsti, je random menjal valute. Potem ga je pa en drug, kontrolni program, skopiral in nekoliko (spet random) "obseval z biti". To ene mnogo tisočkrat, preden je dobil takega, ki je bil sploh sposoben zamenjati kakšno valuto. Ampak preden je bila prva sekunda mimo, je minilo že milijon generacij in en daljni "Adamov potomec", si je prvič pomagal s kosom memorije, v katerem so zapisani razni z neta sneti finančni podatki preteklih dni, tednov in mesecev.

Milijarde generacij in par dni kasneje, je že znal "Adamov potomec" zaključiti vsak mesec tega leta pozitivno. Kalšne 3% v plus.

Kontrolni program je neusmiljeno ubijal neuspešne strategije in v smislu Kolmogorova preveč zapletene algoritme. Pa seveda skrbel za razplod in mutacije.

To dela še zdaj in tudi ta trenutek.

:)
Man muss immer generalisieren - Carl Jacobi

Fury ::

men so tole slis ibr zakompliciran... a ta 2. program dejansko generira kodo 1.?... s cim si pa to napisu vse?

eh cist prehudo zame :) ti mas same abtraktne :) pa se un strongAI ipd. :) treba zacet gledat :)

Zgodovina sprememb…

  • spremenilo: Fury ()

pramarko ::

Thomas: Kaj dela?
Dela to kar si ti rekel, da naj dela.
Razen, da zaenkrat še ne shranjuje rezultatov sproti v fajl. Napisal sem ga v C# in mu lahko določiš: višino kavlja A, višino kavlja B, horizontalno razdaljo med njima, dolžino verige, število členkov v verigi.
Nima opcije prekinitve med izvajanjem, mu pa vnaprej določiš, koliko časa naj teče evolucija.
Output je začetna vrednost eror (prva generacija koordinat in kotov), najboljša dosežena vrednost eror in izris (kaveljčka in vsi členki).

Zaenkrat sem zadevo pustil tečt max. 5 minut... rezultati so bili bolj klavrni - izris je izgledal kot da sneži. Trenutno pa mi domači računalnik že 7 ur švica pri polni obremenitvi. Čez dve uri bom videl, če bo evolucija sproducirala kaj boljše rezultate :D :D :D.

Res rabim nabavit hitrejši procesor!
Kater ventilator priporočate?... bistvena je tihost (da bom lahko spal med evolucijo), mora bit pa tud dosti dober.

Brane2 ::


Res rabim nabavit hitrejši procesor!
Kater ventilator priporočate?... bistvena je tihost (da bom lahko spal med evolucijo), mora bit pa tud dosti dober.


To mi je dalo mislit. Je možno, da neznatni šum elektromagnetnega valovanja, ki nas zasipa z vseh strani v bistvu prihaja z ventilatorja na overclockanem Athlonu Božjega sina ? :D :\

Zgodovina sprememb…

  • spremenil: Brane2 ()

Thomas ::

> Je možno, da neznatni šum elektromagnetnega valovanja, ki nas zasipa z vseh strani v bistvu prihaja z ventilatorja na overclockanem Athlonu Božjega sina ?

Ne to ni ventilatorski, to je znotrajprocesorski termični šum. Vsaka bit write/erase operacija, povzroči nekaj tega entropičnega šuma. :D

Man muss immer generalisieren - Carl Jacobi

Thomas ::

Norveška krona se je glede na tečaj, ki začne veljati opolnoči, znan pa je že nekaj ur, nekoliko podražila. Program nam svetuje, naj jo še zadržimo.

:)
Man muss immer generalisieren - Carl Jacobi

Thomas ::

Norveška krona ki jo imamo, se bo jutri spet malenkost podražila, pravi BS.

Bomo šli računat, kaj naprej.

:)
Man muss immer generalisieren - Carl Jacobi

Double_J ::

Po čem to sklepa?
Po nihanjih v preteklosti?

Slednja namreč niso noben pokazatelj kako se bo tečaj gibal v prihodnosti.

Thomas ::

Misliš, da imojo cene zlata, nafte in jute kakšen vpliv na nekatere valute?

:\
Man muss immer generalisieren - Carl Jacobi

Odin ::

Na norveško valuto po moje ima.
Kolker jaz vem je norveška tretja največja izvoznica nafte. Čim dražja je, tem boljše je za njo.

Ali pa da jaz nekaj bluzim, ker se na to ne spoznam ravno dobro:D

Thomas ::

No, tale norveška krona se nam je podražila za slabega pol odstotka. Bomo preračunali, če se jo splača že zamenjat v kaj drugega - ali še čakati. :):)
Man muss immer generalisieren - Carl Jacobi
«
1
2


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo

Nakazilo v tujino

Oddelek: Loža
202412 (2141) Groot
»

V kateri valuti varčevati?

Oddelek: Loža
4411567 (10125) Tilen
»

Norveška skoraj izkoreninila internetno piratstvo, zaslužki glasbene industrije ostal

Oddelek: Novice / Avtorsko pravo
4119147 (15695) Utk
»

Opera gre na prosti trg

Oddelek: Novice / Brskalniki
92558 (2558) zeroc00l1
»

statistika (strani: 1 2 )

Oddelek: Znanost in tehnologija
675560 (4897) Thomas

Več podobnih tem