SURVO-RISTIKOISTA SEPPO MUSTONEN

Samankaltaiset tiedostot
Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

2.8. Kannanvaihto R n :ssä

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio

Latinalaiset neliöt ja taikaneliöt

Matriisilaskenta Luento 8: LU-hajotelma

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Algoritmit 1. Luento 12 Ke Timo Männikkö

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

1. Mikä on lukujen 10, 9, 8,..., 9, 10 summa? 2. Mikä on lukujen 10, 9, 8,..., 9, 10 tulo? =?

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Algoritmit 1. Luento 12 Ti Timo Männikkö

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi).

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...

9 Matriisit. 9.1 Matriisien laskutoimituksia

Johdatus verkkoteoriaan 4. luento

Vektoreiden virittämä aliavaruus

Syötteen ensimmäisellä rivillä on kokonaisluku n, testien määrä (1 n 10). Tämän jälkeen jokaisella seuraavalla rivillä on kokonaisluku x (0 x 1000).

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Kanta ja Kannan-vaihto

Algoritmit 2. Luento 13 Ti Timo Männikkö

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

Käänteismatriisin ominaisuuksia

5 Lineaariset yhtälöryhmät

ax + y + 2z = 0 2x + y + az = b 2. Kuvassa alla on esitetty nesteen virtaus eräässä putkistossa.

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Markov-kustannusmallit ja kulkuajat

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151

Harjoitus 3 ( )

MS-A0004/A0006 Matriisilaskenta

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

Harjoitus 6 ( )

Harjoitus 3 ( )

1.1. Määritelmiä ja nimityksiä

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

Algoritmit 1. Luento 10 Ke Timo Männikkö

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

TEHTÄVIEN RATKAISUT. Luku Kaikki luvut on kokonaislukuja. Luonnollisia lukuja ovat 35, 7 ja 0.

Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua.

Ennakkotehtävän ratkaisu

7 Vapaus. 7.1 Vapauden määritelmä

Matematiikan tukikurssi

Laskennan vaativuus ja NP-täydelliset ongelmat

Tämän luvun tarkoituksena on antaa perustaidot kompleksiluvuilla laskemiseen sekä niiden geometriseen tulkintaan. { (a, b) a, b œ R }

Lineaariset yhtälöryhmät ja matriisit

Survo-ristikon ratkaiseminen matriiseilla

