Parinmuodostuksesta tietojenkäsittelytieteen silmin. Petteri Kaski Tietojenkäsittelytieteen laitos Aalto-yliopisto



Samankaltaiset tiedostot
Verkon värittämistä hajautetuilla algoritmeilla

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

Laskennan vaativuus ja NP-täydelliset ongelmat

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Algebra I, harjoitus 5,

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

isomeerejä yhteensä yhdeksän kappaletta.

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Algoritmit 1. Demot Timo Männikkö

Tehtävä 4 : 2. b a+1 (mod 3)

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

Tarkennamme geneeristä painamiskorotusalgoritmia

Luento 9. June 2, Luento 9

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

7.4 Sormenjälkitekniikka

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

Datatähti 2019 loppu

j(j 1) = n(n2 1) 3 + (k + 1)k = (k + 1)(k2 k + 3k) 3 = (k + 1)(k2 + 2k + 1 1)

Algoritmit 1. Luento 1 Ti Timo Männikkö

3 = Lisäksi z(4, 9) = = 21, joten kysytty lineaarinen approksimaatio on. L(x,y) =

Tietotekniikan valintakoe

Nopea kertolasku, Karatsuban algoritmi

Ratkaisu: a) Kahden joukon yhdisteseen poimitaan kaikki alkiot jotka ovat jommassakummassa joukossa (eikä mitään muuta).

Seminaari: Hajautetut algoritmit syksy 2009

Äärellisten mallien teoria

Algoritmit 1. Luento 10 Ke Timo Männikkö

Kombinatorinen optimointi

1. Osoita, että joukon X osajoukoille A ja B on voimassa toinen ns. de Morganin laki (A B) = A B.

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Algoritmit 1. Demot Timo Männikkö

Lisää pysähtymisaiheisia ongelmia

c) 22a 21b x + a 2 3a x 1 = a,

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Turingin koneen laajennuksia

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Abstraktiot ja analyysi algoritmit ja informaation esitykset

Matematiikan ja tilastotieteen laitos Matematiikka tutuksi Harjoitus 2, malliratkaisut

Harjoitustyön testaus. Juha Taina

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Latinalaiset neliöt ja taikaneliöt

Matematiikan ja tilastotieteen laitos Algebra I - Kesä 2009 Ratkaisuehdoituksia harjoituksiin 8 -Tehtävät sivua Heikki Koivupalo ja Rami Luisto

33. pohjoismainen matematiikkakilpailu 2019 Ratkaisut

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

2017 = = = = = = 26 1

811120P Diskreetit rakenteet

Algoritmit 2. Luento 8 To Timo Männikkö

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Miten osoitetaan joukot samoiksi?

Algebran perusteet. 44 ϕ(105) = (105). Näin ollen

Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38

Rekursiiviset palautukset [HMU 9.3.1]

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Tietorakenteet ja algoritmit - syksy

Äärellisten mallien teoria

Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa Linkkikeskukset ja auktoriteetit (hubs and authorities) -algoritmi

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

a 2 ba = a a + ( b) a = (a + ( b))a = (a b)a, joten yhtälö pätee mielivaltaiselle renkaalle.

11. Javan toistorakenteet 11.1

Konsensusongelma hajautetuissa järjestelmissä

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Markkinoiden suunnittelu ja Gale-Shapley-algoritmi

Tehtävä 5 : 1. Tehtävä 5 : 2

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

TE-toimiston ohjeita/vinkkejä ammattiin 2019 valmistuville

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Paikkatiedon käsittely 6. Kyselyn käsittely

811120P Diskreetit rakenteet

Muita rekisteriallokaatiomenetelmiä

10. Esitys ja kuvaus

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

Algoritmit 1. Luento 2 Ke Timo Männikkö

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

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.

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

j n j a b a c a d b c c d m j b a c a d a c b d c c j

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

811120P Diskreetit rakenteet

= 3 = 1. Induktioaskel. Induktio-oletus: Tehtävän summakaava pätee jollakin luonnollisella luvulla n 1. Induktioväite: n+1

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Algoritmit 1. Luento 11 Ti Timo Männikkö

Ohjelmoinnin perusteet Y Python

Nollasummapelit ja bayesilaiset pelit

Signalointi: autonromujen markkinat

Transkriptio:

Parinmuodostuksesta tietojenkäsittelytieteen silmin Petteri Kaski Tietojenkäsittelytieteen laitos Aalto-yliopisto Suomalainen Tiedeakatemia Nuorten Akatemiaklubi 18.10.2010

