Kilpatehtävä 2: Ratkaisukonsteja

[vastaus aiempaan viestiin]

Kirjoittaja: Reijo Sund
Sähköposti:    reijo.sund'at'stakes.fi
Päiväys: 17.1.2003 16:19

> Ennenkuin kerron omista keinoistani olisi hauska kuulla Reijolta,
> mitä konsteja hän on käyttänyt vai onko pelkkä intuitio riittänyt.

Lähdin ratkaisemaan tehtävää tutustumalla sucro-koodiin sen verran,
että ymmärsin miten arvausten yhteydessä annettava todennäköisyys
lasketaan. Pienen pähkäilyn jälkeen tulin siihen tulokseen, että
tuon todennäköisyyden maksimointi joka arvauskerralla on yleisessä
tapauksessa erittäin hyvä ratkaisustrategia. Se johtikin molempien
tehtävien osalta kohtalaisiin ratkaisuihin ja antoi "ylärajan"
arvailuketjujen pituudelle.

Seuraavaksi kävi mielessä, että tuota strategiaa voisi hioa
näiden tehtävien erikoistapauksiin sopivammaksi. Hylkäsin idean
kuitenkin nopeasti, sillä kohtuullisen lyhyet ratkaisut olivat jo
olemassa ja ennalta kiinnitettyjen satunnaislukugeneraattorien
takia (mahdollinen) hyöty olisi joka tapauksessa olematon.

Seuraavaksi huomio kiinnittyi siihen, että oikeastaan tehtävänä
onkin muokata siirtymämatriisia lennossa niin, että ennalta annetusta

satunnaislukujonosta löytyy ratkaisuun sopiva pätkä. Tutkimalla
sucron sananarvontakoodia on helppo nähdä, että seuraava kirjain (tila)
määräytyy kussakin lähtötilassa "kumulatiivisesti". SATTUMA-tehtävässä
tämän perusteella (kaksi siirtymää A:sta ja T:stä) voidaan päätellä,
että ratkaisu voi löytyä vain sellaisista kohtaa satunnaislukujonoa,
jossa ehdot X[+2] on pienempi kuin X[+7] ja X[+3] on pienempi kuin
X[+4] toteutuvat. Valitettavasti ehto on aivan liian karkea ja
sopivia vaihtoehtoja on turhan runsaasti. SURVO-tehtävän osalta
moista ei edes saa muodostettua. Arvailujonojen alkupäässä
mahdollisia arvottuja sanoja on vain hyvin rajallinen määrä
(eli uuden sanan arvonta alkaa vain tietystä kohtaa satunnais-
lukujonoa). Näin voi tiputtaa pari vaihtoehtoa alusta helposti pois,
mutta valitettavasti homma räjähtää nopeasti käsiin.

Ongelman hankaluudesta tuskastuneena päätin turvautua voimaan, kun
ei järki riittänyt. Systemaattinen haku otti kuitenkin liikaa
aikaa, eikä näin ollen johtanut tuloksiin. Oli pakko tyytyä
arvailemaan ja toivoa, että sopiva kohta satunnaislukujonoa löytyisi
sillä tavalla. Ylärajahan kierrosten määrälle olin jo saanut
todennäisyydenmaksimoimisstrategialla.

Eipä ollut minulla tuuria ja haku oli tuloksetonta. Intuitio sanoi,
että kannattanee ensin oppia kävelemään ja vasta sitten alkaa
loikkimaan päättömästi. Johan alkoivat tulokset paranemaan. Ensin
siis lämmiteltiin "sopivan verran" todennäköisyyden maksimoinnilla ja
sen jälkeen ammuttiin loput kierrokset enemmän tai vähemmän
haulikolla.

Koska samaan kohtaan satunnaislukujonoa voi osua onnistuneesti
vähemmilläkin arvauksilla, päätin tiristää loppupäätä systemaattisilla
hauilla mahdollisimman paljon. Näin tippui vielä muutama kierros pois.
Lopputuloksena sain sitten mm. Sepolle raportoimani tulokset.

Lämmittelykierrosten määrän päätin vain "tuntumalla", en käyttänyt
arvosteluskaalaa kuin viiden pisteen tarkkuudella enkä pystynyt
varmistamaan ratkaisuiden minimaalisuutta. Enempää aikaa tai intoa
pähkäilemiseen ei kylläkään ollut ;).

terv.
Reijo

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.