Kysymys:
Kuinka monella tavalla voidaan -laudalle asettaa 4 ratsua, siten että mikään ei uhkaa toista? Kaikki ratsut ovat identtisiä ja vihollisia keskenään.
Ratkaisu:
Merkitään eli kaikkien laudan ruutujen joukko. Kaikki mahdolliset neljän ratsun asettelut ovat nyt joukko
Määritellään kaarijoukko kuvastamaan sitä mihin ruutuun kustakin ruudusta ratsu voi liikkua, eli mitä kaikkia ruutuja se uhkaa. (Huom. ratsuissa on se mukava juttu, että ne eivät välitä laudan muista nappuloista vaan voivat hypätä näiden yli.) Näin saadaan
–ratsun graafi.

Tehdään tässä välissä sellainen huomio, että ratsun graafilla ei ole kolmioita: mitkään kolme eri ratsua (kun ovat laudalla eri ruuduissa) eivät voi uhata kaikki toisiaan. Tämä johtuu siitä, että ratsu vaihtaa aina liikkuessaan väriä: se liikkuu yhteensä kolme askelta mustalta valkealle / valkealta mustalle. Kolmesta ratsusta vähintään kaksi on samalla värillä, joten ne eivät voi uhata toisiaan. Ratsun graafi on juuri tämän värin vaihtamisen takia kaksijakoinen (valkeat ja mustat ruudut).
Määritellään joukot . Tarvitsemme joukkoja
ja
, sillä kysytty lukumäärä on joukon
koko. Indeksijoukko
(huom. merkinnät 12,… eivät aiheuta sekaannusta, sillä luvut pysyvät alle kymmenen). Voimme laskea inkluusio-eksluusiolla:
missä leikkaus tyhjän joukon yli tarkoittaa koko joukkoa . Tehtävän ratkaisemiseksi meidän on siis laskettava kaikkien erilaisten leikkausten
koot. Monet näistä ovat symmetrian nojalla samoja ja osa graafin kolmio-vapauden takia mahdottomia. Ne jakautuvat seuraaviin luokkiin:

Merkitään
Siis kaaret (ja kaksi muuta saa olla mitä vain muita solmuja),
2-ketjut (ja viimeinen saa olla mikä vain muu solmu),
erilliset kaaret,
kaikki yhden naapureita,
4-ketjut ja
4-syklit.
Tällöin kysytty lukumäärä on
Tässä on sijoitettu ja jakaja
tulee siitä, että ratsujen järjestyksellä ei ole kysymyksessä väliä, mutta me laskimme järjestettyjä nelikoita.
Tällaisten konfiguraatioiden laskemista graafilla käsittelimme viime kertojen postauksissa: Erillisten kaariparien laskeminen ja Graafin naapuruus-polynomeja. Meillä oli apuna graafin naapuruus-polynomit. Koitetaan siis selvittää ne ratsun -graafille. Laskeminen eri arvoille paljastaa melko nopeasti säännönmukaisuuden, jonka voi sitten kuvaa katsomalla perustella. Polynomi
on helppo: nurkilla on jokaisella 2 naapuria, näiden viereisillä (
:lla) reunaruuduilla 3, muilla (
):lla reunaruuduilla 4. Toisella rinkulalla käy näin: nurkat: 4, muut reunat (
): 6. Sitä sisemmillä on kaikilla täydet 8 naapuria. Saamme siis, kun
Pienemmille :n arvoille tämä ei toimi, mutta niille koko ongelma voidaan laskea brute-forcena.
Sitten polynomi . Tämä vaatii hieman enemmän pähkäilyä, mutta tapaus
oli meillä jo edellisessä postauksessa esimerkkinä. Itse asiassa tuo tapaus on juuri viimeinen, jossa yleinen kaava ei tule vielä käytäntöön. Arvoille
pätee
Lisäksi tarvitsimme vielä polynomin . Se saadaan, mikäli
, kaavalla
Ainoa tapaus, jota emme ’itten laskemisesta vielä käsitelleet aimmissa postauksissa on 4-syklit eli
. Mutta näiden lukumäärälle löytyy kaava mathworldista: Jos
, niin
, muuten
. (Meidän täytyy kertoa mathworldin kaava
:lla, sillä tutkimme järjestettyjä nelikoita.)
Huomataan, että, kun , laskenta-algoritmit tuottavat
:stä riippuvan, astetta
olevan polynomin, joten sen kertoimet voidaan selvittää laskemalla interpolaatio-polynomi tarpeeksi monelle pisteelle. Saadaan
Huomataan, että tämä kaava toimii itse asiassa, kun . Pienemmät arvot
eivät noudata tätä kaavaa, mutta niille voidaan keksiä kaava
ja näin on ratkaisu saatu kahdessa palassa määrättyä.
Huomoita
- Yleinen ongelma, josta tämä on esimerkki on graafin riippumattomien joukkojen numerointi.
- Tämä kyseinen jono löytyy OEIS:sta. Jonon
:s termi on ratsun
-graafin riippumattomuus polynomin neljännen asteen kerroin.
Tehtäviä
- Ratkaise vastaava tehtävä, kun laudalle asetetaan 2 valkeaa ja 2 mustaa ratsua. Nyt sallittuja tilanteita ovat ne, joissa eriväriset eivät uhkaa toisiaan. (Vinkki: valitse tietyt joukot
.)
- Yleistyksiä:
-laudalle,
:lle ratsulle,
eri väriselle ratsulle. Myös eri nappuloille (huom. rajoituksen että nappi ei voi mennä toisen yli voi unohtaa. Uhkaamattomassa tilanteessa sillä ei ole väliä, koska muiden nappuloiden liikkeet ovat lineaariset ja ne uhkaavat jo edessä olevaa nappulaa, jos joutuisivat kulkemaan sen läpi uhatakseen toista).
- Perustele 4-syklien kaava.