Sisältö Mitä tietojenkäsittelytieteessä (ja erityisesti algoritmiikassa) tutkitaan? Parinmuodostuksesta vakaat pariutukset (Gale & Shapley 1962) eräs esimerkki omasta työstä: lähes vakaat pariutukset paikallisen laskennan mallissa

Tietojenkäsittelytiede Mitä tehtäviä voidaan automatisoida?... ja miten tämä tehdään tehokkaasti?

Käytäntö Systemaattinen ratkaisumenetelmä (=algoritmi) 75 x 253 225 + 375 Matemaattinen malli & laskentatehtävä + 150 253m 18975 75m 75 x 253 =?

Algoritmi: Systemaattinen ratkaisumenetelmä kaikille mahdollisille syötteille 5 x 9 =? 75 x 253 =? 981 x 584 =?... 35821871745743 x 87412352367121 =? 35821871745743 x 87412352367121 35821871745743 + 71643743491486 + 35821871745743 + 250753102220201 + 214931230474458 + 107465615237229 + 71643743491486 + 179109358728715 + 107465615237229 + 71643743491486 + 35821871745743 + 143287486982972 + 250753102220201 + 286574973965944 3131274075488702980803264512

Kokonaislukujen kertolasku Peruskoulualgoritmi Ainekset: Allekkain yhteenlasku (algoritmi itsessään) Kertotaulu (opetellaan ulkoa) 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 Ohjeet kuinka soveltaa edellisiä kokonaislukujen kertomiseksi (opetellaan ulkoa)

Tietojenkäsittelytiede Mitä tehtäviä voidaan automatisoida?... ja miten tämä tehdään tehokkaasti? Mitä tarkoitamme tehokkuudella?

Tehokkuus Kuinka paljon laskentaresursseja kuluu annetun tehtävän ratkaisuun (käytettäessä määrättyä algoritmia)? Resursseja Aika (kauanko ratkaisussa kestää?) Tila (paljonko muistia tarvitaan?) Energia (kuinka suuri sähkölasku?) Tiedonsiirto (montako bittiä siirretään?)... (montako lähetys/vastaanotto -kierrosta tarvitaan?)

Peruskoulu - kertolaskualgoritmin syöte koostuu n-numeroisista karkea analyysi Paljonko aikaa tarvitaan? (n funktiona) luvuista (tässä n=14) { }} { 35821871745743 x 87412352367121 35821871745743 + 71643743491486 + 35821871745743 + 250753102220201 + 214931230474458 + 107465615237229 + 71643743491486 + 179109358728715 + 107465615237229 + 71643743491486 + 35821871745743 + 143287486982972 + 250753102220201 + 286574973965944 3131274075488702980803264512

Paljonko aikaa tarvitaan? (n funktiona) ~ aika on karkeasti verrannollinen tarvittavaan ruutupaperipintaalaan ~ karkeasti n² ruutua syöte koostuu n-numeroisista luvuista (tässä n=14) { }} { 35821871745743 x 87412352367121 35821871745743 + 71643743491486 + 35821871745743 + 250753102220201 + 214931230474458 + 107465615237229 + 71643743491486 + 179109358728715 + 107465615237229 + 71643743491486 + 35821871745743 + 143287486982972 + 250753102220201 + 286574973965944 3131274075488702980803264512

Tietojenkäsittelytiede Mitä tehtäviä voidaan automatisoida?... ja miten tämä tehdään tehokkaasti? Voidaanko tehtävä ratkaista tehokkaammin?

Sisältö Mitä tietojenkäsittelytieteessä (ja erityisesti algoritmiikassa) tutkitaan? Parinmuodostuksesta vakaat pariutukset (Gale & Shapley 1962) esimerkki omasta työstä: lähes vakaat pariutukset paikallisen laskennan mallissa

Parinmuodostuksesta Käytännössä on usein tarvetta muodostaa pareja Esimerkkejä: Parisuhteet Työpaikat ja työntekijät Koulutuspaikat ja opiskelijat Ostajat ja myyjät...

Käytäntö Systemaattinen ratkaisumenetelmä (=algoritmi) Matemaattinen malli & laskentatehtävä

Työpaikat ja työntekijät Työntekijät hakevat työpaikkoja omien mieltymystensä mukaan (työn mielekkyys, palkka,...) Työnantajat täyttävät työpaikkoja omien mieltymystensä mukaan (hakijan pätevyys, koulutustausta,...) Tavoitteena on muodostaa vakaa joukko työsuhteita

Työpaikat ja työntekijät x a työpaikka y z b c työntekijä mahdollinen pari

Mieluisuusverkko x: a>b>c x a a: x>y>z y: c>b>a y b b: x>z>y z: b>c>a z c c: z>x>y Oletetaan, että a) kukin työntekijä on järjestänyt mahdolliset työpaikkansa b) kukin työpaikka on järjestänyt mahdolliset työntekijänsä mieluisuuden mukaan