{ 2v + 2h + m = 8 v + 3h + m = 7,5 2v + 3m = 7, mistä laskemmalla yhtälöt puolittain yhteen saadaan 5v + 5h + 5m = 22,5 v +

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Puzzle SM Pistelasku

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij

Inversio-ongelmien laskennallinen peruskurssi Luento 2

Matematiikan tukikurssi

1 Matriisit ja lineaariset yhtälöryhmät

Algoritmit 2. Luento 13 Ti Timo Männikkö

Valitse ruudun yläosassa oleva painike Download Scilab.

MS-A0003/A Matriisilaskenta Laskuharjoitus 6

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

Markov-ketjut pitkällä aikavälillä

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

Lineaarikuvauksen R n R m matriisi

MS-C1340 Lineaarialgebra ja

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Algoritmit 2. Luento 12 To Timo Männikkö

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

LAUSEKKEET JA NIIDEN MUUNTAMINEN

Kolmannen ja neljännen asteen yhtälöistä

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

(d) 29 4 (mod 7) (e) ( ) 49 (mod 10) (f) (mod 9)

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

LU-hajotelma. Esimerkki 1 Matriisi on yläkolmiomatriisi ja matriisi. on alakolmiomatriisi. 3 / 24

Demo 1: Simplex-menetelmä

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

Diofantoksen yhtälön ratkaisut

Vastaus: Aikuistenlippuja myytiin 61 kappaletta ja lastenlippuja 117 kappaletta.

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Matriisilaskenta Laskuharjoitus 5 - Ratkaisut / vko 41

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

SELECT-lauseen perusmuoto

LUKUTEORIA johdantoa

2 Yhtälöitä ja epäyhtälöitä

Laskentaa kirjaimilla

Luku 8. Aluekyselyt. 8.1 Summataulukko

Mat Lineaarinen ohjelmointi

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

Kombinatorinen optimointi

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

Esimerkiksi jos käytössä ovat kirjaimet FFII, mahdolliset nimet ovat FIFI ja IFIF. Näistä aakkosjärjestykssä ensimmäinen nimi on FIFI.

Transkriptio:

SURVO-RISTIKOISTA SEPPO MUSTONEN..00 Olen viime kuukausina tarjonnut ratkaistavaksi tehtäviä, joita sanon Survo ristikoiksi, omassa keskusteluryhmässämme (www.survo.fi Keskustelu). Niiden pohtiminen on kiehtonut yllättävän monia myös survoilijoiden ystäviä ja sukulaisia. Useat ratkovat Survo ristikoita päässään käyttäen vain kynää ja paperia. Varsinkin vaikeitten tehtävien selvittämisessä Survon erilaiset laskennalliset keinot tukevat toimintaa. Tehtävänä on täyttää m n taulukko luvuilla,,...,mn siten siten, että jokainen näistä luvuista esiintyy vain kerran ja että rivi- ja sarakesummat täsmäävät reunoilla annettuihin lukuihin. Lisäksi taulukkoon on saatettu sijoittaa joitakin lukuja jo valmiiksi, jottei ratkaiseminen olisi liian hankalaa eikä mahdollisia ratkaisuja olisi yhtä enempää.. Esimerkki Tarkastellaan ristikkoa 0 0 0 Siis esim.. rivin lukujen summa on 0 eli puuttuvien kolmen luvun summa on. Vastaavasti. sarakkeen summa on, joten kahden puuttuvan luvun summa on 0. Taulukosta puuttuvat lukua ovat,,,,,,0,,. Ratkaisu kannattaa yleensä aloittaa rivistä tai sarakkeesta, jossa on vähiten puuttuvia lukuja. Tässä ristikossa sarakkeet, ja ovat sellaisia. Sarake ei kuitenkaan ole kiitollinen sillä puuttuvien lukujen summa voidaan esittää sääntöjen sallimalla tavalla useassa muodossa (esim. = + = + = + 0 = 0 + ). Sarakkeella puuttuvien lukujen summa on 0, jolla on vain yksi mahdollinen esitys 0 = + sillä muut vaihtoehdot 0 = + = + = + sulkeutuvat pois jo taulukossa esiintyvien lukujen johdosta. Copyright c Seppo Mustonen, 00.

SEPPO MUSTONEN..00 Lukua ei voi sijoittaa riville, koska silloin tuon rivin summa ylittäisi arvon. Siis taulukko täydentyy aluksi muotoon 0 0 0 Nyt ensimmäiselle sarakkeelle jää vain vaihtoehto = = + = +. Luku ei voi kuitenkaan olla rivillä, sillä sen puuttuvien lukujen summa olisi 0 =, jonka ositus kahden luvun summaksi sallitulla tavalla ei onnistu. Taulukko täydentyy näin muotoon 0 0 0 jolloin viimeisen rivin viimeiseksi luvuksi tulee 0 = : 0 0 0 Ensimmäisellä rivillä puuttuvien lukujen summa on 0 =, jonka ainoa mahdollinen ositus on = + 0 vieläpä niin, että luku tulee kolmanteen sarakkeeseen; 0 tuolla paikalla aiheuttaisi sarakesumman 0 ylityksen: 0 0 0 0

SURVO-RISTIKOISTA Ristikko täydentyy nyt välittömästi lopulliseen muotoonsa 0 0 0 0. Esimerkki Myös tämä 0 ristikko on helppo etenkin, jos huomaa, että ensimmäinen rivisumma voi syntyä vain luvuista + + + + + + + + + 0 =. 0 Se täydentyy välittömästi muotoon 0 Koska ensimmäisen rivin luvut ovat kaikki korkeintaan 0, neljännen sarakkeen summa 0 voi syntyä vain muodossa 0 = 0 + 0 eli saadaan 0 0 0 Tämän jälkeen lopullinen ratkaisu kehittyy yksinkertaisin askelin esim. seuraavasti: 0 0 0

SEPPO MUSTONEN..00 0 0 0 0 0 0 0 0 0 0 0 0. Esimerkki Edellisten kaltaisista, helpoista Survo-ristikoista selviää peruslaskutaidolla ja yksinkertaisilla päätelmillä. Näytteenä siitä, miten Survoa erityisesti sen kombinatorisia tehtäviä käsittelevää COMB-ohjelmaa voi käyttää hyväksi vaikeampia ristikoita ratkaistaessa, katseltakoon seuraavaa tehtävää, missä rivit on osoitettu numeroin ja sarakkeet kirjaimin A E. A B C D E 0 Tässä pääsee mielestäni vähimmällä, jos aloittaa tutkimalla, mitkä ovat rivin kolme puuttuvaa lukua. On selvitettävä, millä eri tavoin saadaan erisuuren kokonaisluvun summaksi = 0, kun ei saa käyttää yhteenlaskettavina

SURVO-RISTIKOISTA taulukossa jo olevia lukuja. Mahdolliset vaihtoehdot selviävät nopeimmin Survon seuraavanlaisella COMB-komentokaaviolla. Jo käytetyt luvut kerrotaan COMBkomennolle täsmennyksellä OFF=,,,,,,,,,,, ja kaikki luvun 0 ositukset (partitiot) eri luvun (DISTINCT=) summaksi saadaan komennolla OFF=,,,,,,,,,,, COMB P,CUR+ / P=PARTITIONS,0, DISTINCT= Partitions of 0: N[P]= 0 Tarjolla on siis kaksi vaihtoehtoista ositusta 0 = ++ = +0+. Tutkitaan B-saraketta ja käytetään jälleen COMB-komentoa näin: ---= on puuttuvien lukujen summa. COMB P,CUR+ / P=PARTITIONS,, DISTINCT= Partitions of : N[P]= Koska luku ei voi olla rivillä (ositusvaihtoehtojen estäessä) on B= ja B=: A B C D E 0 Tutkitaan nyt A-saraketta: ---= OFF=,,,,,,,,,,,,, (Huom. ja mukaan) COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= Koska rivillä ei voi olla lukua tai, rivin oikea ositus on ++0 eli A= ja C=0 sekä lisäksi A=.

SEPPO MUSTONEN..00 Tullaan siis tilanteeseen A B C D E 0 0 jolloin D on = A B C D E 0 0 Katsotaan riviä ja saraketta D: Rivi : ---= OFF=,,,,,,,,,,,,,,,0,, COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= 0 Sarake D: ---= COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= 0

SURVO-RISTIKOISTA Tällöin on D=0 ja edelleen C=, D=: A B C D E 0 0 0 Ristikosta puuttuu enää neljä lukua, jotka ovat,,,, joten helposti saadaan lopullinen ratkaisu A B C D E 0 0 0

SEPPO MUSTONEN..00. Esimerkki Vielä hankalampi lienee seuraava Survo-ristikko, jonka kyllä pystyy selvittämään apuneuvoittakin. Tästä on osoituksena Olli Mustosen ratkaisu, joka sujui näin (suora lainaus hänen lähettämästään viestistä): A B C D E 0 0 0 Huomasin, että riville tarvitaan kahden luvun summana. Käytettävissä olevilla luvuilla tämä onnistuu vain kahdella tavalla: 0+ ja +. Suuria lukuja tarvitaan myös sarakkeessa E ongelmana on ruutu E, jossa ei voi olla kovin suurta lukua, koska rivin vielä tyhjänä olevien neljän ruudun summa saa olla vain. Pienen tutkimisen jälkeen tulin siihen tulokseen, että E voi olla vain, tai 0. Sarakkeen E jäljelle jäävän kahden ruudun summa voi siis olla, tai nämä summat voivat muodostua vain luvuista 0,, ja eri tavoin yhdisteltyinä. Koska kahta näistä neljästä luvusta tarvitsemme rivillä, ja siellä summan täytyy olla, voimme päätellä, että myös jäljelle jäävät kaksi suurta lukua ruuduissa E ja E saavat summakseen. Tämä puolestaan tarkoittaa sitä, että E täytyy olla 0. A B C D E 0 0 0 0 Kirjoitin nyt listan kaikista mahdollisista ratkaisuista sarakkeelle B. Näistä saatoin poistaa kaikki ne, joissa esiintyi luku 0 (tarvitaan ruudussa E) sekä sellaiset, joissa tarvittiin kahta lukua joukosta 0,, ja nämä kaikki luvuthan tarvitsemme ruutuihin B, C, E ja E. Tein vastaavanlaisen listan myös rivin tilanteesta.

SURVO-RISTIKOISTA Näiden toimenpiteiden jälkeen sarakkeelle B jäi kaksi mahdollista ratkaisua:,,0 tai,,. Tästä voimme jo päätellä, että näissä ratkaisuissa esiintymättömien lukujen ja täytyy sisältyä sarakkeeseen E, joista toisen täytyy siis esiintyä rivillä, ruudussa E. Ruudussa B esiintyvä luku täytyy vuorostaan olla alle 0. Ainoa aiemmin listaamistani rivin ratkaisuista, joka täyttää kaikki aiemmin mainitut ehdot (mukana täytyy olla joko tai, molempien muiden lukujen täytyy olla alle 0, luku 0 ei voi esiintyä rivillä) on,,. Tästä seuraa, että E on ja vastaavasti E on. Tästä seuraa myös, että ruudussa B täytyy olla joko tai. Sarakkeen B ratkaisu on siis,, B on, B on ja näin ollen B on. C on 0. A B C D E 0 0 0 0 0 Vastaavasti A on ja A+A täytyy olla yhteensä jäljellä olevilla luvuilla ainoa mahdollisuus on +. on liian suuri luku ruutuun A, joten A on ja A on. A B C D E 0 0 0 0 0 Näin ollen C+D on, ainoana ratkaisuna jäljellä olevilla luvuilla +. Tässä vaiheessa ratkaistavaksi jää enää se, kummin päin luvut ja ovat rivillä ja se, miten sijoittuvat pienet luvut,, ja ruutuihin C, D, C ja D.

0 SEPPO MUSTONEN..00 Pienen tutkimisen jälkeen oikea ratkaisu löytyy helposti: A B C D E 0 0 0 0 0 Myös Anna-Riitta Niskanen on ratkaissut tämän tehtävän.. Survo-ristikkojen laadinta Ristikkotehtävien luominen on periaatteessa helppoa, mutta ratkaisun yksikäsitteisyyden varmistaminen edellyttää ratkaisuohjelmaa, jonka tein Survo-modulina SUMMAT. Esim. edellinen peli syntyi Survon matriisitulkin avulla seuraavasti: FILE CREATE SUMMAT,0, FIELDS: N X numerot,,,... N Y satunnaislukuja X-lukujen sekoitukseen END FILE INIT SUMMAT, VAR X=ORDER TO SUMMAT VAR Y=rand(00) TO SUMMAT m= n= FILE SORT SUMMAT BY Y TO SUMMAT / X-arvot satunnaiseen järjestykseen MAT SAVE DATA SUMMAT TO A / VARS=X Muunto m*n alkion vektoriksi MAT A=VEC(A,m) / Muunto mxn-matriisiksi MAT A=ZER(m+,n+) / Tähän kootaan alkiot ja summat. MAT A(,)=A MAT S=SUM(A) MAT A(m+,)=S MAT S=SUM(A ) MAT A(,n+)=S MAT S=SUM(S) MAT A(m+,n+)=S MAT A=A MAT A(,)=ZER(m,n) / A-matriisin alkioiden nollaaminen, summat jäävät MAT NAME A AS A

SURVO-RISTIKOISTA Valittujen alkioiden kopiointi ratkaisumatriisista A: MAT A(,)=A(,) MAT A(,)=A(,) Osan alkioista valitsin suoraan ja MAT A(,)=A(,) loput niin, että ratkaisuohjelma MAT A(,)=A(,) SUMMAT antaa vain yhden mahdollisen MAT A(,)=A(,) ratkaisun. MAT A(,)=A(,) MAT A(,)=A(,) MAT A(,)=A(,) MAT A(,)=A(,) MAT NAME A AS A Tehtävän asettelu on valmis: LOADM A,(),CUR+ A Sum 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Sum Ratkaisuohjelma SUMMAT toimii hyvin alkeellisen, osittain satunnaistetun algoritmin mukaisesti. Se aloittaa sijoittamalla puuttuvat luvut umpimähkään taulukkoon (satunnaistettu ristikko) ja yrittää sitten systemaattisin vaihdoin saada lasketut rivi- ja sarakesummat mahdollisimman lähelle oikeita summia. Menettely johtaa joko oikeaan ratkaisuun tai (kuten yleensä) se päätyy pattitilanteeseen, jossa se ei enää pysty parantamaan ratkaisuksi kelpaamatonta tulosta. Jälkimmäisessä vaiheessa tapahtuu mutaatio, jossa kaksi tai useampia lukuja vaihtaa paikkojaan satunnaisesti. Tämän jälkeen yritetään parantaa tulosta jälleen systemaattisesti, kunnes joko päädytään ratkaisuun tai joudutaan turvautumaan uuteen mutaatioon. Ristikon vaikeutta kuvaavaksi tunnusluvuksi olen ottanut tarvittujen mutaatiokertojen lukumäärän keskiarvon, kun ratkaisu toistetaan esim. 000 kertaa lähtemällä joka kerran täysin satunnaistetusta ristikosta. Edellä kuvatuilla esimerkkiristikoilla vaikeusasteet näin laskettuna ovat 0,0,0 ja 0. Mutaatioiden lukumäärä näyttää noudattavan (kuten sopii odottaa) likimain geometrista jakaumaa. Olen tarkkaillut joissain esimerkkiristikoissa, mikä on kussakin mutaatiossa paras vaihtojen lukumäärä. Kolme vaihtoa näyttää ainakin ristikoilla antavan keskimäärin nopeimmin ratkaisun ja ratkaisu on luokkaa kolme kertaa nopeampi kuin lähdettäessä pattitilanteen jälkeen kokonaan uudelleen satunnaistetusta ristikosta. Olen sisällyttänyt ratkaisuohjelmaan myös option, jolla se tutkii ratkaisun yksikäsitteisyyttä ratkaisemalla tehtävän toistuvasti ja jos se havaitsee, että syntyy yksikin ensimmäisestä ratkaisusta eroava tulos, tästä tulee ilmoitus.

SEPPO MUSTONEN..00. Avoimista ristikoista Omalla tavallaan mielenkiintoisia (ja hankalia) ovat avoimet Survo-ristikot, joissa on annettuna vain rivi- ja sarakesummat ja joilla on silti vain yksi ratkaisu. Joka tapauksessa esim. sellainen avoin m n ristikko, jonka ratkaisussa luvut,,...mn ovat vaaka- tai pystyriveittäin suuruusjärjestyksessä, ratkeaa yksikäsitteisesti, mutta näitä on muitakin ja ilmeisesti jopa sitä enemmän, mitä suurempi on ristikko. Yksikäsitteisesti ratkeavat ristikot A ja B määritellään olennaisesti erilaisiksi, jos ratkaistua ristikkoa A ei voi palauttaa ratkaistuksi ristikoksi B vaihtamalla rivien tai sarakkeiden järjestystä eikä transponoimalla (tapauksessa m = n). Olkoon S(m, n) olennaisesti erilaisten, yksikäsitteisesti ratkeavien, avoimien m n Survoristikoiden lukumäärä. On ilmeistä, että S(, ) = ja S(, ) =. Ainoa yksikäsitteisesti ratkeava ristikko on sillä esim. seuraavalla ristikolla (ankarasti ottaen) on kaksi ratkaisua. Sarakesummien (samoin kuin rivisummien) tulee olla keskenään erisuuria, jotta ratkaisu voisi olla yksikäsitteinen. Reijo Sund kiinnitti ensimmäisenä huomiota näihin avoimiin ristikoihin ja selvitti, että olennaisesti erilaisia ristikoita on kappaletta eli S(, ) =. Hän päätyi lähtemällä!=0 mahdollisesta ristikosta tähän tulokseen suoraan Survon perustoimintojen avulla, mikä on nähtävissä liitteenä. Alla on taulukoituna noiden ristikkojen rivi- ja sarakesummat sekä vaikeusasteet V. Rivit Sarakkeet V Rivit Sarakkeet V 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

SURVO-RISTIKOISTA Ratkaisuohjelman antamiin ristikkojen vaikeusarvoihin tulee suhtautua varauksellisesti. Joka tapauksessa vaikeimmaksi arvioitu (toiseksi viimeinen arvolla ) on hankalimpia. Se ratkeaa seuraavalla päättelyllä (ote Survon toimituskentästä): Ratkaistaan ristikko A B C * * * * * * * * * Aloitetaan C-sarakkeesta (jolla on ainoana yksikäsitteinen ositus): COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= A B C * * C-sarakkeen luvut järjestystä vaille * * * * B-sarake: OFF=,, COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= Luku on sarakkeessa B rivillä tai - ei rivillä, koska summa ylittyisi. A-sarake: OFF=,,, COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= Luku on sarakkeessa A.

SEPPO MUSTONEN..00 Olisiko B=? Silloin olisi C= ja A= A B C * * * * ja A-sarakkeessa =++, mutta rivisumma ylittyisi! Siis B=. A B C * * * * * B-sarakkeen alkuosan ainoa ositus on -==+ - ei +, koska tämä johtaa heti ristiriitaan rivillä. Tällöin on B= ja B=, koska B= joko ylittää rivisumman tai jos C=, A olisi. A B C * * * Koska B=, C ei voi olla tai - siis C= ja A=. A B C * * Väistämättä tällöin on A= ja A=, jolloin C= ja C= A B C

SURVO-RISTIKOISTA Olennaisesti erilaisten, avoimien Survo-ristikoiden lukumäärän laskeminen vaikeutuu huomattavasti suuremmilla m ja n yhdistelmillä. Olen ratkaisuohjelmallani saanut selvitetyksi, että S(,)=. Koska mahdollisten ristikkojen lukumäärä on tällöin jo!=0000, on edullisempaa tarkastella ongelmaa kaikkien reunasummien yhdistelmien kautta eli tällöin mahdollisten ehdokkaiden määrä supistuu lukuun *=, mikä näkyy seuraavasta laskelmasta: Kaikkien lukujen summa x-ristikossa on */=. COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MIN=0 MAX= RESULTS=0 Partitions of : N[P]= COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MIN= MAX= RESULTS=0 Partitions of : N[P]= Olennaisesti erilaisten, avoimien ristikkojen lukumäärän S(, ) laskeminen edellyttää vielä tehokkaampia keinoja, sillä erilaisten reunasummayhdistelmien lukumäärä on 0*(0-)/=0. Seminaarissamme vieraillut kombinatoristen algoritmien erikoistuntija Petteri Kaski on omilla ohjelmillaan saanut tulokseksi S(, ) =. Hän mallinsi tehtävän ns. täsmällisen peitteen ongelmaksi (exact cover problem) reunasummien antamin lisärajoittein.

SEPPO MUSTONEN..00 Avoimet ristikot ovat yleensä vaativia. Esim. jo ristikot tuottanevat suurta vaivaa, jollei käytetä jotain ratkaisuohjelmaa. Joskus ratkaisu saattaa kuitenkin löytyä melko suoraan hyvän oivalluksen kautta. Kimmo Vehkalahti selvitti ristikon A B C D E F 0 0 jonka vaikeusaste ratkaisuohjelmani mukaan on peräti 0, näin: Katsoin pareittain sarakkeita A,B,C ja D,E,F ja niiden yhtaikaisia mahdollisuuksia: A B C D E F + + + a + + +0 + + + b + +0 + + + + c + + + + + + d +0 + + + + + e +0 + + + + + f + + +0 + + + Tästä näkyy, että ainoa sopiva yhdistelmä on a, ts. A B C D E F + + + ja + + +0 Taulukoimalla kaikki ensimmäisen rivin ositukset ( kpl.) COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]=... 0 ja poistamalla näistä sellaiset, joissa yhtaikaa esiintyvät luvut, tai, tai, tai, tai, tai,0 päädytään vain yhteen ositukseen ja tulokseen A B C D E F 0 0 0

