Antoine Kalmbach ane@ikiusers.jyu.fi/~jhaka/gradu-seminaari/esitykset/kalmbach.pdf•Päätöspuut....

Post on 17-Dec-2020

1 views 0 download

Transcript of Antoine Kalmbach ane@ikiusers.jyu.fi/~jhaka/gradu-seminaari/esitykset/kalmbach.pdf•Päätöspuut....

Älykäs datan tuonti kuljetusongelman optimoinnissa

Antoine Kalmbach

ane@iki.fi

Sisällys

• Taustaa

• Kuljetusongelma

• Datan tuominen vaikeaa

• Teoriaa

• Tiedostojen väliset linkit

• Mikä sarake on mikäkin?

• Ratkaisutoteutus – laivaston päättely

• Tähänastiset tulokset

TAUSTAA Kuljetusongelma, datan tuominen

Kuljetusongelma

Kuin kauppamatkustajan ongelma, mutta n eri kauppamatkustajaa, ja kaikki palaavat varikolle.

varikko

Kuljetusongelmasta

Kuljetusongelmasta

• NP-vaikea ongelma.

• Tarkan ratkaisun etsintä isoissa tapauksissa toivotonta.

• Avuksi heuristiikat ja metaheuristiikat.

• Algoritmien pyörityksen hoitaa laskentaohjelmisto (engl. solver)

Tilanne: optimointia palveluna

• Haluamme myydä optimointia palveluna.

• Asiakkaat lähettävät ongelmadatan, takaisin ratkaistuna.

• Esim. Rekka-Pena Oy haluaa optimoida kuljetusfirmansa reittejä.

• Rekka-Pena Oy lähettää datan jossain muodossa, yleensä ennalta sovittu Excel-tiedosto.

Mahdollisuus: löysä formaatti

• Esitäytetyn Excel-mallin täyttäminen ankeaa.

• Asiakkaalla data yleensä eri muodossa.

• Helppoa olisi, jos voisimme lukea mitä tahansa dataa.

Datan tuontiongelma.

Halutaan tukea monta formaattia, joita emme edes etukäteen tunne täysin.

Tarvitaan automaattista päättelyä. Miten tämä tehdään?

TEORIAA Datan tuontiongelma, liitospäättely, attribuuttiluokittelu, laivastontuonti

Datan tuontiongelma

Tai, pelkoa ja inhoa relaatioviidakossa

TAVOITE:

Päättele datasta asiakkaan ajoneuvot ja sijainnit, eli laivasto.

Ajoneuvo

• Yleinen termi. Voi olla rekka, bussi, henkilöauto, helikopteri, laiva, panssarivaunu, tähtilaiva, taisteluplaneetta...

• Datassa seuraavat asiat:

• Tunniste (esim. rekisterinumero)

• Kapasiteetti (jos kapasitoitu VRP)

• Yleisesti, tunniste i ja rajoitteet .

Sijainti

• Jokin paikka kartalla. Esimerkiksi osoite tai koordinaatti.

• Sisältää kapasitoidun VRP:n tapauksessa positiivisen tai negatiivisen kuormamäärän, eli tilattu tavara (tai noudettava).

• Aikaikkuna-rajoitetun VRP:n tapauksessa sisältää aikaikkunan, minkä aikana sijainnissa pitää käydä, sekä käyntiajan.

DATA

Datan formaatti

• Tähänastiset asiakastilaukset ovat olleet Excel-muodossa.

• Toisin sanoen, taulukot, eli CSV.

• Abstraktimmin: relaatiot.

• Jokainen sarake on attribuutti, jolla on tietotyyppi.

Relaatioiden väliset yhteydet

• Ensimmäinen ongelma.

• Dokumentissa monta relaatioita, jotka ovat kytköksissä toisiinsa.

• Tietokantamaailmasta tuttu primary ja foreign key –tapaus.

• Yksi sarake sisältää rekisterinumeron. Tätä käytetään kahdessa relaatiossa tunnisteena.

