code:
1
2
3
4
5
| Move : 100000 Score : 51016050 Score/m: 510.16 Time : 884.77 Moves/s: 113.02 |
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Wat voor systeem test je op?
Reg. datum: 17 september 2005
Er schijnt wel een mannier te zijn om OpenMP in de gratis versie van Visual Studio te krijgen: OpenMP and Visual C++ the free way (sorta)quote:Soultaker schreef op vrijdag 19 december 2008 @ 16:56:
[...]
Dat is wel jammer aangezien de performance van GCC met OpenMP en pthreads onder Windows toch signficant lager is dan onder Linux, en er voor zover ik weet geen andere gratis compilers voor Windows zijn die OpenMP ondersteunen. (Microsoft's compiler ondersteunt het wel op zich wel, maar de gratis editie juist weer niet.)
Of je kunt GCC voor windows gebruiken via Cygwin. Dat dit niet altijd langzamer hoeft te zijn dan GCC onder linux zie je hier.
Core 2 Duo E6750 @ 3 GHz, Win XP x64 (solver is 32 bits trouwens, in m'n eerdere tests was een 64 bits implementatie zowaar langzamer),quote:
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Reg. datum: 28 mei 2000


Onvoorstelbaar!
Read the code, write the code, be the code!
Hoe zit het eigenlijk juridisch, als je een kloon van Bejeweled zou maken ( Natuurlijk zonder de icon's e.d. en een andere naam ). Mag dat gewoon, of zit daar ook nog iets van rechten op?
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
.oisyn wijzigde dit bericht 23-12-2008 12:15 (3%)
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
http://www.nl.zylom.com/game/300/jewel-quest.html
http://www.nl.zylom.com/game/335/bejeweled-2.html
Ieder geval beide bij Zylom te krijgen. Ik kan me namenlijk herinneren dat er omtrent Tetris destijds wel wat rechten kwesties speelden, maar ik weet er het fijne niet van.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Reg. datum: 11 maart 2008
Net even getest en .oisyn's validator (build 6) kan hier nog niet mee omgaan.quote:NMe schreef op vrijdag 07 november 2008 @ 16:15:
[...]
^^ wat hij zegt.
[...]
Nee hoor.We zouden best zo sneaky kunnen zijn om het veld in tweeën te splitsen zonder een muur te gebruiken door gewoon een kolom géén invulling te geven.
Ik zeg niet dát het gebeurt, maar het zou zomaar kunnen. Neem dus niet zomaar wat aan.
Reg. datum: 11 maart 2008
| . | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 0 | 5 | 5 | 3 | 3 | 1 | 4 | 6 | 2 | 6 | 5 | 3 | 1 | 5 | 3 | 4 | 4 | 3 | 1 | 4 | 5 | 4 | 2 | 6 | 5 | 2 |
| 1 | 3 | 6 | 1 | 4 | 2 | 4 | 5 | 1 | 5 | 6 | 3 | 5 | 4 | 4 | 3 | 5 | 5 | 4 | 5 | 2 | 4 | 5 | 2 | 6 | 1 |
| 2 | x | 1 | 5 | 2 | 4 | 2 | 3 | 4 | 6 | 3 | 4 | 1 | 4 | 5 | 4 | 5 | 3 | 2 | 4 | 6 | 2 | 6 | 1 | 4 | x |
| 3 | x | 4 | 4 | 5 | 6 | 3 | 1 | 5 | 1 | 2 | 4 | 3 | 3 | 5 | 3 | 6 | 4 | 1 | 5 | 6 | 1 | 4 | x | x | x |
| 4 | x | 5 | 1 | 5 | 4 | 1 | 2 | 1 | 4 | 1 | 3 | 5 | 3 | 1 | 5 | 1 | 2 | 4 | 2 | 5 | 4 | 1 | x | x | x |
| 5 | x | x | 6 | 4 | 3 | 1 | 3 | 5 | 3 | 6 | 6 | 3 | 2 | 5 | 3 | 5 | 2 | 6 | 4 | 6 | 2 | 6 | x | x | x |
| 6 | x | x | 4 | 1 | 2 | 3 | 6 | 4 | 3 | 4 | 2 | 3 | 1 | 3 | 2 | 6 | 5 | x | 1 | 4 | 4 | x | x | x | x |
| 7 | x | x | 3 | 2 | 4 | 4 | 5 | 1 | 6 | 3 | 4 | 6 | 5 | 1 | 4 | 4 | x | x | x | x | x | x | x | x | x |
| 8 | x | x | 1 | 3 | 5 | 4 | 2 | 2 | 1 | 5 | 6 | 2 | 5 | 5 | 2 | x | x | x | x | x | x | x | x | x | x |
| 9 | x | x | 6 | 1 | 5 | 2 | 5 | 3 | 4 | 1 | 1 | x | x | 2 | x | x | x | x | x | x | x | x | x | x | x |
| 10 | x | x | x | 2 | 4 | 4 | 2 | 6 | 2 | 4 | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| 11 | x | x | x | x | x | x | x | 4 | 1 | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| 12 | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
| 13 | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
Dit is de hoogste score die ik binnen 15 min kan halen op de orginele testset @ 63k effectieve moves/sec.
Of het kan gewoon niet snel met c# of ik doe iets helemaal verkeerd
Mijn Tweakblog en zoeken in Tweakblogs
Underclocken is cool - Phenom II X4 955 (3.2GHz) @ 800MHz!
Reg. datum: 11 maart 2008
| . | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 0 | 8 | 7 | 6 | 5 | 8 | 5 | 8 | 3 | 6 | 2 |
| 1 | 1 | 8 | 2 | 3 | 1 | 7 | 6 | 4 | 2 | 1 |
| 2 | 7 | 4 | 5 | 8 | 8 | 5 | 5 | 1 | 3 | 2 |
| 3 | 4 | 5 | 2 | 6 | 5 | 6 | 4 | 7 | 5 | 4 |
| 4 | 2 | 8 | 6 | 8 | 1 | 1 | 8 | 3 | 2 | 6 |
| 5 | 5 | 8 | 6 | 3 | 6 | 3 | 6 | 5 | 6 | 7 |
| 6 | 5 | 7 | 2 | 3 | 6 | 2 | 8 | 2 | 1 | 4 |
| 7 | 6 | 7 | 6 | 8 | 1 | 1 | 7 | 6 | 4 | 4 |
| 8 | 6 | 3 | 8 | 2 | 5 | 8 | 1 | 8 | 7 | 6 |
| 9 | 4 | 5 | 6 | 6 | 4 | 2 | 5 | 5 | 6 | 4 |
| 10 | 2 | 8 | 3 | 3 | 8 | 6 | 1 | 2 | 2 | 5 |
| 11 | 5 | 4 | 5 | 4 | 5 | 7 | 8 | 7 | 3 | 6 |
| 12 | x | 1 | 6 | 6 | 7 | 1 | 5 | 6 | 8 | 4 |
| 13 | x | 6 | 8 | 7 | x | x | 4 | 3 | x | 1 |
| 14 | x | 7 | 1 | x | x | x | 7 | 3 | x | 2 |
| 15 | x | 8 | x | x | x | x | 5 | x | x | x |
| 16 | x | x | x | x | x | x | x | x | x | x |
Bij deze run blijkt maar weer dat mijn autotuning nog wat werk nodig heeft -> 15:00.95
edit: bij deze set is mijn algoritme weer wat sneller zo'n 100k effectieve moves/s, blijkbaar scheelt veldgrootte nog erg veel.
Famous last wordsquote:king_charles schreef op dinsdag 23 december 2008 @ 23:57:
Er is nog tijd genoeg voor autotuning...
My other computer is a Cray Y/MP-4!
Trotse papa van Luca en Danu! | Pick My Icon!
10 januari valt in mijn kalender op een zaterdag, niet op een maandagquote:De sluitingsdatum van de contest is maandag 10 januari 2009.
SC2: Dricus#488
Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. — Jamie Zawinski
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Geen idee hoe het met gameplay rechten zit, maar Zoo Keeper was volgens mij de eerste met dit conceptquote:rwb schreef op dinsdag 23 december 2008 @ 12:43:
Ik kan me namenlijk herinneren dat er omtrent Tetris destijds wel wat rechten kwesties speelden, maar ik weet er het fijne niet van.
> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing
Wat ik me kan herinneren is dat ze alleen de naam niet mochten gebruiken, of namen die er op lijken (eindigend op tris).quote:glashio schreef op woensdag 24 december 2008 @ 12:13:
[...]
Geen idee hoe het met gameplay rechten zit, maar Zoo Keeper was volgens mij de eerste met dit concept
als ik wiki moet geloven was bejeweled toch echt eerder Bejeweledquote:glashio schreef op woensdag 24 december 2008 @ 12:13:
[...]
Geen idee hoe het met gameplay rechten zit, maar Zoo Keeper was volgens mij de eerste met dit concept
Maar het zal inderdaad wel alleen de naam zijn waar rechten op zitten, anders hadden al die andere clonen ook wel problemen gekregen lijkt me.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Hij klinkt wel leuk, maar het is nu wel erg kort dag.
Eens kijken of ik nog ergens wat tijd kan vrij maken.
Een contest meedoen is zowieso al leuk
Actieve ! makelaar gezocht.
Carpe diem
Die van mij ookquote:BalusC schreef op donderdag 25 december 2008 @ 20:55:
Hm, ik moet mijn code nog steeds opschonen sinds de 'grote' aanpassing van het initiele opzetMaar eens tijd en zin voor vrijmaken
Al motiveert het niet veel meer nu ik scores van ~50M op de testset voorbij zie komen.. Mijn domme AI doet nog steeds de eerste de beste move met de beste score.
Gewoon doen. Meedoen is belangrijker dan winnenquote:Megamind schreef op donderdag 25 december 2008 @ 20:58:
[...]
Die van mij ookEn met 100 moves/s zal ik hem waarschijnlijk uit schaamte maar niet inzenden
Knight who says 你
Ik weet niet wie jou dat verteld heeft, maar dat is een leugenquote:compufreak88 schreef op donderdag 25 december 2008 @ 22:14:
[...]
Gewoon doen. Meedoen is belangrijker dan winnen.
.oisyn wijzigde dit bericht 26-12-2008 16:31 (4%)
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Al zou ik toch ook wel wat beters neer willen zetten dan ik nu heb, maar dat moet mogelijk zijn, ik heb er al een paar weken niets meer aan gedaan...
Without order nothing can exist - without chaos nothing can evolve
Never forget that only dead fish swim with the stream
Wie trösten wir uns, die Mörder aller Mörder?
Ik had het juist andersom, ik had eerst een nette implementatie geschreven, en daarna had ik een paar optimalistatie ideen, en nu is het een grote bende ( en de performance niet echt beterquote:Confusion schreef op zondag 28 december 2008 @ 13:40:
Mijn Python implementatie (ontworpen volgens het antipattern 'Rush to code', a.k.a. 'Code first, think later') is zo'n grote puinhoop geworden dat ik maar opnieuw begonnen ben. Aangezien Scala op mijn verlanglijstje van te leren talen stond, ben ik daar in begonnen, maar ik wil natuurlijk wel alles uitproberen en er is nog niet zo gek veel documentatie beschikbaar, dus ik denk dat ik niet meer aan een inzending toe ga komen.
Heb helaas nog niet echt tijd gehad om een goede implementatie voor mijn AI te schrijven, maar ben alleen nog maar met het framework bezig geweest.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Reg. datum: 11 maart 2008
Het lijkt erop dat ik het over een andere boeg moet gooien wat betreft het afhandelen van dode paden.
Reg. datum: 11 maart 2008
Het is mij (eindelijkquote:DaCoTa schreef op zaterdag 29 november 2008 @ 23:56:
Dit is mijn score van de 3e testset (de grote 50x50), nadat ik met een geweldig simpele ingeving eindelijk binnen de tijd kon blijven:
code:
1 2 Score: 10302450 Time: 14:59.094
Heeft iemand anders van dit veld al een score?
code:
1
2
3
4
5
| Total moves: 100000 Moves/sec: 093,30 Total score: 7792300 Highest Scoring move: #84 (750) Execution time: 00:17:51.8500000 |
Bleek veel dingen dubbel te doen, waarvan ik nu een deel gefixt heb. Zal er de komende tijd nog wat meer aan verbeteren en dan kan ik waarschijnlijk ook een betere tijd/score neerzetten.
Edit: Na nog eens 2 uur werk -> Iets lagere score, maar wel binnen de tijd:
code:
1
2
3
4
5
| Total moves: 100000 Moves/sec: 111,17 Total score: 7646250 Highest Scoring move: #28360 (800) Execution time: 00:14:59.4940000 |
king_charles wijzigde dit bericht 30-12-2008 16:42 (13%)
Intussen ben ik ook begonnen met een eerst opzetje. Alleen ben ik bang dat de deadline wel erg kort dag wordt.
Er staat al een opzetje voor een algoritme op papier en voor de verandering ben ik met coden eens begonnen met het inlezen van de data. Dat lijkt redelijk te gaan, maar het gaat natuurlijk om het algoritme
Iedereen iig veel succes gewenst.
Actieve ! makelaar gezocht.
Ik krijg overigens een error mail terug:
The following recipient(s) cannot be reached:
'prgmods@tweakers.net' on 3-1-2009 14:27
552 5.7.0 to review our attachment guidelines. y37sm41822204iky.16
Eskimootje wijzigde dit bericht 03-01-2009 14:28 (40%)
Reden: errormessage
It is you! Let's go!
Zelf microkredieten verstrekken als echte hulp aan de 2e en 3e wereld
Ik ga nog steeds wel iets inleveren, maar ik heb het donkerbruine vermoeden dat ik niet veel verder dan een naďeve brute force implementatie ga komen. (Ik heb nu al wel een TotallyRandomStrategy, misschien dat ik die erin houd op lage prioriteit zodat ik iets heb om op terug te vallen als mijn brute force vastloopt).
Gerco wijzigde dit bericht 03-01-2009 15:26 (20%)
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10! | Huis te koop in Barendrecht!
Een zipfile of ander archief is sowieso de bedoeling. Alleen een executable gaan we niet in beoordeling nemen, we willen sourcecode zien.quote:frickY schreef op zaterdag 03 januari 2009 @ 15:07:
Waarschijnlijk probleem je een exe los mee te mailen? Gooi hem even in een zip-file, dat komt meestal wel door virusscanners heen
Omines - Snel en gratis juridisch advies
Standeman: Ik wil mijn ballen ook wel doneren hoor, ik doe er toch ook niets meer mee.
De mail word ook geforward naar een gmail adres. Daar kreeg ik nog een error op terug.
Eskimootje wijzigde dit bericht 03-01-2009 15:49 (27%)
It is you! Let's go!
Zelf microkredieten verstrekken als echte hulp aan de 2e en 3e wereld
De huidige versie is nog veels te traag en neemt gigantisch veel geheugen/HD ruimte in beslag.
Voorlopig is het voornamelijk brute-forcen.
Is het mogelijk de inlevertermijn met 2 weekenden te verlengen?
Helaas zag ik de contest pas met de feestdagen...
Nog een vraagje,
Een lege kolom in kolommen.txt is mogelijk.
Is het echter wel toegestaan om een jewel te wisselen met een positie in de lege kolom zoals b.v.
code:
1
2
3
4
5
| 1 889 2 227 3 567 XXXXX XXXXX |
In dit voorbeeld zou de 2 op positie (0,1) verplaatst kunnen worden naar Oost.
Mag dat?
Of moet je een lege kolom zien als een echte muur?
KoW wijzigde dit bericht 03-01-2009 22:48 (36%)
Actieve ! makelaar gezocht.
quote:KoW schreef op zaterdag 03 januari 2009 @ 20:35:
Nog een vraagje,
Een lege kolom in kolommen.txt is mogelijk.
Een spatie hoort niet thuis in een opeenvolging van cijfersquote:NMe in "Programming Contest Nieuwe Stijl: Contest 4"
In dit bestand staat per regel een opeenvolging van cijfers die
Creepy wijzigde dit bericht 04-01-2009 10:17 (80%)
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. — Jamie Zawinski
NMe in "Programming Contest Nieuwe Stijl: Contest 4"
Zie ook:
NMe in "Programming Contest Nieuwe Stijl: Contest 4"
Er staat nergens een hoeveelheid voor die "opeenvolging" gedefinieerd (en ik heb het ook nooit over een spatie gehad
November en december zat ik in Czech, maar dat is verder geen excuus. Ik zal mijn best doen.
Actieve ! makelaar gezocht.
Hm... Jij gebruikte toch Delphi dacht ik? Interessant in dat geval dan, want de mijn oude oplossing is ook niet bijster snel vergeleken met de rest. Wat mn nieuwe oplossing gaat doen is alleen nog even afwachten, die is nog heel ergs zwaar onder constructie. Ik ben er nu maar vanuit gegaan dat ik iets te zwaar objectgeorienteerd aan de slag was gegaan, dus eens zien wat er uit komt. Wat ik er nog meer aan veranders is het geheugengebruik, ik vond het namelijk nogal jammer om slechts 3MB te gebruiken. Als ik nu zonder zetten te doen bij het geheugengebruik kijk zit ik zo tussen de 17MB en de 380MB.quote:Megamind schreef op donderdag 25 december 2008 @ 20:58:
[...]
Die van mij ookEn met 100 moves/s zal ik hem waarschijnlijk uit schaamte maar niet inzenden
dcm360 wijzigde dit bericht 04-01-2009 20:18 (15%)
Mijn Tweakblog en zoeken in Tweakblogs
Underclocken is cool - Phenom II X4 955 (3.2GHz) @ 800MHz!
De eerste posts van NMe gaat over het aantal gems per kolom. Dat mogen er inderdaad minder zijn dan dat de kolom lang is. Je begint na het einde bereikt te hebben van de beschikbare gems per kolom in kolommen.txt weer aan het begin van de regel. Indien er een lege regel staat dan valt het spel niet te spelen.quote:KoW schreef op zondag 04 januari 2009 @ 20:06:
Volgens NMe is het mogelijk:
NMe in "Programming Contest Nieuwe Stijl: Contest 4"
Zie ook:
NMe in "Programming Contest Nieuwe Stijl: Contest 4"
Er staat nergens een hoeveelheid voor die "opeenvolging" gedefinieerd (en ik heb het ook nooit over een spatie gehad)
offtopic:
November en december zat ik in Czech, maar dat is verder geen excuus. Ik zal mijn best doen.
Als het veld in tweeen wordt gesplitst dan gebeurd dat met speelveld.txt.
Creepy wijzigde dit bericht 04-01-2009 21:20 (3%)
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. — Jamie Zawinski
Omines - Snel en gratis juridisch advies
Standeman: Ik wil mijn ballen ook wel doneren hoor, ik doe er toch ook niets meer mee.
Ik had het opgevat als een legitieme mogelijkheid die ongeveer hetzelfde effect heeft als een muur.
Kortom, kolommen.txt bevat minimaal 1 gem per kolom, maximum is undefined
Actieve ! makelaar gezocht.
Reg. datum: 11 maart 2008
Dus kolommen.txt is valide wanneer een kolom geen gems bevatquote:NMe schreef op vrijdag 07 november 2008 @ 16:15:
[...]
Nee hoor.We zouden best zo sneaky kunnen zijn om het veld in tweeën te splitsen zonder een muur te gebruiken door gewoon een kolom géén invulling te geven.
Ik zeg niet dát het gebeurt, maar het zou zomaar kunnen. Neem dus niet zomaar wat aan.
Omines - Snel en gratis juridisch advies
Standeman: Ik wil mijn ballen ook wel doneren hoor, ik doe er toch ook niets meer mee.
Bij deze wil ik vragen om op een e-mail lijst gezet te worden waarover een melding gestuurd wordt wanneer er een nieuwe contest gestart wordt
Omines - Snel en gratis juridisch advies
Standeman: Ik wil mijn ballen ook wel doneren hoor, ik doe er toch ook niets meer mee.
Ok, dan blijft dus de vraag openstaan:quote:NMe schreef op dinsdag 06 januari 2009 @ 02:09:
Valide: ja. Zal het voorkomen in de set waarin jullie scores tegen elkaar opgemeten worden? Nee.
Verder is mijn programma nog steeds een factor 20 te traag...quote:KoW schreef op zaterdag 03 januari 2009 @ 20:35:
Is het echter wel toegestaan om een jewel te wisselen met een positie in de lege kolom zoals b.v.
code:
1 2 3 4 5 1 889 2 227 3 567 XXXXX XXXXX
In dit voorbeeld zou de 2 op positie (0,1) verplaatst kunnen worden naar Oost.
Mag dat?
Of moet je een lege kolom zien als een echte muur?
Actieve ! makelaar gezocht.
Reg. datum: 11 maart 2008
In tweeën splitsen -> geldt dus als een muur.quote:NMe schreef op vrijdag 07 november 2008 @ 16:15:
We zouden best zo sneaky kunnen zijn om het veld in tweeën te splitsen zonder een muur te gebruiken door gewoon een kolom géén invulling te geven.
Reg. datum: 29 november 2000
Reg. datum: 14 april 2003
Better to remain silent and be thought a fool then to speak out and remove all doubt.
Wel moet ik m'n zondag vrijhouden, want ik heb er zeker al een maand niks meer aangedaan...
Ik zou ook aan alle afhaekers willen adviseren om toch iets in te leveren, het is altijd leuk om te zien wat anderen bedacht hebben, eventueel geef je aan de organisatoren door dat je programma niet gerund hoeft te worden om hen tijd te besparen
oprecht vertrouwen wordt nooit geschaad. - arjan
Heeft iemand nog een klein tipje van de sluier?
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Actieve ! makelaar gezocht.
Bijvoorbeeld, als er blokjes met relatieve coordinaten (-1, -1) en (-2, -1) dezelfde kleur hebben als het blokje op (0, 0), dan kun je dat blokje omhoog bewegen (met omhoog bedoel ik dan de richting (0, -1)). En natuurlijk zijn er meer van dit soort dingen die je moet gaan testen, maar meer hoef je feitelijk niet te doen.
Om erachter te komen wat voor score de move op gaat leveren dan kun je wel net zo goed de move uitvoeren, er is niet echt een andere manier om erachter te komen.
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Nee, het heeft bij mij volledig stilgelegen door vakantie en feestdagen. Ook heb ik vrijwel geen tijd meer, alleen vanavond nog, dus ik ga kijken wat ik nog kan doen en het daarna ook maar submitbaar maken.quote:.oisyn schreef op woensdag 07 januari 2009 @ 13:51:
Ik denk dat ik me ook maar moet gaan concentreren op het submitbaar maken van m'n code. Ik denk niet dat ik nog veel tijd heb om algoritmische verbeteringen te maken... En dacota heeft ondertussen vast stiekem nog een betere score behaald die hij achter de hand houdt, maar dat is dan jammer
You can't always get what you want. I can, but you can't.
Mij kost het enorm veel tijd om gewoon een paar zetten vooruit te rekenen en probeer ik te optimaliseren dan loopt de code al snel een dood spoor in.
Voorlopig is de code iig nog een factor 5 a 10 te traag voor het kleine testgridje. Een groter grid heb ik nog niet durven proberen.
Actieve ! makelaar gezocht.
Reg. datum: 11 maart 2008
Reg. datum: 11 maart 2008
king_charles wijzigde dit bericht 07-01-2009 20:19 (75%)
Okiquote:
Carpe diem
Reg. datum: 11 maart 2008
Ik ben ook nog wat aan het optimaliseren, aanpassen van de algoritmes doe ik niet meer. Dat vind ik te risicovol met nog zo weinig tijd over. Ik heb vandaag alweer 25% aan snelheid gewonnen, wat vrijwel automatisch een paar procent hogere score oplevert
king_charles wijzigde dit bericht 07-01-2009 20:31 (43%)
Reg. datum: 14 april 2003
Helaas zitten alle goede ideeën alleen nog maar in m'n hoofd. De code die ik tot nu toe geschreven heb lijkt waarschijnlijk erg veel op de code waarmee bijna iedereen hier begonnen is: figuren ontdekken, blokjes laten vallen en punten tellen. En daarnaast nog de nodige fouten en ontbrekende stukken...quote:Arjan schreef op woensdag 07 januari 2009 @ 10:21:
Ik zou ook aan alle afhaekers willen adviseren om toch iets in te leveren, het is altijd leuk om te zien wat anderen bedacht hebben, eventueel geef je aan de organisatoren door dat je programma niet gerund hoeft te worden om hen tijd te besparen
Ik kan het programma hier (na de sluitingsdatum) wel posten, maar dan zal ik de opmerking toevoegen dat de code niet bekeken hoeft te worden om jullie tijd te besparen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Step: 10000 CPU: 2.6 Ghz Score: 5220100 Moves/sec: 329326 CPU: 2.0 Ghz Score: 5108250 Moves/sec: 241641 CPU: 1.6 Ghz Score: 4950350 Moves/sec: 188206 CPU: 1.2 Ghz Score: 4775450 Moves/sec: 132626 CPU: 0.8 Ghz Score: 4378900 Moves/sec: 80850 |
Oftewel, met mijn algoritme zijn de aantal moves/sec vrijwel lineair afhankelijk van de CPU snelheid, maar de scores absoluut niet. Conclusie: ik kan de code helemaal suf optimalizeren, maar veel hogere scores ga ik er niet door krijgen. Sterker nog, als ik mijn programma veel meer (10x zoveel) tijd geef, haal ik de finish niet
You can't always get what you want. I can, but you can't.
Dan moet je dus niet meer de performance verbeteren, maar shortcuts in je algo vinden. Mischien kan je nog wel sommige branches veel eerder af kappen.quote:DaCoTa schreef op woensdag 07 januari 2009 @ 23:59:
Ik ga het zo afronden, ik heb nog wat kleine optimalizaties doorgevoerd wat me nu op bijna 330k moves/sec brengt, maar geen hogere score. Oftewel, ik zit op een dead end. Ter illustratie, ik heb een 10% run (10000 stappen in 1.5 minuut) gedraaid op alle verschillende snelheden van mijn CPU, met het volgende resultaat:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Step: 10000 CPU: 2.6 Ghz Score: 5220100 Moves/sec: 329326 CPU: 2.0 Ghz Score: 5108250 Moves/sec: 241641 CPU: 1.6 Ghz Score: 4950350 Moves/sec: 188206 CPU: 1.2 Ghz Score: 4775450 Moves/sec: 132626 CPU: 0.8 Ghz Score: 4378900 Moves/sec: 80850
Oftewel, met mijn algoritme zijn de aantal moves/sec vrijwel lineair afhankelijk van de CPU snelheid, maar de scores absoluut niet. Conclusie: ik kan de code helemaal suf optimalizeren, maar veel hogere scores ga ik er niet door krijgen. Sterker nog, als ik mijn programma veel meer (10x zoveel) tijd geef, haal ik de finish niet
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Daar zit precies het probleem, als ik meer afkap, kom ik te vaak in een doodlopend pad terecht en moet ik terug, iets wat nog veel meer tijd kost.quote:rwb schreef op donderdag 08 januari 2009 @ 08:53:
[...]
Dan moet je dus niet meer de performance verbeteren, maar shortcuts in je algo vinden. Mischien kan je nog wel sommige branches veel eerder af kappen.
Ja.quote:phsmit schreef op donderdag 08 januari 2009 @ 08:27:
@DaCoTa Zijn deze scores met 2 cores? (T9500 toch)?
Ik ben nu het ding aan het testen, thuis draait hij continue volledige runs achter elkaar, dan kan ik vanavond zien wat de variatie in de score is en of er nog iets crashed.
You can't always get what you want. I can, but you can't.
Ik heb geprobeerd met wat OpenMP directives meerdere cores te gebruiken en hoewel dat in principe wel werkte, kon ik het niet echt goed testen op mijn PC (1 core), bij een test op een multi-core machine traden sporadische rare bugs op (waarschijnlijk was ik nog wat niet-thread-safe code vergeten sequentieel te laten uitvoeren) en de snelheidswinst viel me ook tegen; bij lange na niet lineair (zeker niet als het aantal cores stijgt).
OTLquote:Soultaker schreef op donderdag 08 januari 2009 @ 11:22:
Wat gebruiken jullie voor multithreading frameworks? (If any?) Of wil je dat nog niet kwijt voor de deadline?
Oisyn's Threading Library
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Mijn huidige versie doet dat inderdaad ook niet. Ik zit er nog over te denken om ook de score en de veldrepresentatie (gedeeltelijk) mee te kopieren.quote:king_charles schreef op woensdag 07 januari 2009 @ 16:49:
Dat zit hem vooral in het niet steeds (her)scannen van het hele veld op combinaties/zetten/etc. Dat scheelt meer dan de helft in snelheid. Daarbij is het gebruikte algoritme voor het vinden van combinaties/moves van ook belang voor de snelheid.
Wel was mijn conclusie dat de winst hem niet echt zit in de zoektocht naar opties, maar meer in het doorrekenen van de zet-opties.
Met mijn algoritme probeer ik steeds wel x zetten vooruit te kijken, maar uiteindelijk probeert de routine lang niet alle opties die in het veld aanwezig zijn.
Een grote vertrager is bij mij dat voor elke veld-representatie er 50 nieuwe zetten mogelijk zijn.
Ook het backup-restore algoritme heeft hier last van omdat zodra een doodlopend pad wordt weggestreept een van de andere takken ook weer een verwijzing geeft naar de eerder afgekeurde zet en soms alsnog weer doodloopt.
Actieve ! makelaar gezocht.
Reg. datum: 11 maart 2008
Alle moves x zetten vooruit kijken noemen we brute-force. Dus het is juist de bedoeling om een slimme manier te vinden om moves die weinig opleveren af te kappen of helemaal niet te bekijken en alleen ver vooruit te kijken met een percentage (goede) moves.quote:KoW schreef op donderdag 08 januari 2009 @ 13:35:
Met mijn algoritme probeer ik steeds wel x zetten vooruit te kijken, maar uiteindelijk probeert de routine lang niet alle opties die in het veld aanwezig zijn.
Een grote vertrager is bij mij dat voor elke veld-representatie er 50 nieuwe zetten mogelijk zijn.
Dit is gewoon een kwestie van goed bijhouden welke moves doodlopen bij een gegeven movenummer, zodat je niet opnieuw een zet doet waarvan je al eerder ontdekte dat hij doodliep op dat moment.quote:KoW schreef op donderdag 08 januari 2009 @ 13:35:
[...]
Ook het backup-restore algoritme heeft hier last van omdat zodra een doodlopend pad wordt weggestreept een van de andere takken ook weer een verwijzing geeft naar de eerder afgekeurde zet en soms alsnog weer doodloopt.
king_charles wijzigde dit bericht 08-01-2009 16:46 (29%)
Reden: typo
Jawel, maar om te kunnen bepalen hoe goed een zet is moet je de zet wel spelen. Wanneer er dan 50 verschillende opties zijn is dat best veel.quote:king_charles schreef op donderdag 08 januari 2009 @ 14:49:
Alle moves x zetten vooruit kijken noemen we brute-force. Dus het is juist de bedoeling om een slimme manier te vinden om moves die weinig opleveren af te kappen of helemaal niet te bekijken en alleen ver vooruit te kijken met een percentage (goede) moves.
Het algoritme pakt nu uit die zetten gewoon de best scorende, maar moet dan dus weer die 50 opties uitwerken.
Ja, maar hoe lang hou je dat dan vast.quote:Dit is gewoon een kwestie van goed bijhouden welke moves doodlopen bij een gegeven movenummer, zodat je niet opnieuw een zet doet waarvan je al eerder ontdekte dat hij doodliep op dat moment.
Zodra een veld eenmaal is doorgevallen (na een paar zetten) kan op diezelfde positie een move ontstaan die juist wel valide is.
Op dit moment doe ik die controle dus niet.
Zoiets en het iets slimmer omgaan met vorige zetten staat nog wel op het programma mocht ik nog wat tijd overhebben. (Waarschijnlijk niet dus)
Op dit moment heeft een verkeerd uitgevoerde optimalisatie mijn uitvoer ongeldig gemaakt. Dat moet ik eerst even fixen en verder lijkt het me handig om toe te werken naar iets wat ook zonder mijn ingrijpen een spel uit kan spelen.
Het huidige programma heeft overigens een gemiddelde score van nog geen 300 per zet en een snelheid van 500 zetten in 30 seconden
Actieve ! makelaar gezocht.
DTLquote:Soultaker schreef op donderdag 08 januari 2009 @ 11:22:
Wat gebruiken jullie voor multithreading frameworks? (If any?) Of wil je dat nog niet kwijt voor de deadline?
Ik heb geprobeerd met wat OpenMP directives meerdere cores te gebruiken en hoewel dat in principe wel werkte, kon ik het niet echt goed testen op mijn PC (1 core), bij een test op een multi-core machine traden sporadische rare bugs op (waarschijnlijk was ik nog wat niet-thread-safe code vergeten sequentieel te laten uitvoeren) en de snelheidswinst viel me ook tegen; bij lange na niet lineair (zeker niet als het aantal cores stijgt).
DaCoTa's Threading Library
De 20 uur loop van testset 1 is geslaagd, na 83 runs zit de gemiddelde score op 52.4m, met een variatie van ongeveer 400.000. Ik ben alleen vergeten alle outputs te bewaren, dus ik kan ze niet valideren. Nu doe ik nog nog een keer hetzelfde voor testset 3, maar deze keer bewaar ik wel alle outputs zodat ik die nog kan valideren.
You can't always get what you want. I can, but you can't.
De resultaten van de supergrote set komen nog...
[GoT topic extension for Chrome - nu met Quote-to-Quickreply feature!] - [T.net karma monitor]
[Deus Ex: HR] - [Lara Croft and the Guardian Of Light]
Reg. datum: 07 oktober 2004
Wel durf ik te zeggen dat er minder tijd tussen zal zitten dan de vorige keer.
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. — Jamie Zawinski
Mijn Tweakblog en zoeken in Tweakblogs
Underclocken is cool - Phenom II X4 955 (3.2GHz) @ 800MHz!
Maar ik vraag me af of ik toe kom aan een ander algoritme dan willekeurig eentje uitzoeken.
(heb nog geen internet hier.... brr...)
Uiteindelijk toch nog een stomme bug gevonden in het opslaan van de zet-opties waardoor sommige zetten onterecht niet doorgerekend werden.
Vervolgens ging de snelheid enorm vooruit, maar nu bleek vanavond bij het langer draaien van de testset dat er toch af en toe verkeerde moves tussen staan.
Op een of andere manier lijkt het gedeelte wat alleen het gekozen pad bewaard niet te werken. Daardoor kwamen er soms zetten voorbij die uit een heel andere al lang afgeschreven tak komen.
Vanwege de te korte tijd om dat nu nog op te lossen zit er nu een extra check op. Elke move wordt nogmaals gecontroleerd of hij wel score geeft voor hij in de lijst gezet wordt.
Het programma geeft op mijn pc een score van 169 per zet en het lukt hem nu bijna om de 100000 zetten te halen.
Edit: op deze laptop haalt ie slect de 43000 zetten met wel dezelfde score per zet. (Als de tijd niet gehaald kan worden draait ie met een minimum waarde)
KoW wijzigde dit bericht 09-01-2009 23:55 (8%)
Actieve ! makelaar gezocht.
Juist.quote:Creepy schreef op vrijdag 09 januari 2009 @ 16:53:
Zoiezo een kleine pauze... we hebben wel wat ideeen nog liggen maar die zijn nog niet helemaal uitgewerkt. Ook wij zijn lui dus hoe lang dat gaat duren daar ga ik geen uitspraken over doen
Wel durf ik te zeggen dat er minder tijd tussen zal zitten dan de vorige keer.
Het verzinnen van een goede opdracht die zowel voor beginners als gevorderden een uitdaging kan zijn is lastig genoeg, en dan proberen we daarnaast ook nog eens elke keer iets nieuws te verzinnen. En dan heb ik het nog niet over de validator die elke keer geschreven wordt en de daadwerkelijke runs van de inzendingen. Minstens een maandje pauze mag daarna toch wel?
Omines - Snel en gratis juridisch advies
Standeman: Ik wil mijn ballen ook wel doneren hoor, ik doe er toch ook niets meer mee.
De 50x50 set is eindelijk een keer gelukt (maar wel met een move te weinig
--Statistieken-- Aantal moves 99999 0scores (ongeldige zet) 0 Score per zet 84.67885 Grootste zet score 850, zet 928
Snel opruimen en submitbaar maken.
't Doet nog steeds 'gewoon' de 1e de beste move uitvoeren dat de beste score in het veld oplevert, met een score van rond de 23M op de testset. Ik denk dat mijn code op het contest vooral moet hebben van de documentatie, indeling en robuustheid. Anyway, we zien wel
Carpe diem
Dat was ik eerst ook van plan....in Perl. Maar die bleek niet snel genoeg voor de 50x50. Dus heb ik alles geport naar C. Met 0 C ervaring was dat erg leerzaam moet ik zeggenquote:BalusC schreef op zaterdag 10 januari 2009 @ 00:53:
't Doet nog steeds 'gewoon' de 1e de beste move uitvoeren dat de beste score in het veld oplevert, met een score van rond de 23M op de testset. Ik denk dat mijn code op het contest vooral moet hebben van de documentatie, indeling en robuustheid. Anyway, we zien wel
Actieve ! makelaar gezocht.
quote:KoW schreef op zaterdag 10 januari 2009 @ 09:24:
Hee, de deadline is veranderd. Daar stond eerst 10 januari.
Ik denk dat het daarom veranderd isquote:MrHuge schreef op woensdag 24 december 2008 @ 08:55:
Uit de openingspost:
[...]
10 januari valt in mijn kalender op een zaterdag, niet op een maandag.
Ik ben toch erg nieuwsgierig naar andere inzendingen en hoe deze opgelost zijn!
Pagina: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 last
Dit topic is gesloten.