SURVO-RISTIKOISTA. Avoimen ristikon ratkaisu Ainoa Survo-keskustelussa (huhti- toukokuussa 00) antamani tehtävä, johon ei ole tullut yhtään ratkaisua, on seuraava avoin ristikko: A B C D 0 0 Luonnostelen seuraavassa Survon toimituskentän otteessa ratkaisun. On siis ratkaistava Survo-ristikko A B C D * * * * * * * * * * * * * * * * 0 0 jonka vaikeusaste ratkaisuohjelmalla on 0. Näytetään ensin, että A=. Tarkastellaan ensimmäistä riviä: Ositukset,: COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= Tämän perusteella A on yksi luvuista,,,,,,,. Tutkimalla mahdollisia sarakkeen A (summa ) osituksia voidaan aluksi sulkea vaihtoehdot,,,,, pois. Esimerkkinä tapaus A=: Käydään läpi kaikki rivin ositukset,: COMB P,CUR+ / P=PARTITIONS,, DISTINCT= OFF=,, Partitions of : N[P]=0 COMB P,CUR+ / P=PARTITIONS,, DISTINCT= OFF=,, Partitions of : N[P]=0 COMB P,CUR+ / P=PARTITIONS,, DISTINCT= OFF=,, Partitions of : N[P]=0 Siis A ei voi olla.