Pariutus x: a>b>c x a a: x>y>z y: c>b>a y b b: x>z>y z: b>c>a z c c: z>x>y Pariutus on joukko erillisiä (mahdollisia) pareja

Rikkuriparit x: a>b>c x a a: x>y>z y: c>b>a y b b: x>z>y z: b>c>a z c c: z>x>y Mahdollinen pari on rikkuripari jos sen osapuolet ovat a) ilman paria, tai b) pitävät rikkuriparistaan nykyistä pariaan enemmän

Vakaa pariutus x: a>b>c x a a: x>y>z y: c>b>a y b b: x>z>y z: b>c>a z c c: z>x>y Pariutus on vakaa jos mikään mahdollinen pari ei ole rikkuripari

Laskentatehtävä: Etsi vakaa pariutus (tai totea ettei sellaista ole) x: a>b>c x a a: x>y>z y: c>b>a y b b: x>z>y z: b>c>a z c c: z>x>y

Käytäntö Systemaattinen ratkaisumenetelmä (=algoritmi) Matemaattinen malli & laskentatehtävä

Kosinta-algoritmi (Gale & Shapley 1962) A) Jokainen työntekijä 1) ei tee mitään jos hän on ehdolla työpaikkaan, tai 2) hakee mieluisinta paikkaa, josta häntä ei ole vielä hylätty (jos tällaisia löytyy) B) Jokainen työpaikka 1) ei tee mitään jos uusia hakemuksia ei saavu, tai 2) hylkää kaikki paitsi mieluisimman hakijan (mahdollinen ehdokas aiemmalta kierrokselta lasketaan hakijaksi), ja ilmoittaa mieluisimmalle hakijalle, että hän on ehdolla paikkaan Toistetaan A & B kunnes hylkäyksiä ei tule, jolloin ehdollisista työsuhteista tulee lopullisia

A) Työntekijät hakevat mieluisinta paikkaa x: a>b>c x a a: x>y>z y: c>b>a y b b: x>z>y z: b>c>a z c c: z>x>y

B) Työpaikat valitsevat mieluisimman hakijan x: a>b>c x EHDOLLA a a: x>y>z y: c>b>a y HYLKÄYS b: x>z>y b z: b>c>a z EHDOLLA c c: z>x>y

A) Työntekijät hakevat mieluisinta paikkaa x: a>b>c x EHDOLLA a a: x>y>z y: c>b>a y b b: x>z>y EHDOLLA z: b>c>a z c c: z>x>y

B) Työpaikat valitsevat mieluisimman hakijan x: a>b>c x EHDOLLA a a: x>y>z EHDOLLA y: c>b>a y b b: x>z>y z: b>c>a z HYLKÄYS c c: z>x>y

A) Työntekijät hakevat mieluisinta paikkaa x: a>b>c x EHDOLLA a a: x>y>z EHDOLLA y: c>b>a y b b: x>z>y z: b>c>a z c c: z>x>y

B) Työpaikat valitsevat mieluisimman hakijan x: a>b>c x EHDOLLA a a: x>y>z EHDOLLA y: c>b>a y b b: x>z>y z: b>c>a z HYLKÄYS c c: z>x>y

A) Työntekijät hakevat mieluisinta paikkaa x: a>b>c x EHDOLLA a a: x>y>z EHDOLLA y: c>b>a y b b: x>z>y z: b>c>a z c c: z>x>y

B) Työpaikat valitsevat mieluisimman hakijan x: a>b>c x EHDOLLA a a: x>y>z EHDOLLA y: c>b>a y b b: x>z>y EHDOLLA z: b>c>a z c c: z>x>y

Ei hylkäyksiä lopullinen pariutus x: a>b>c x a a: x>y>z y: c>b>a y b b: x>z>y z: b>c>a z c c: z>x>y

Algoritmi: Systemaattinen ratkaisumenetelmä kaikille mahdollisille syötteille

Havaintoja (1/2) Olkoon työpaikkoja ja työnhakijoita molempia n kappaletta Olkoon kullakin työpaikalla ja työntekijällä enintään d mahdollista paria Väite. Tällöin kosinta-algoritmi pysähtyy enintään n x d kierroksessa Perustelu: Jokaisella kierroksella ennen pysähtymistä hylätään ainakin yksi hakija Hylkäyksen saatuaan työntekijä ei enää hae kyseistä paikkaa

