Re: Kilpatehtävä 2: Ratkaisuja

[vastaus aiempaan viestiin]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 19.1.2003 18:03

Reijon edellinen viesti osoitti hyvin, millaisesta ongelmasta
kilpatehtävässä 2 oli kysymys.
Ajattelutapani omissa ratkaisuyrityksissä oli hyvin samantyyppistä
eikä sen vuoksi ole tarvetta enää selittää kaikkea mahdollista.
Olin hankkinut sikäli etulyöntiaseman, että alunperin
koodasin koko jutun C-kielisenä ohjelmanpalana Survon MARKOV-
operaation yhteyteen:

Esim. komento
MARKOV TEACH SATTUMA / STATES=AMSUT RND=rand(1000011)
johtaa täsmälleen samaan toimintaan kuin sukrokomento
/SANO-SANA SATTUMA /   STATES=AMSUT RND=rand(1000011)
mutta kaikki tapahtuu huomattavasti nopeammin.

Ajattelin alunperin (kuten Reijokin), että yleisesti ottaen
hyvään ratkaisuun päästään yrittämällä jokaisessa kysymyksessä
antaa sellainen vastaus, joka kasvattaa tavoitteena olevan
sanan todennäköisyyttä mahdollisimman paljon.
En saanut aivan selvää, miten Reijo toteutti tämän, mutta
oma keinoni oli se ,että sukroa tulee (tilapäisesti) muuttaa
siten, että se etsii itse - käymällä vaihtoehdot läpi - tuon
parhaan vastauspistemäärän joka kysymyksen kohdalla.
Todellisuudessa yleistin vastaavaa C-ohjelmaa ja sain ratkaisut,
joissa SATTUMA tarvitsi 67 kysymystä ja SURVO 79 kysymystä.
Kuten Reijo jo totesi, tämä menettely ei johda välttämättä
parhaaseen tulokseen, vaikka sitä kannattaa käyttää johonkin
rajaan ainakin vastailun alkupäässä.
Itse päädyin kuitenkin muuntamaan raa'asti tätä vaiheittain maksimoivaa
ratkaisutapaa siten, että (käyttäen toista satunnaislukugeneraattoria)
muuntelin vastausta satunnaisesti "parhaan" ympäriltä eli
käytin eräänlaista JITTER-tekniikkaa (kts. JITTER?) ja toistin
automaattisesti MARKOV TEACH:ia eri siemenluvuilla yksinkertaisen
sukron ohjaamana.
Näin sain (kuten Reijo) SATTUMAn sanotuksi 45 kysymyksellä ja
useillakin eri tavoilla, joista mikään ei ollut sama kuin Reijon
vastaus. SURVOssakin pääsin (kovan yrittämisen jälkeen) vain
yhdellä kysymyksellä Reijon ratkaisua lyhyempään tulokseen.

Vaikka tehtävä olikin (todella hyvään ratkaisuun pyrittäessä)
suhteellisen hankala, olisin silti odottanut enemmän vastaajia,
sillä olen edelleen sitä mieltä, että pelkän intuitionkin
avulla pääsee tulokseen, kuten Markku Verkasalo omilla
hyvillä "yhden yön" yrityksillään osoitti.

Teknisellä tasolla olisi tästä aiheesta paljon enemmänkin
kerrottavaa, mutta ehkä siihen voitaisiin palata vaikkapa jonkin
seminaaritilaisuuden yhteydessä, jos kiinnostusta riittää.

Tässä ovat toistaiseksi parhaat tunnetut ratkaisut:

Reijo Sund:
RND=rand(1000011)
STATES=AMSUT
/SANO-SANA SATTUMA
1  SA  30                                         P=0.00000056953125
2  AA  -15                                        P=0.00000105188091
3  UUSMS  -30                                     P=0.00000105750021
4  ATMUUTUASSSM  -30                              P=0.00000139267329
5  TU  30                                         P=0.0000015558448
6  MS  -30                                        P=0.00000162611683
7  ASMAUMMMSTAS  -25                              P=0.00000187895258
8  TU  0                                          P=0.00000199100014
9  AMUM  0                                        P=0.00000199100014
10  STTUMSU  30                                   P=0.00000199100014
11  USTTAU  -30                                   P=0.00000351874956
12  U  -30                                        P=0.00000421983112
13  TTTSU  10                                     P=0.00000482269086
14  SUSU  -30                                     P=0.0000048747967
15  SA  30                                        P=0.00000515474306
16  MTTM  -25                                     P=0.00000827320532
17  SMTTUA  30                                    P=0.0000084729532
18  T  -30                                        P=0.00001287145587
19  S  30                                         P=0.00001573135527
20  SSU  -15                                      P=0.00001731981953
21  S  -15                                        P=0.00001740039801
22  STUAMSSTU  -10                                P=0.00001657594521
23  SSUTSTU  15                                   P=0.00001605711221
24  TMUMAAM  20                                   P=0.00001577437914
25  A  -15                                        P=0.00001660505285
26  STU  30                                       P=0.00001659360314
27  STTUMA  -5                                    P=0.00001920484868
28  SU  0                                         P=0.00001649174479
29  TUUSUATSA  -15                                P=0.00001649174479
30  TU  30                                        P=0.00001408026779
31  SAMTMTU  -5                                   P=0.00001327027651
32  STUST  20                                     P=0.00001314021382
33  SA  25                                        P=0.00001284129892
34  SAMAAT  30                                    P=0.00001756693318
35  SSMAMTTSA  15                                 P=0.00002755996091
36  S  0                                          P=0.00003465461924
37  SAAM  -15                                     P=0.00003465461924
38  SA  10                                        P=0.0000345190328
39  SATSA  20                                     P=0.00003807026721
40  TMAU  20                                      P=0.0000551126144
41  SUTMTUTA  0                                   P=0.00005410304487
42  SUMA  30                                      P=0.00005410304487
43  SA  10                                        P=0.00008513659063
44  SST  30                                       P=0.00008963742183
45  SATTUMA  .                                    P=0.00007588875386