SEPPO MUSTONEN..00 Tapaus A=: Osituksen, perusteella, rivin kolme viimeistä lukua olisivat,, tai,, tai,, tai,, (jossain järjestyksessä). COMB P,CUR+ / P=PARTITIONS,, DISTINCT= Partitions of : N[P]=0 COMB P,CUR+ / P=PARTITIONS,, DISTINCT= Partitions of : N[P]= OFF=,, OFF=,, A B C D Ristikko voisi näyttää tältä. * * * Rivin ja sarakkeen A punaiset * * * luvut eivät ole välttämättä * * * 0 oikeassa järjestyksessä. 0 Jos nyt riville yrittää sijoittaa käyttämättömistä luvuista pienimmät,,0 A B C D 0 * * * * * * 0 0 rivisummaksi tulee +++0=0> eli liian suuri. COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= OFF=,, Tämä johtaa samoin kuin edellä rivisumman ylitykseen. COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= OFF=,, A B C D 0 * * * * * * 0 0 Nyt toinen rivisumma olisi oikein, mutta vaikka sarakkeeseen D on nyt sijoitettuna suurimmat mahdolliset luvut ja 0, erotus --0= on liian suuri esitettäväksi kahden sallitun luvun summana. Siis A=.

SURVO-RISTIKOISTA A B C D * * * * * * * * * * * * * * * 0 0 Tarkastellaan edelleen rivin ja sarakkeen A osituksia - nyt ehdolla A=. -= COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= OFF= Partitions of : N[P]= -= COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= Partitions of : N[P]= 0 OFF= Mahdolliset ositusparit ovat silloin - - ja näin ensimmäisessä rivissä ja sarakkeessa ovat luvut,,,,,,. Pienimmät vapaat luvut rivin sarakkeisiin B,C,D ovat silloin,,0. Koska niiden summa ++0= alittaa koko rivin summan kahdella, on siis A=. Kaikki muut vapaat luvut aiheuttaisivat rivisumman ylityksen. Tilanne näyttää seuraavalta: A B C D * * *,, tällä rivillä jossain järjestyksessä * * *,,0 tällä rivillä jossain järjestyksessä * * * * * * * * 0 0 Luvut, sarakkeessa A jossain järjestyksessä. Tutkitaan B-sarakkeen ositusvaihtoehtoja: COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= OFF=,,, Partitions of : N[P]= 0

