» »

Thomasov problem

Thomasov problem

1
2
3

Double_J ::

Aja pa res, tabelce so nakoncu in to precej majhne, najprej sploh registriral nism, ker da se prebijem do njih, morm gledat enormne količine praznega prostora.
Precej neprijetno.

Sm probal programček. 53 najde prej kot v 5tih sekundah, 54 pa nikoli.

A ste zdej ugotovili koliko je resnično največja možna številka?
54-unpossible?


Zgodovina sprememb…

  • spremenil: Double_J ()

eger ::

teoreticna najvecja mozna je 64
prakticna najvecja mozna je neznana
54 mogoce ne najde ker ni vec mozno ?
to se ne bo vedl dokler
a: ksn ne bo postavil tko da bo prislo 54 in s tem dokazal da je mozno
b: postavil vse mozne kombinacije in dokazal da ne mors met :)
mas prevec casa :> ?

Odin ::

Če 64 teoretično mogoče, bi moralo bit tud praktično mogoče.

Double_J ::

To pa ni res.
Ker, ko določene figure postaviš tako, da krijejo maksimalno število okoliških figur, tiste ostale, ki jih še moraš postaviti, ne moreš postaviti tako, da bi z njimi branil maksimalno število figur kot so jih sposobne, saj so tista mesta, ki bi to omogočala, že zasedena.

jeti51 ::

Ja no, potem pa teoretično ni možno doseči 64, ane? :\

Odin ima čisto prav, če je teoretično mogoče, potem obstaja taka postavitev figur. Če pa taka postavitev figur ne obstaja, potem je pa teoretična predpostavka napačna.

Jao...:\

Zgodovina sprememb…

  • spremenil: jeti51 ()

Thomas ::

Zakaj 64 ni možno?

Ker imamo na robu figure, ki tolčejo ven.

16 figur ima minimalno 12 zunanjih figur.

To je že precej "izgubljenih kritij".

Ampak vam povem - 53 najde v parih sekundah - je tako eger? - 54 pa nikoli.

Hm ... mogoče ... hm ... dokaz se da proizvest ...

;)
Man muss immer generalisieren - Carl Jacobi

Double_J ::

Jeti.. jao ja.

Če je nekaj teoretično še ne pomeni, da je v to teorijo vkjučeno vse kar se potem v praksi izkaže, da ima vpliv.

Važno je koliko je teorija konsistentna s prakso, mar ne?

MadMicka ::

Poanta ostaja.

...64 ni možno niti teoretično...razen, če je blazno slaba teorija >:D

Double_J ::

Jah ne vem, če bi rekel, da je slaba.
Takšna je, da ne upošteva vseh dejavnikov.
Zakaj? Zato, ker je točno to njen namen.

Namen je bil teoretično določiti največjo možno cifro, ob predpostavki, da jo nič ne ovira.

Takšna teorija je tako pravzaprav popolnoma pravilna. Če ni ovir je cifra 64.
Ni pa res, kar pravi Odin, da jo je moč izvesti v praksi.
Jetiju pa sploh ni jasno in potem neke zaplete dela, ani menda jasno da mam prav.

Zgodovina sprememb…

  • spremenil: Double_J ()

Odin ::

Ja no. Teoretično je mogoče 64, ampak potem je ta teorija definitivno slaba.

Ob dobri teoriji(dokazani), pri tem primeru, bi bilo teoretično max. število 53 ali 54.

Lahko pa imaš seveda teorijo karšnokoli.
Teorijo, da dedek mraz obstaja:D

Nikol ne veš!!

Thomas ::

Teorija je NEPRAVILNA, kadar se kakšen njen axiom ali izrek ne sklada z empiričnimi podatkimi.

Teorija je NEPOPOLNA, kadar noben njen izrek ali axiom, ne pokriva empiričnega podatka.

Teorija, da je 64 zgornja meja - je nepopolna.

Ker ne pove, koliko pa natančna zgornja meja je.

Epistemologija.

:)
Man muss immer generalisieren - Carl Jacobi

Double_J ::

Dobro, slabo - to je nekaj kar ne pove dosti.

Koristno, nekoristno - to je pa že druga pesm.

Postavili smo torej takšno teorijo, katere posledica je nekaj kar nam koristi.
Zgornja meja ne more presegati 64. To nas je tudi zanimalo. Uredu podatek ne?

