» »

statistika

statistika

1
2
»

smash ::

evo..programu sem dodal se eden algoritem posebej za uporabnika, ko vnaša 0 ali 1 ročno..download tukaj

dela pa po tem principu...

ce je uporabik vtipkal 0 0 ... bo program poskušal z 0
ce je uporabik vtipkal 1 1 ... bo program poskušal z 1
ce je uporabik vtipkal 0 1 ... bo program poskušal z 0
ce je uporabik vtipkal 1 0 ... bo program poskušal z 1

jeti51 ::

001100110011001100110011.... pa se računalnik osramoti. Mislim da bi celo malo bolj vztrajen človek razbral vzorec, po katerem se ravna računalnik.:D Še vedno čakam na Thomasov program, ki ga je nekaj napovedoval.
So pa moje ugotovitve take (za simulacijo):
računalnik random, človek 0 -> cca. 50% (OK)
računalnik random, človek 1 -> cca. 50% (OK)
računalnik random, človek random -> ponavadi 45-47% (hja no...)

računalnik algoritem1, človek 0 oz. 1 -> 0% oz. 100% (za 1 razumem, za 0 je pa že omenjeni bug)
računalnik algoritem1, človek random -> nad 98% (da tale algoritem slučajno kaj ne goljufa? Ta bug zna biti povezan z zgoraj omenjenim...)

računalnik algoritem2, človek 0 oz. 1 -> 100% oz. 0% (obrnjeno kot zgoraj)
računalnik algoritem2, človek random -> 45-47% (pričakovan rezultat, isto kot zgoraj pri random ugibanju. Čeprav spet ne vem, zakaj ravno 47 in ne 50%)

Takšni so izidi mojih testiranj ta nove verzije.:)

Thomas ::

A dela poštarska owca?

Meni ne dela, zato ga še nisem uploadal.


Man muss immer generalisieren - Carl Jacobi

smash ::

najprej slikca



pr random random kokr vidš ni vedno 47% ampak tudi 50% se zgodi

pr 00110011 se program priznam osramoti...vendar probi z algoritmom 1, kjer te poseka

AJA PREBER SI KAJ PISE ZRAVEN ALGORITMOV

algoritem 1 je boljsi ce uporabis GO button torej da racunalnik sam izbira....medtem ko je algoritem 2 boljši ko ti naključno vtipkavaš cifre...

algoritem 2 je boljši v primeru da ti vtipkavaš in sicer 001100 kot je omenjeno zgoraj..

pa še to človek: ti prpel nekoga ki bo to naključno vtipkaval, ne pa da ti poskušaš ugotovit slabosti, pri katerih se procent znižuje..to ni fer

kje si pa vidu da bi človk naključno vtipkaval vedno 00110011...sevedo je možno vendar malo verjetno, veliko manj kot naprimer 00110101000011001100000001101100101111

se strinjaš?

če ti pa kaj ni jasn pa klikn na bonzi buddyjevo slikco da ti razjasni zadevo :D

Thomas ::

Download za Predictor.zip

Ko potegnete dol, skopirajte v nek direktorij, najboljš kar v PREDICTOR.

Pa vam bo delal source za predictor za datoteko STRM.DAT.

Katerokoli lahko imenujete tako.

Aja, pa poganjajte PREDICT.BAT, če hočete, da si nabira izkušnje.

And - please ask karkoli!

:)
Man muss immer generalisieren - Carl Jacobi

Maria ::

Odin, menim, da ima Jeti51-jeva trditev šibko točko. Predpostavlja, da človek ne more postati generator random izhoda.

Bi me pa veselilo, če ima kdo kakšno povezavo na poučno in pregledno stran o definiciji random funkcije. Pa za Gogl sem že slišala :-)

Maria

Thomas ::

> Predpostavlja, da človek ne more postati generator random izhoda.

Zelo težko. Po mojem.

Napiši random črke v fajl STRM.DAT, potegni dol moj Predictor, pa boš videla, koliko random mojstrica si, Maria.

Random je vsaka funkcija, ki generira neprediktibilen (=nekompresibilen) data stream.

:)
Man muss immer generalisieren - Carl Jacobi