Havaintoja (2/2) Väite. Kosinta-algoritmi tuottaa vakaan pariutuksen Perustelu: Olk. XA mielivaltainen mahdollinen pari X A Jos A jää ilman paria, X on hylännyt A:n hakemuksen (mieluisamman ehdokkaan hyväksi), joten XA ei voi olla rikkuripari Olkoon siis A:n pari Y Jos A:Y>X, tällöin XA ei ole rikkuripari (A ei tahdo rikkoa) Y X A Olkoon siis A:X>Y, jolloin X on hylännyt A:n hakemuksen, ja siten XA ei voi olla rikkuripari

Yhteenveto (Gale & Shapley) Esitetyssä mallissa on siis aina olemassa ainakin yksi vakaa pariutus... joista yhden kosinta-algoritmi löytää enintään n x d kierroksessa n ~ työpaikkojen/työntekijöiden määrä d ~ yläraja kunkin työpaikan/työntekijän mahdollisille pareille

Käytäntö Systemaattinen ratkaisumenetelmä (=algoritmi) x a y b z c Matemaattinen malli & laskentatehtävä

Käytäntö Systemaattinen ratkaisumenetelmä (=algoritmi) x a y b z c Matemaattinen malli & laskentatehtävä

Käytännössä...... n voi olla hyvinkin suuri... parinmuodostukseen ei käytetä n x d kierrosta... eikä kurinalaisesti käytetä kosinta-algoritmia... rikkureita löytyy... mieltymykset muuttuvat...

Kysymys Entäpä jos käytämme jotakin muuta menettelyä onko ylipäätään mahdollista löytää vakaa pariutus merkittävästi alle n kierroksessa?... jos oletamme, että jokainen solmu (=työpaikka/ työntekijä) tuntee alussa vain omat mieltymyksensä ja mahdolliset parinsa (=solmun naapurit)... ja että kukin solmu joka kierroksella 1. vastaanottaa viestin jokaiselta naapuriltaan 2. suorittaa itsenäistä laskentaa 3. lähettää viestin jokaiselle naapurilleen

Havainto: Vakaat pariutukset ovat herkkiä pienille muutoksille mieltymyksissä 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1

Viestintärajoitteiden vuoksi T kierroksessa voimme nähdä vain 2T mahdollisen parin päähän... näin ollen oikea laita ei näe vasenta laitaa kuin vasta likimain n kierroksen kuluttua 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 A: 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 B: 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1

Havainto Rikkuriparit ovat siis (oletetussa mallissa) väistämättömiä ellemme käytä pariutuksen etsimiseen likimain n kierrosta Käytännössä rikkuripareja ei isoissakaan verkoissa kuitenkaan vaikuta olevan kovin paljon pystyisimmekö selittämään havaintoa (mallimme pohjalta)?

Kysymys Entäpä jos suoritamme kosinta-algoritmia vain T kierrosta, missä T on huomattavasti pienempi kuin n x d?... tällöin emme yleisesti ottaen löydä vakaata pariutusta... mutta kuinka nopeasti rikkuriparien lkm suhteessa ehdolla olevien parien lkm pienenee kun T kasvaa?... erityisesti, saadaanko tämä suhdeluku mielivaltaisen pieneksi riippumatta verkon solmujen määrästä? (ts. riippumatta n arvosta)

Väite. Tarkastellaan kaksijakoista mieltymysverkkoa, jossa on ainakin yksi mahdollinen pari. Tällöin kosinta-algoritmin kierroksen T =5, 6,... lopussa pätee R E 2d2 T 4, missä R on rikkuriparien lukumäärä, E on ehdolla olevien parien lukumäärä, ja d on yläraja kunkin solmun naapurien lukumäärälle.

Sisältö Mitä tietojenkäsittelytieteessä (ja erityisesti algoritmiikassa) tutkitaan? Parinmuodostuksesta vakaat pariutukset (Gale & Shapley 1962) eräs esimerkki omasta työstä: lähes vakaat pariutukset paikallisen laskennan mallissa

Kiitokset Patrik Floréen, Valentin Polishchuk, Jukka Suomela Suomen Akatemia, projektit 116547, 117499, 118653 (ALGODAN) Helsinki Graduate School in Computer Science & Engineering (Hecse) Nokian Säätiö Algorithms & Complexity Group / U. Glasgow