Drugo pa niti ni pomembno. Če bi radi še kaj, se postavi nova teorija, ki je nadgradnja prvotne.

Zgodovina sprememb…

  • spremenil: Double_J ()

Double_J ::

Ker ne pove, koliko pa natančna zgornja meja je.


Ampak mi je nismo postavili zaradi tega razloga. Nismo se vprašali koliko je natančna zgornja meja.
Mi smo se vprašali več kot koliko zgornja meja zagotovo ne more biti.
Teorija je popolna-več kot 64 ne more biti.

Thomasova druga lema: 64 je zgornja meja. Ne natančna zgornja meja, vendar več biti ne more.

Zgodovina sprememb…

  • spremenil: Double_J ()

Primoz ::

Jaz sem rabil točno pol dneva za objavo.
There can be no real freedom without the freedom to fail.

Odin ::

V glavnem:

Če je nekaj teoretično mogoče, MORA biti mogoče tudi praktično.

Če ni mogoče praktično, je teorija zanič.
Je tak?

Potem sem mel prav.

Jupi! Končno enkrat:D

Zgodovina sprememb…

  • spremenil: Odin ()

Thomas ::

Hja ... glede tega zagotovo ...

Teorija ni nepravilna, tudi popolna je, če scope nekoliko omejimo.

Če pa se vprašamo - je "rešitev 55" možna? - smo pa na suhem ... NIMAMO teorije.

:)
Man muss immer generalisieren - Carl Jacobi

MadMicka ::

Še nimamo teorije :)

Double_J ::

Je tudi ne bomo imeli...

Zgodovina sprememb…

  • spremenil: Double_J ()

Thomas ::

Semantika boyz, semantika ... mau kasneje bom dal "predloge definicij".

;)
Man muss immer generalisieren - Carl Jacobi

Maria ::

Thomas, ravno sem prisla, lahko za kuharice predstavis algoritem. Da bom lahko sledila;)

Maria

Thomas ::

Maria

Najprej opravičilo, ker sem se včeraj zatipkal in te imenoval "Matija". "R" in "T" sta na tipkovnici blizu.

Kar se algoritma tiče, ga je pa razložil že Darwin. Bolje prilagojeni osebki preživijo in imajo več vnukov, kot tisti manj prilagojeni.

To se dogaja v progiju, ki si ga lahko dol vzamete iz Slotecha, celo šahovskim kombinacijam. Tiste bolj trdne, imajo več vnukov.

Začetna je čisto random ... pol se jim pa začne dogajat ... da bi 100 tisoč generacij in kakšno sekundo kasneje, imel pozni vnuk - 53 "šah povezav".

Če bi šli bruta forca, ne pridemo nikamor. Tako se nam pa zadeva - kot si, priporočam - lahko samo ogledate, naredi kar quickly.

Poženete v komandni liniji:

e_solver 16 4 4 4 2 2

(ali kakšno drugo kombinacijo)

Pa boste pognali simulirano (digitalno) evolucijo v tek.

Samo še nekaj umazanih (=tehničnih) podrobnosti je zadaj - in to je vse.

Evolution is under way!

:)

p.s.

Zna kakšna tipkavnica (OS) povzročatio mal težav. Ne, če mate Winse 2000 ali več.

Man muss immer generalisieren - Carl Jacobi

Thomas ::

Odin in Double_J

Pašnk!

:)
Man muss immer generalisieren - Carl Jacobi

Zheegec ::

Možnih je še več, če bi se šli na pravilo an passante? Samo ne vem, za kaj točno se gre, samo mislim, da bi teoretično to blo uporabno :)
"božja zapoved pravi; <Spoštuj očeta in mater>,
ne govori pa o spoštovanju sodstva."
Janez Janša, 29.04.2014

Thomas ::

> če bi se šli na pravilo an passante?

Če bi streljali sedemetrovke tudi.

En passant, pomeni vzeti (kmeta) v prehodu. Priznati mu eno polje premika, ko je hotel premakniti za dve polji.

Na noben način "an passante" ne ščiti ali napada figure.

Oh ja ....

;)
Man muss immer generalisieren - Carl Jacobi

Zheegec ::