Reijolla on tavallaan tässä ollut hyvää tuuria, koska SATTUMA
ilmestyy tilanteessa, jossa sen todennäköisyys on vain luokkaa  0.00009.
Omassa samanmittaisessa ratkaisussa vastaava todennäköisyys oli 0.00047
mutta vain hieman suurempi.

Paras tuntemani SURVOn arvausjono on seuraava:
RND=rand(1000082)
STATES=AEHIJKLMNOPRSTUV
/SANO-SANA SURVO
1  UPI  -30                                       P=0.00000007543713
2  J  -24                                         P=0.00000007762229
3  A  -27                                         P=0.00000007868894
4  NIS  -28                                       P=0.00000007990663
5  VVHLOTL  -28                                   P=0.00000008648375
6  KPUNMNPURPV  30                                P=0.00000009101237
7  RAHHO  30                                      P=0.00000010489642
8  IM  -25                                        P=0.00000012513086
9  L  -25                                         P=0.0000001269422
10  ELTNS  -27                                    P=0.00000012880674
11  KNJJP  -28                                    P=0.00000013740553
12  ARJV  -28                                     P=0.00000014053086
13  SSUI  30                                      P=0.00000015603746
14  POPURRKT  30                                  P=0.00000026347926
15  LMV  -30                                      P=0.00000032457891
16  RHPPNAOJNKI  -27                              P=0.00000035274598
17  ASM  -28                                      P=0.00000036809509
18  MMTOLN  -26                                   P=0.00000037635824
19  KUVVP  -26                                    P=0.00000038629651
20  NTVJM  -30                                    P=0.0000004051507
21  RRHAVER  -27                                  P=0.00000041659056
22  JVT  -25                                      P=0.00000046646689
23  NMAVKSKSSULUMN  30                            P=0.00000047825819
24  O  30                                         P=0.00000056776916
25  AVOHPEKTAJPLNHH  30                           P=0.00000067280142
26  KHP  -30                                      P=0.00000086983222
27  PV  -29                                       P=0.0000008827178
28  JUPSTJ  -28                                   P=0.00000095577977
29  SS  30                                        P=0.00000098575288
30  JS  -30                                       P=0.00000118613538
31  ELJNVRAMOLHIAA  -28                           P=0.00000125728672
32  IVLN  -29                                     P=0.00000132297391
33  AK  -25                                       P=0.00000136174868
34  J  -30                                        P=0.00000137526957
35  N  -27                                        P=0.00000138465713
36  KEIP  -26                                     P=0.00000140393471
37  OJUO  30                                      P=0.00000141867005
38  RVINRPH  30                                   P=0.00000159011728
39  LKIKASSLUSNU  -28                             P=0.00000198081636
40  RNOV  -27                                     P=0.00000226054466
41  N  -30                                        P=0.00000244654153
42  UR  30                                        P=0.00000247486298
43  K  -30                                        P=0.00000297708777
44  SKT  30                                       P=0.00000300363438
45  OA  -27                                       P=0.00000377717953
46  AMPLT  -25                                    P=0.00000393207256
47  V  -28                                        P=0.00000396235761
48  O  30                                         P=0.00000415412155
49  P  -29                                        P=0.00000466001503
50  NN  -30                                       P=0.00000474969083
51  K  -29                                        P=0.00000478984909
52  NVTUR  30                                     P=0.00000482067997
53  SKEM  30                                      P=0.00000562520056
54  SKSHMHTTTONHMLNE  30                          P=0.00000691229169
55  RMVSI  -30                                    P=0.00000806608843
56  SUE  30                                       P=0.00000849484909
57  SHHM  30                                      P=0.00001341495747
58  S  29                                         P=0.00001572526891
59  UHVU  -30                                     P=0.0000175352626
60  SE  29                                        P=0.00001908778306
61  E  -26                                        P=0.00002143428365
62  SMAOPKVMSHMMLKKSK  20                         P=0.00002154912789
63  S  30                                         P=0.0000216165047
64  SJUVHUSURJTTO  30                             P=0.00002259705258
65  SRUTT  30                                     P=0.00004409344321
66  SUK  30                                       P=0.00004508540702
67  SNUJHRKSUUMSI  30                             P=0.000060617842
68  SKV  -30                                      P=0.00007446324093
69  SURVO  .                                      P=0.00007609894447

Reijon yhtä askelta pitemmässä ratkaisussa viimeinen vaihe oli
70  SURVO  .                                      P=0.00019134690985
eli tässä tapauksessa taas minulla on ollut parempi onni matkassani.

Se, joka ensimmäisenä pystyy edes jompaa kumpaa ratkaisua vielä
parantamaan, ansaitsee jakamatta jääneen palkinnon.

- Seppo

Vastaukset:
[ei vastauksia]

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.