Odin ::

Jaz nimam pojma o tem predictoru.

V excelu mi piše, da vidim na levem trenutno kodo. o tej kodi pa ne duha/sluha. Lahko malo bolj razložiš, za nekatere programske laike;)

Thomas ::

> V excelu mi piše

8-O

Kako to misliš?

Na levi strani imaš kodo predictorja, ki se se je zgeneriral.

Nad besedilom (začetkom) datoteke pa diagram 100 tabolših. Kokrat so zadeli byte.

V zgornji liniji pa zaporedno generacijo, trenutni guess, najslabši guess od stotih in najboljši guess od stotih. Pa število znakov datoteke, pa čas.

Napiši slučajni niz, pa boš videl, koliko slučajen je zares. Naprimer.



Man muss immer generalisieren - Carl Jacobi

jeti51 ::

Odin: pa saj to ni bila kritika, samo testiranje programa. :)

Thomas: Kakšna je razlika med predict.bat in predict.exe?
Pa kaj misliš s tem, da si program "nabira izkušnje"? Da če ga 10x poženem z 10-imi različnimi random-wannabe 0-1 nizi, da bo potem, ko mu dam 11. niz, že takoj na začetku, v 1. generaciji, bolje napovedoval?

Pa še en pomislek... programu je niz dan, potem se pa naddanim nizom razvije v skoraj popolnega prediktorja. Če mu dam en nov niz, bo na začetku spet bolj slab, dokler se ne bo nad tem novim nizom razvil v dobrega prediktorja.
Kako naj sedaj preizkusim svoj random generator v glavi? Da bi jaz igral igro 0-1 in bi program sproti razbiral vzorce ter postopoma napredoval v ugibanjih? Ker v to, da se nad enim določenim nizom program razvije skorajda do popolnosti to, niti ne dvomim. Ampak razvil se je le za dani niz.

Ga bom še malo preizkušal. :)

Thomas ::

jeti51,

> Kakšna je razlika med predict.bat in predict.exe?

Bat prida zadnje izkušnje k prejšnjim. Pa dela potem z vsemi naprej.

> Pa kaj misliš s tem, da si program "nabira izkušnje"?

Algoritme predikcij nabira. Boš videl kako bo narastel tisti LIB, kamor jih zlaga.

> Da če ga 10x poženem z 10-imi različnimi random-wannabe 0-1 nizi, da bo potem, ko mu dam 11. niz, že takoj na začetku, v 1. generaciji, bolje napovedoval?

YES! Pa ni treba, da imaš samo 0 in 1.

> Pa še en pomislek... programu je niz dan, potem se pa naddanim nizom razvije v skoraj popolnega prediktorja. Če mu dam en nov niz, bo na začetku spet bolj slab, dokler se ne bo nad tem novim nizom razvil v dobrega prediktorja.

To je nekako ideja. Tudi.

> Kako naj sedaj preizkusim svoj random generator v glavi?

Napiši v datoteko STRM.DAT (pomeni stream of data) svoj random niz.

> Da bi jaz igral igro 0-1 in bi program sproti razbiral vzorce ter postopoma napredoval v ugibanjih?

Sproti ima svoje pomanjkljivosti. Pa prednosti tudi. Tukaj ni sprotija. Lahko mu pa daš najprej pol datoteke. Boš videl, kako se bo obnesel potem na celi.


> Ker v to, da se nad enim določenim nizom program razvije skorajda do popolnosti to, niti ne dvomim. Ampak razvil se je le za dani niz.


NE. Če je niz random, potem z 32 ukazi ne more nič. Kompleksnost po Kolmogorovu ne dopušča tega. Če pa ni random, so izkušnje od drugje zanj uporabne.

> Ga bom še malo preizkušal.

Hvala.

:)
Man muss immer generalisieren - Carl Jacobi

jeti51 ::

>> Tukaj ni sprotija. Lahko mu pa daš najprej pol datoteke. Boš videl, kako se bo obnesel potem na celi.
Ja, to sem hotel. Čeprav moraš dobro pogledati, da vidiš, kakšna je bila uspešnost v prvi generaciji. Namreč tisti prvi stolpec na desni kaj hitro izgine.:D