Halo? Saj igram šah, sem mislil, da se greste koliko polj lahko zasedeš, da so potencialno napadena. Sorry, saj sem rekel, da nisem šel brat, samo sprašujem, če je toto!
"božja zapoved pravi; <Spoštuj očeta in mater>,
ne govori pa o spoštovanju sodstva."
Janez Janša, 29.04.2014

Maria ::

Thomas

Zanimajo me prav tiste =tehnicne umazanije tam zadaj. Ce ni kaksnih lastniskih ovir (skrb za zascito kaksne izvirne ideje, ...) bi bila prav vesela, ce bi lahko zadevo videla. Ce pa so se kaksni komentarji, pa se bolje.
Ce pa ne gre, bo pa tudi OK, ker bom kmalu sla horizontalno.

Ze kar nekaj casa je, kar ...

Maria

Thomas ::

Maria ...

Podrobnosti so vorbehalten. To morš razumet.

:)
Man muss immer generalisieren - Carl Jacobi

Maria ::

OK.
Potem pa lahko noc ST|O

Maria

tx-z ::

ok, če prv razumm, ta program poskuša najbolše možnosti, za te nastavitve, in najde 53 različnih, no če je tko, nared da ti za vsak poskus zapiše nov html, npr 1.html, 2.html,... mogoče bom dl nekam da bo delal kakšn tedn :)
tx-z

jeti51 ::

Maria, glede tehničnih podrobnosti:
Najprej moraš razumeti, kako deluje genetski algoritem. Potem pa poskusiš kaj takega tudi implementirati, kar je sicer nekoliko težja naloga. >:D

Uglavnem, na kratko: Osebki populacije so pozicije figur na šahovnici. Funkcija vrednotenja tudi ni noben problem, za vsako figuro pač pogledaš, koliko figur podpira, in vse to sešteješ. Več dobiš, boljši je osebek (pozicija). Selekcija je pač selekcija, na osnovi fitnessa osebkov, mutacija pa tudi ni problem, vsako figuro z neko majhno verjetnostjo naključno premakneš na drugo polje (če pa je polje že zasedeno z neko drugo figuro, pa le-to premakneš na polje prve figure, skratka zamenjaš ju).

Tako da je po moje pri tehničnih podrobnostih zanimivo kvečjemu križanje osebkov, crossover, ki ni tako trivialno kot recimo križanje dveh bitnih stringov. Če še to učinkovito in dobro narediš, potem Thomas (verjetno?) nima več kaj skrivat. ;)
Prva misel za crossover bi bila pač ta, da vzameš nekaj figur od starša (pozicije) 1, jih postaviš na novo šahovnico (potomec), pozicije preostalih figur pa vzameš od starša (šahovnice) 2. Če je slučajno kakšna pozicija figure od starša 2 že zasedena, potem pa pač vzameš pozicijo te figure od starša 1. Samo hiter razmislek tole...

Je pa treba imet nekaj izkušenj s tem, da določiš vse potrebne parametre tako, da bo čim bolje delovalo (verjetnost za mutacijo, crossover, način selekcije...). Jaz jih (opa, še) nimam.:D

Mislim, da bi v glavnem to moralo biti to.:) Komentarji zaželjeni. Radi se učimo.:D

Zgodovina sprememb…

  • spremenil: jeti51 ()

Thomas ::

Seveda. Tako to gre, kot je rekel jeti51. V načelu. :)

Kdo je kaj poganjal programček?

:\

Man muss immer generalisieren - Carl Jacobi

||_^_|| ::

jst sm ga poganju. ne gre čez 53:)

Yohan del Sud ::

Hej Thomas, si to objavil tudi na kakem tujem (strokovnem) forumu? Bi rad videl odzive...

Thomas ::

Razen tega, da si mi smeje cela SL4, zaradi mojega zatrjevanja, da je evolucijski algoritem dovolj za vse praktične namene - nisem.

Morda bom postal to na mathworld.wolfram.com, morda pa tudi ne.

Sem bolj zainteresiran za vse praktično uporabe zadeve in implementacijo tam. Recimo šolski urniki, pravično grupiranje v skupine, izboljševanje programskih sourceov ...

Je pa nekaj zanimivo, zaradi česar smo takorekoč naokoli.

Naokoli z enim mojih prvih postov na Slotech. Ko sem trdil, da Vesolje je razen nas praktično prazno.