• Yksi relaatio sisältää valmistajan ja kapasiteetin, toinen sisältää huoltotiedot (esim.)

Relaatioiden väliset yhteydet

• Tavoite:

• Sulauta relaatiot yhdeksi etsimällä sopivat avaintunnisteet.

• Niin ettei dataa katoa ja tärkeä tieto säilyy.

• Nimi: join inference eli liitospäättely.

• Muodostettu relaatio sisältää nyt koko laivaston nätissä paketissa.

• Mikä attribuutti on mikäkin?

Attribuuttien luokittelu

• Tiedämme, mitä attribuutteja etsitään.

• Ajoneuvojen kapasiteetteja, osoitteita, tilauksia, tunnisteita…

• Ratkaisu: päätellään attribuuttien datasta, mikä on mikäkin.

• Esim. kapasiteettiattribuutille tuskin kuuluu sarake jonka tiedot ovat muotoa ”hevonen” tai ”Mörkökuja 1Y 2B”.

RATKAISU: Koneoppiminen

Koneoppiminen lyhyesti

• Opetellaan datasta malli ja käytetään sitä ennustamiseen.

• Käyttötarkoituksena esimerkiksi luokittelu, regressio, suosittelu, klusterointi…

• Oppimistilanteita: • Valvottu (supervised learning)

• Ei-valvottu (unsupervised)

• Osittain valvottu (semi-supervised)

• Jatkuva (online)

• Palautepohjainen (reinforcement)

Konseptit & Hypoteesit

• Tavoite: opettele jokin konsepti.

• Esimerkiksi mikä on spämmiä ja mikä ei.

• Yleisesti jokin funktio esimerkeistä X luokkiin Y.

• Binäärisessä luokitteluongelmassa Y = {0, 1}.

• Algoritmin tehtävä on muodostaa hypoteesi, joka vastaa opeteltavaa konseptia.

Laivastopäättelyn oppiminen

1. Opettele tunnistamaan, mikä sarake linkittää relaatiot toisiinsa. Yksi luokittelija, joka tietää mitä etsiä.

2. Opettele tunnistamaan, mikä sarake vastaa mitäkin laivastotietuetta. Yksi luokittelija per tietue, joista yksi aina antaa positiivisen tuloksen.

Menetelmä

• Päätöspuut.

• Jakavat avaruuden rekursiivisesti osiin.

• Päätöspuun oppiminen:

• Muodosta päätöspuu katselemalla dataa.

• Edut: nopeita ja intuitiivisia.

• Ongelmat: saattavat kasvaa liian isoksi.

TÄHÄNASTISET TULOKSET tilannekatsaus

Liitospäättelyn luokittelija

• Päätöspuilla tehty.

• Opetusdataa paljon, koska yleinen ongelma.

• IMDB, MovieLens, Last.fm, Delicious –datasetit opetusdatana (http://ir.ii.uam.es/hetrec2011/datasets.html)

• Kokeiltu omaan testidataan asiakkaille ja se…

• Toimii.

Attribuuttien luokittelija

• Työn alla.

• Kaksi tietuetta seitsemästä jo rakennettu luokittelijoineen.

• Opetusdatana esim. kapasiteettien tapauksessa asiakkaiden data, osoitteiden kanssa postin osoitetietokannat.

Tehtävää

• Attribuuttien luokituksen viimeistely ja yhtenäistäminen.

• Käytettyjen piirteiden listaaminen. Uusia kehitetty.

• Testaaminen ja tuloksien raportointi.

• Vertailu.

• Tämä siis konstruktiivisen osan loppu.

Lopuksi

• Gradun teoriaosasta valmiina 90%.

• Koodauksen valmistuttua seuraa konstruktiivisen osion dokumentointi.

• Lopullinen sivumäärä noin sata (nyt 50).

• Painoarvoa tuloksilla ja menetelmän dokumentoinnilla.

• Kysymyksiä?