0 SEPPO MUSTONEN..00 0 0 ainoa mahdollinen! 0 0 0 Näistä mahdollisia ovat vain sellaiset, joissa eivät esiinny yhtaikaa toisaalta luvut,, eikä toisaalta luvut,,0. Ainoa ehdot täyttävä ositus on silloin +++= ja siis aikaisemmin todettujen ensimmäisten rivien ositusten perusteella on B= ja B=. On tultu tilanteeseen, jossa samalla värillä esitetyt luvut ovat järjestystä vaille paikallaan: A B C D 0 0 0 Oikeitten järjestysten setviminen tapahtuu katsomalla ensin D-sarakkeen tämänjälkeisiä, mahdollisia osituksia: COMB P,CUR+ / P=PARTITIONS,, DISTINCT= MAX= OFF=,,,,,,, Partitions of : N[P]= 0 0 Osituksista vain toinen +0++= on mahdollinen sen perusteella, mitä tiedetään kahdesta ensimmäisestä rivistä eli ristikko varmistuu osittain muotoon A B C D 0 0 0

SURVO-RISTIKOISTA joka sattuu olemaan lopullinen tulos. Periaatteessa kahden viimeisen rivin suhteen olisi vielä ^= vaihtoehtoa, mikä on aika lailla pienempi vaihtoehtojen määrä kuin alkuperäinen fact()=0000. Ratkaisun yksikäsitteisyyden varmistaa helpoiten viimeisen rivin ositus COMB P,CUR+ / P=PARTITIONS,0, DISTINCT= MAX= OFF=,,,,,,,0 Partitions of 0: N[P]= Näistä vaihtoehdoista vain kolmas +++=0 koostuu valintakelpoisista luvuista.