>> Če je niz random, potem z 32 ukazi ne more nič. Kompleksnost po Kolmogorovu ne dopušča tega. Če pa ni random, so izkušnje od drugje zanj uporabne.
To mi je jasno. Da pa uporablja izkušnje, ki jih je že prej pridobil, si mi pa tudi že zgoraj potrdil.

LP



smash ::

hud program ...sam k bi človk vedu kva sploh dela ter na kakšn način :\

men se zdi da dela neki hudga :D

pa še to se mi zdi da mam prešvoh računalnik za tole :D

Thomas ::

Kaj dela ta program?

Na levi, z zelenimi črkami, je napisan algoritem Predictorja (uganjevalca) v nekem assemblerju. (Zdej bo (je) to postal C++, samo še ni fertig čist.)

Kdo je napisal tega uganjevalca? Simulirana digitalna evolucija, jasno. Ta digitalna evolucija je v središču tega Predictor.exe programa. To ni Predictor, to je kotišče predictorjev, v katerem veljajo zakoni neusmiljene (digitalne) evolucije.

Desno od zelenih črk so rdeče številke. Te povedo, kolikokrat se kakšen ukaz (trenutnega od top 100 predictorja) izvede.

Se pa piše potem še vsakič najboljši rezultat v .doc fajl.

Pa v .lib pa v .dna.

To vse lahko pobrišete, če hočete replay, ki pa ne bo povsem enak. Psevdorandom - jasno. Tako da vsi ne boste dobili enakega programa in enakega števila uspešno uganjenih in rumeno obarvanih črk.

V STRM.DAT lahko pišete karkoli. Skopirate notri tudi kakšen ZIP ali EXE.

Sej pravim, filozofija je na prvi pogled čudna. Potem kmalu vidite, da edinomogoča.

No, vsaj zelo optimalna.

:)

Potem so pa še finese. Včasih boste videli rdeč stolpec, ponavadi pa rumen.

Rdeči so "od skale", rumeni "od hrasta". Od skale pomeni da so iz nula zmišljeni. Od hrasta, pa da le imajo prednike med trenutnih top 100. Ti so bistveno pogostejši. Rdeči so tudi tisti iz general.liba v začetku.

No, take finese so še. Ni bistveno zelo katere.

:)


Vaja:

Napiši vreme za 2001 not v STRM.DAT! Dnevne temperature. Takole: HTVVV... MMH* ....

Potem pa poženi stvar na datoteki za 2002.


Enjoy! :)


------
* Hladno, Toplo, Vroče, Mraz ....





Man muss immer generalisieren - Carl Jacobi

jeti51 ::

Genetski algoritem, sem prepričan. Osebki populacije so kratki programčki, dolgi 32 assemblerskih ukazov. Modri stolpci predstavljajo trenutno populacijo (množico programčkov), višina stolpca pa pomeni, kako dober je posamezen osebek (program). 4 vodoravne črne črte v grafu predstavljajo mejnike 25,50,75 in 100% (za lažjo orientacijo). Ocena, kako dober je nek osebek (program), je seveda število uganjenih znakov v nizu (obarvani z rumeno). Range pomeni, kako dobri so osebki v trenutni populaciji (najnižja in najvišja vrednost). GS je povprečen fitness osebkov, "pps." pomeni, koliko generacij je že šlo skozi genetski algoritem. Kaj je L, še nisem pogruntal. Rumeni stolpec pa pomeni en naključno izbrani osebek iz populacije. Njegov genom (koda programa) je izpisana na levi v črnem okvirju.

Detajli pri implementaciji so mi pa skrivnost. Genom osebkov je jasen, fitness tudi (čeprav pri ocenjevanju programa...kako vedeti, ali se je morda zaciklal? Če ne konča v dovolj kratkem času?). Selekcija poteka po neki metodi in upošteva fitness osebkov. Mutacija je po moje, da kakšen ukaz naključno spremeniš (kakšen bitov invertiraš, pa dobiš neko drugo številsko kodo ukaza oz. spremenjen parameter ukaza), kako pa je s križanjem osebkov, pa nimam pojma. Morda kakšen dvomestni crossover, kjer si programa izmenjata en izsek kode, en blok, kaj pa vem... nisem preizkušal teh idej.:D