Od milijonov različic evolucijskega algoritma, jih večina ne dela. Ali bolje rečeno - algoritem+okolje ponavadi ne dela.

Od tu naprej bodo moje ustnice beton, še vsaj 5 let.

8-)





Man muss immer generalisieren - Carl Jacobi

MadMicka ::

Glede teh programov je tako:

npr. pri šahu, ki je relativno preprosta zadeva, zato, ker je omejen z jasnimi pravili, je možno s takšnimi programi marsikaj doseči...

pri npr. družbenih odnosih, kjer pa je pravil veliko več in ta pogosto niso jasna ter se celo spreminjajo, pa takšni programi prav nič ne koristijo...

Drži? :\

Thomas ::

No seveda. Jest se omejujem na tehnične probleme. Pa kakorkoli je že ta definicija kaj je tehnično - "čudna".

Tehničnih problemov je pa na kupe. Družboslovni problem pri tem je le, da se jih sploh začne reševati. Da se jih ne prikriva ali kaj podobnega.

:)
Man muss immer generalisieren - Carl Jacobi

Alec999 ::

Jst sm pognou program .. sam za opozorilo uporabnikom
ce kliknete v okno programa z levo tipko od miske ustavite program .. zazenete ga s klikom na desno tipko miske (Windows 2000)

najde mi pa vedno --> 8_2_2_2_1_1

lp,
Alec999

Thomas ::

> najde mi pa vedno --> 8_2_2_2_1_1

Progi je konzolni.

Poženi zadevo iz komandne linije in to recimo s parametrom 6 6 6 6 6 6!

Pa ti bo sestavil po 6 vsake od figur.

Pa HTML output bo nosil ime kot je parameter.

:)
Man muss immer generalisieren - Carl Jacobi

CHAOS ::

Zadevo sem pognal in dela presneto hitro. Zanima pa me, če je kdo napisal brute force, da poženem ter primerjam.

PS. Čakam dan, ko bom san pisal evolucijske programe. :))
'They have computers, and they may have other weapons of mass destruction.'

Double_J ::

6 6 6 6 6 6. Pride 186.

In nekaj se mi zdi. Da sta 53 in 186 res zgorni meji za te dve konfiguraciji. Zakaj, zato ker oboje zelo hitro najde, potem pa nikoli ne izboljša niti za eno piko. Če bi vedno počasneje stvar naraščala bi bilo še upanje, da cifra ni maksimalna-namreč, da ma kr probleme in počasi išče bolje postavitve. Ampak očitno nima problemov, kmalu najde kar je sploh možno najdet.

Thomas ::

V sourceu sem premaknil en bit. Tako da favorizira less connected.

Klasični problem osmih dam - parameter 0_0_0_0_8_0 - seveda reši takoj.

Potem sem poskusil razmakniti vse bele figure, tako da se ne napadata niti dve. Gre.

Kaj pa če dodamo še eno kraljico? Gre.

Pa še enega kralja?






























































































p B p . . . . K
. . . . Q . . .
p . p . . . . p
B N . . . . . N
. . . . . . R .
. . . R . . . .
. . . . . Q . .
p p p . . . . K

Result = 0

:)
Man muss immer generalisieren - Carl Jacobi

Yohan del Sud ::

Dobro. Še dva neformalna predloga...

Algoritem favoritiziraj za posamezno figuro (npr, prvi brani lovec, nato trdnjava, nato kraljica, etc...)

Kaj se zgodi, če posamezne figure postavljaš (postopoma) iz kota, večina išče rešitev iz sredine (sicer logično, ampak morda pade kaka ideja)...

jeti51 ::