SEPPO MUSTONEN..00. Tehtäviä Tässä on ratkaistavaksi Survo-ristikkoa. Kymmenen ensimmäisen ratkaisut ovat tehtävien jälkeen. Tehtävän yhteydessä annettu, suluissa oleva luku kertoo ratkaisuohjelmasta saadun vaikeusasteen. Näihin lukuihin tulee suhtautua varauksella, koska ne eivät voi ottaa huomioon hyvien oivallusten kautta syntyviä oikoteitä. Osan tehtävistä olen esittänyt jo aikaisemmin Survo-keskustelussa. Tehtävä (.) Tehtävä () 0 Tehtävä ()

SURVO-RISTIKOISTA Tehtävä (0) Tehtävä (0) 0 0 Tehtävä (0) 0 Tehtävä (0) 0 0

SEPPO MUSTONEN..00 Tehtävä () 0 0 Tehtävä () 0 0 0 0 Tehtävä 0 () 0 Tehtävä (00)

SURVO-RISTIKOISTA Tehtävä (000 eli petomainen ) 0 0 0 0

SEPPO MUSTONEN..00 Tehtävä (.). Tehtävien ratkaisuja Tehtävä () 0 Tehtävä () 0

SURVO-RISTIKOISTA Tehtävä (0) Tehtävä (0) 0 0 0 Tehtävä (0) 0 0 Tehtävä (0) 0 0

