Ä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
Kuljetusongelma, datan tuominen TAUSTAA
Kuljetusongelma
varikko Kuin kauppamatkustajan ongelma, mutta n eri kauppamatkustajaa, ja kaikki palaavat varikolle.
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 Exceltiedosto.
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?
Datan tuontiongelma, liitospäättely, attribuuttiluokittelu, laivastontuonti TEORIAA
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 Excelmuodossa. 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.
tilannekatsaus TÄHÄNASTISET TULOKSET
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ä?