Nič, posebnega se ne zgodi. Skozi evolucijo figure vse bolj rinejo ven iz kota in se razporejajo vedno bolj optimalno in prej ali slej pristanejo v takem "diamantu" in dajo rešitev 53. Zelo verjetno, da je to natančna zgornja meja, ni pa 100% nujno. Pri evolucijskih algoritmih je tako, da se zadeva ustavi na enem zelo dobrem lokalnem maksimumu, recimo drugem najboljšem in tam vztraja generacije in generacije. Veliko je mutacij, a le-te proizvajajo samo pohabljence, ki hitro odmrejo. Potem se pa nekega dne na enem izmed potomcev pojavi mutacija, ki mu omogoča, da postane blazno hiter plavalec, preplava morje in odkrije Ameriko. Ker je tako zelo zelo dober, mu sčasoma tja sledi vsa raja in se tako premaknejo na nek drug, še boljši lokalni maksimum (morda že kar globalni maksimum), pa čeprav so prej celo večnost vztrajali drugje, kjer je bilo morda le za malenkost slabše kot v Ameriki in se zato nikomur ni ljubilo raziskovati, vsi so ostajali v okolici.
Pač, mutiranec je imel srečo, hehe. Naredil je revolucijo in v nekaj korakih so mu vsi sledili. Ne zvezen, enakomeren razvoj, ampak velik skok, veliko odkritje.

Je pa res, da če je toliko ljudi dobilo max=53, potem je verjetnost za kakšen tak revolucionaren skok zelo zelo majhna. :)

Thomas ::

Ha jeti51 - ko se bom inkorporiral (Inc.), te poiščem. :)

Yohan hja ... premišljujem kateri fitnes kriteriji bi bili najbolj zanimivi.

Iz tegale tvojga sem izpeljal nekaj ... ampak je precej dela, da bi implementiral.

Zdej če lahko pokrajšam iz enačbe tale precej dela - bom probal.

:)
Man muss immer generalisieren - Carl Jacobi

Phil ::

Zelo zanimiv problem.
Sem tudi sam naredil program za iskanje kombinacij pa mi ne pride cez 51 :| .
Do 51 pa pride v nekaj sekundah. Bom pustil kake par ur pa bom potem videl. Naj se kdo tole presteje ce se mu da prosim.
Dva primera.

















________
________
____p___
___p_l__
__phq_p_
___khl__
__ptp_t_
___p_p__




















____p___
___ptk__
____phl_
___thq_p
__p_l_p_
___p_p__
________
________


k-kralj, q-kraljica, t-top, h-konj,l-lovec,p-kmet.
LP

Phil ::

Evo sem se malo spremenil program in prilezel na 52 tock.

















________
________
________
___t_l__
__p_p_l_
___phq_p
__ptkhp_
___p_p__

Malo za hec 0 tock z osmimi kraljicami.

















_____q__
__q_____
q_______
_______q
___q____
_q______
______q_
____q___
tock: 0
Uporablja pa tale moj programcek brute force+kancek evolucijskega alogaritma+napredne metode :)
Bom danes zvecer poskusil se izboljsati rezultat 0:)
LP

Thomas ::

Spremljam z zanimanjem, cman.

:)
Man muss immer generalisieren - Carl Jacobi

Phil ::

Spet popravil/izboljsal program in sedaj doseze 53 tock 8-) . Hitrost se precej spreminja in vcasih 53 isce cez 10 min, vcasih pa ga najde prej kot v eni minuti. Bo treba se malo optimizirati. Edini problem je, da se program vcasih zacikla in je konec z "razvojem".
Bom pustil program teci do jutra. Upam na 54 :8)
Dva primera:

















tock: 53

_____l__
____ptp_
___lhktp
__p_qhp_
___p_p__
____p___
________
________

















___p____
__l_l___
_phq_p__
ptkhp___
_ptp____
__p_____
________
________
tock: 53

Ce koga zanima mu lahko posljem programcek da preizkusi.
LP

Alec999 ::

cman >> men ga lohka posles .. ga bom sprobu email: alec_bravo@hotmail.com

Thomas ::

54 boš težko (ne boš) dobil cman ...

Probi rajši 6 6 6 6 6 6.

(186)


Ampak čestitam za tole.


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


Vredno ogleda ...

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

Šahovski problem - mat v dveh potezah (strani: 1 2 3 4 )

Oddelek: Znanost in tehnologija
19120230 (8673) msjr
»

Igra šah

Oddelek: Programiranje
283761 (2932) mallard
»

Go: človek proti računalniku 2-0 (strani: 1 2 3 )

Oddelek: Novice / Znanost in tehnologija
12529135 (24511) Thomas
»

Kasparov vs Junior (strani: 1 2 3 4 )

Oddelek: Znanost in tehnologija
18315037 (11898) Thomas
»

vaša sintaksa pri programiranju (strani: 1 2 )

Oddelek: Programiranje
986933 (4736) Thomas

Več podobnih tem