SEPPO MUSTONEN..00 Tehtävä () 0 0 Tehtävä () 0 0 0 0 0 Tehtävä 0 () 0 0

RISTIKKOJEN ANALYYSIA REIJO SUND..00 Oheisessa toimituskentässä on hiukan x-ristikoiden analyysia. Kuten käy ilmi, oleellisesti erilaisia avoimia yksikäsitteisesti ratkeavia Survo-ristikoita ei ole kuin. Muodostetaan kaikki mahdolliset x-ristikot (N=0) FILE DEL SRIS.TXT COMB P TO SRIS.TXT / P=PERMUTATIONS, RESULTS= FILE DEL SRIS0 FILE SAVE SRIS.TXT TO NEW SRIS0 / NEWSPACE=0,0 Käytetään ristikossa seuraavia symboleita: X X X R X X X R X X X R S S S Lasketaan rivi- ja sarekesummat sekä tallennetaan nämä lisäksi yhdellä muuttujalla esitettäväksi VAR R:,R:,R:,S:,S:,S:,JARJ: TO SRIS0 R=X+X+X R=X+X+X R=X+X+X S=X+X+X S=X+X+X S=X+X+X JARJ=S+00*S+0000*S+000000*R+00000000*R+JARJ JARJ=0000000000*R+000000000000 FILE SHOW SRIS0 Järjestetään rivi- ja sarakesummien yhdistelmien mukaan FILE SORT SRIS0 BY JARJ TO SRIS0 Lasketaan montako kutakin rivi- ja sarakesummien yhdistelmää on (N=) FILE AGGR SRIS0 BY JARJ TO SRIS0 / PRIND=0