PS: Thomas, a je dolžina stringa, ki ga program pregleduje, omejena? Al ga samo v oknu programa ne prikaže vsega?

Zgodovina sprememb…

  • spremenil: jeti51 ()

jeti51 ::

Eh, pozabi. Butasto vprašanje, sem že zaspan. Vidim, da celega pregleduje.0:)

Maria ::

Thomas, mislim, da bi šlo.

Spraviš se v meditativno stanje - torej odklop zavestnega razmišljanja, kolega pa meri tvojo dolžino vdiha.
Če je vdih daljši od povprečnega vdiha, je 1, če ne je 0.

Maria

Thomas ::

> Genetski algoritem, sem prepričan.

True. Čeprav meni termin "genetski" ni všeč. Imam raje "evolucijski". Kar je pa seveda zelo irelevantno. V obeh primerih se ve, na kaj se misli. Na (digitalno) simulacijo evolucije.

> Osebki populacije so kratki programčki, dolgi 32 assemblerskih ukazov.

True.

> Modri stolpci predstavljajo trenutno populacijo (množico programčkov),

Trenutnih top 100, ja.

> višina stolpca pa pomeni, kako dober je posamezen osebek (program). 4 vodoravne črne črte v grafu predstavljajo mejnike 25,50,75 in 100% (za lažjo orientacijo).

True.


> Ocena, kako dober je nek osebek (program), je seveda število uganjenih znakov v nizu (obarvani z rumeno).


True. Z eno malenkostno izjemico. Rumena preko CHR(0) se ne pozna. Bug, v bistvu.


> Range pomeni, kako dobri so osebki v trenutni populaciji (najnižja in najvišja vrednost).

True.


> GS je povprečen fitness osebkov


Ne. To je fitness tazadnjega, ki se je uvrstil med top 100. Je pa res verjetno blizu povprečja.


> "pps." pomeni, koliko generacij je že šlo skozi genetski algoritem.

Ne. Programs per second je to. Koliko se jih na sekundo zgenerira in izproba.


>Kaj je L, še nisem pogruntal.

L je Listingov (so far probanih).


>Rumeni stolpec pa pomeni en naključno izbrani osebek iz populacije.

To je tazadnji dodani. Včasih je lahko rdeč.

> Njegov genom (koda programa) je izpisana na levi v črnem okvirju.


True.

> kako vedeti, ali se je morda zaciklal? Če ne konča v dovolj kratkem času?).

True.

> Mutacija je po moje, da kakšen ukaz naključno spremeniš

True. Ali pa vzame od drugega en cel kos kode. Ali pa skombinira dva ali tri. Pri tem je levi alfa osebek upravičen do več (neperfektnih) kopiranj/kombiniranj kot desni gama. Ampak tudi slednji ima možnost in njegovi potomci so včasih potem alfa. Za nekaj časa vsaj.

> Morda kakšen dvomestni crossover, kjer si programa izmenjata en izsek kode, en blok, kaj pa vem... nisem preizkušal teh idej.


Ja no, saj te zadeve. Pa rotacija kode, pa insertiranje ene v drugo...

Ja, lahko gleda 1MB ali 100 MB .. samo potem dela precej počasneje. Need more CPU!

:)
Man muss immer generalisieren - Carl Jacobi
1
2
»


Vredno ogleda ...

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

Vprašanje v zvezi z rand() funkcijo

Oddelek: Programiranje
494987 (4177) fireice
»

Determinizem in svobodna volja (strani: 1 2 3 410 11 12 13 )

Oddelek: Znanost in tehnologija
63261724 (55691) Pyr0Beast
»

Površina kroga brez pi (strani: 1 2 )

Oddelek: Znanost in tehnologija
7710591 (8680) CHAOS
»

[C] generator naključnih števil

Oddelek: Programiranje
363333 (2851) Thomas
»

popolno naklucje (strani: 1 2 )

Oddelek: Znanost in tehnologija
696710 (5055) Thomas

Več podobnih tem