0 REIJO SUND..00 VARIABLES: JARJ FIRST JARJ MAARA N JARJ X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X R FIRST R R FIRST R R FIRST R S FIRST S S FIRST S S FIRST S END FILE SHOW SRIS0 Jatkotarkasteluihin vain ne ristikot, joihin on yksikäsitteinen ratkaisu pelkillä rivi- ja sarakesummilla (N=) FILE COPY SRIS0 TO NEW SRIS0 / IND=MAARA, NEWSPACE=0,0 FILE SHOW SRIS0 Kyseessä ovat oleellisesti samat ristikot, vaikka rivien (tai sarakkeiden) paikkoja vaihdettaisiin keskenään. Poistetaan "turhat" ristikot ja valitaan joka luokasta mukaan satunnainen ristikko esimerkiksi Järjestetään rivi- ja sarakesummat VARSTAT SRIS0,*,SORT / VARS=R,R,R VARSTAT SRIS0,*,SORT / VARS=S,S,S Muodostetaan rivi- ja sarakekohtaiset yhdistelmämuuttujat sekä satunnaisluku VAR RJARJ:,SJARJ:,SAT TO SRIS0 RJARJ=R+00*R+0000*R SJARJ=S+00*S+0000*S SAT=rnd() Rivit ja sarakkeet voivat vaihtaa paikkaa VARSTAT SRIS0,*,SORT / VARS=RJARJ,SJARJ

RISTIKKOJEN ANALYYSIA Järjestetään luokittain ja luokan sisällä satunnaisesti VAR JARJ:=SJARJ+000000*RJARJ+000000000000 TO SRIS0 FILE SORT SRIS0 BY JARJ,SAT TO SRIS0 Valitaan esimerkit jokaisesta oleellisesti erilaisesta ristikosta (N=) FILE AGGR SRIS0 BY JARJ TO SRIS0 / PRIND=0 VARIABLES: JARJ FIRST JARJ MAARA N JARJ X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X X FIRST X END FILE SHOW SRIS0 Lasketaan rivi- ja sarakesummat uudestaan FILE EXPAND SRIS0,0,0 VAR R:,R:,R:,S:,S:,S: TO SRIS0 R=X+X+X R=X+X+X R=X+X+X S=X+X+X S=X+X+X S=X+X+X

REIJO SUND..00 Näytetään kaikki yksikäsitteisesti ratkeavat ristikot (N=) FILE SORT SRIS0 BY R,R,R,S,S,S TO SRIS0S FILE LOAD SRIS0S X X X X X X X X X R R R S S S 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0