Tassu Takala 3.10.2016 3.10.2016! Verkostot / Tassu Takala! 1!
August 2011 Web Server Survey! Millainen verkko on! Internet?! WWW?! Kuinka verkko rakentuu?! Mitä verkossa tapahtuu?! link 3.10.2016! to Feb 2016: https://news.netcraft.com/archives/2016/02/22/february-2016-web-server-survey.html Verkostot / Tassu Takala! 2!!
Internet back bone in Europe! 3.10.2016! Verkostot / Tassu Takala! 3!
en.wikipedia.org/wiki/file:internet_map_1024.jpg Internetin rakenne! 3.10.2016! Verkostot / Tassu Takala! 4!
Sosiaalinen media! sosiaalisten verkostojen kehittämistä ja ylläpitämistä WWW-alustalla henkilökohtainen näkyvyys, työnhaku, palvelujen välittäminen, keskustelu, jne. millaisia sosiaaliset viestintäverkostot ovat rakenteeltaan? 3.10.2016! Verkostot / Tassu Takala! 5!
Käsitekaaviot! Mindmap vapaiden assosiaatioiden kuvausta Entity-Relationship Diagram (ERD) formaali jäsennys semanttisille suhteille esim. tietokantojen suunnittelua varten "semanttinen verkko" Unified Modeling Language (UML) erityisesti olioohjelmoinnin työkaluna 3.10.2016! Verkostot / Tassu Takala! 6!
Putting semantic meaning into web pages, not just words. Semanttinen Web! Content Providers Semantic Metadata kulttuurisampo! National Ontology Infrastructure 3.10.2016! Verkostot / Tassu Takala! 7!
Mahdollisuuksien verkot" ja päätöksenteko! aineksina tapahtumien kausaalisuussuhteet ja ehdolliset todennäköisyydet! systeemianalyysi: eri mahdollisuuksien kartoitus ja vaikutusten arviointi päätöksenteon tueksi! peliteoria, tekoälyalgoritmit! keskimääräisten vaikutusten laskeminen" esim. vakuutusten hinnoittelussa! poliittiset päätökset, " esim. ilmastonsuojelu! Bayes-verkot: havaintoja" selittävien tekijöiden estimointia! 3.10.2016! Verkostot / Tassu Takala! 8!
topologia = oppi naapuruuksista! Maantieteelliset verkostot" (ei vakiintunutta nimitystä)! naapuruussuhteet perustuvat fyysiseen läheisyyteen, ei pelkkään informaatioon! esim. logistiikka! verkkoteorian alkujuuria: Königsbergin sillat (L.Euler)! voiko kävelylenkillään mennä tasan kerran jokaisen sillan yli?! 3.10.2016! Verkostot / Tassu Takala! 9!
Liikenne! maantiet vs. lentoreitit entä joet?! 3.10.2016! Verkostot / Tassu Takala! 10!
Geometriset 3D-mallit! vertex (solmu): sijantikoordinaatit edge (kaari): monitahokkaan särmä face: särmäketjun rajaama monikulmio usein lisäksi duaaliverkko: tahojen naapuruudet 3.10.2016! Verkostot / Tassu Takala! 11!
Eulerin luku! 3.10.2016! Verkostot / Tassu Takala! 12!
Eulerin luku! pätee jokaiselle monitahokkaalle, jonka särmät muodostavat tasoverkon 3.10.2016! Verkostot / Tassu Takala! 13!
Ilmiöitä verkostoissa! informaation leviäminen! logistiikka: materiaalin (ihmisten / eliöiden / esineiden) siirtyminen! dynaamisia ilmiöitä! epidemiat (tautien leviäminen)! uutiset ja juorut (tiedon leviäminen)! laumailmiöt, kansanliikkeet! perustana ketjureaktio:"!kuinka verkon solmut vaikuttavat naapureihinsa?! emergenssi = odottamaton ilmiö! yksinkertaisista naapuruusvaikutuksista voi syntyä laajana havaittava kokonaisuus! 3.10.2016! Verkostot / Tassu Takala! 14!
Fysikaalisten ilmiöiden mallintaminen mallinnetaan jatkuvaa materiaalia " diskreetteinä palasina ja niiden riippuvuussuhteina "!! verkko! riittävän tiheä osiinjako antaa hyvän approksimaation! vrt. määrätty integraali! differentiaaliyhtälö vs. differenssiyhtälö! mallinnettua ilmiötä voidaan simuloida! esim. lämmön johtuminen, aaltoliikkeen leviäminen! äärimmillään jatkuva materiaalikin koostuu atomeista! 3.10.2016! Verkostot / Tassu Takala! 15!
Elementtimenetelmä (FEM)! 3.10.2016! Verkostot / Tassu Takala! 16!
Kemia / tilastollinen fysiikka! Molekyylien koostumus mitkä kytkennät" ovat mahdollisia atomien välillä?" esim. steroidirunko (ABCD) monien" tärkeiden aineiden perustana:! kolesteroli Monet verkostotieteen menetelmät ja " havaitut ilmiöt muistuttavat " hiukkasfysiikkaa! Atomien / molekyylien " takertuminen toisiinsa," kun aine kiinteytyy tai" nesteytyy.! NB. tästä syystä paljon verkostotieteen tuloksia fysiikan alan julkaisuissa! 3.10.2016! Verkostot / Tassu Takala! 17!
Dynaamisesti muuttuvat verkot! kasvava/vähenevä verkko (esim. kaveripiiri)! liikkuvien olioiden naapuruussuhteet! linnut tarkkailevat vain lähinaapureitaan, " joihin sopeuttavat oman lentonsa! emergentti ilmiö: parvikäyttäytyminen! periaatteita ja demo! http://www.red3d.com/cwr/boids/! 3.10.2016! Verkostot / Tassu Takala! 18!
3.10.2016! Verkostot / Tassu Takala! 19!
3.10.2016! Verkostot / Tassu Takala! 20!
3.10.2016! Verkostot / Tassu Takala! 21!
3.10.2016! Verkostot / Tassu Takala! 22!
3.10.2016! Verkostot / Tassu Takala! 23!
3.10.2016! Verkostot / Tassu Takala! 24!
3.10.2016! Verkostot / Tassu Takala! 25!
Verkostotyyppejä: tasoverkot Verkko on tasoverkko, jos se voidaan piirtää tasoon niin, etteivät kaaret leikkaa toisiaan Onko neljän solmun täydellinen verkko tasoverkko?!...entä viiden?! Jos aluejakoa esittävän tasoverkon G rajaamat alueet esitetään solmuina ja alueiden naapuruudet kaarina, syntyy duaaliverkko G' kartan väritysongelma: riittääkö neljä väriä? (Wikipedia: Four color theorem)! 3.10.2016! Verkostot / Tassu Takala! 26!
Kertausta peruskäsitteitä: solmu (node) ja kaari (edge)! polku (jono perättäisiä kaaria solmusta toiseen)! asteluku (solmuun liittyvien kaarien määrä)! verkkojen ominaisuuksia! täydellinen (kaikkien mahdollisten solmuparien välillä kaari)! yhtenäinen (joka solmusta polku jokaiseen muuhun)! jollei, muodostuu useammasta yhtenäisestä komponentista! puu (ei silmukoita, vaan yksikäsitteinen polku joka solmuparin välillä)! suunnattu (kaarilla on alku- ja loppusolmu)! rakennetyyppejä! ketju, hila, puu (säännöllisenä toistuva rakenne)! satunnainen (kaaria luotu satunnaisesti solmujen välille)! 3.10.2016! Verkostot / Tassu Takala! 27!
ks. määritelmistä esim. Wikipedia: 'Graph (mathematics)'! Sanastoa! Verkko, verkosto: network Graafi: graph Solmu: node, vertex Kaari: link, edge Nimike: attribute Kaaren paino: edge weight Aste: degree Astejakauma: degree distribution Naapuri: neighbo(u)r Naapurusto: neighbo(u)rhood Polku: path Lyhin polku: shortest path Halkaisija: diameter Adjasenssimatriisi: adjacency matrix Puu: tree Metsä: forest Säännöllinen verkosto: regular network Satunnaisverkosto: random network 3.10.2016! Verkostot / Tassu Takala! 28!
Graafialgoritmeja kuinka verkkoja esitetään tietokoneessa? kuinka niiden ominaisuuksia voidaan laskennallisesti määritellä?! 1. Verkon esitystapa tietorakenteena 2. Kiinnostavien ominaisuuksien laskenta 3. Optimointitehtäviä 4. Verkostojen visualisointi 3.10.2016! Verkostot / Tassu Takala! 29!
Verkko tietorakenteena Linkitetty listarakenne luonnostaan suunnattu verkko suuntaamaton esitetään usein kaksisuuntaisena Lineaarinen lista eri listoina solmut ja kaaret <solmuparit> Vierusmatriisi matemaattisesti kätevä, taulukko tehoton implementaationa Aputietorakenteita solmujen ominaisuudet: laji, nimi (label), väri, numero, tms. kaarien ominaisuudet: vahvuus (weight), yms. ylimääräinen linkitys algoritmeja tehostamaan, esim. käänteiskaaret verkon komponenttien juurisolmut tilapäiset ominaisuudet, esim. onko algoritmi jo käynyt solmussa geometriset piirteet: solmun sijainti, kaaren reitti { 1, 2, 3, 4, 5 }! { <1,2> <1,5> <2,5> <2,4> <2,3> <4,3> <4,5> }! 1 2 3 4 5 1 x x 2 x x x x 3 x x 4 x x x 5 x x x 3.10.2016! Verkostot / Tassu Takala! 30!
Algoritmien tietolähteitä Wikipedia: Graph Algorithms Depth-first search, Breadth-first search, Connected_component_(graph_theory), Minimum spanning tree, Graph drawing LEDA-ohjelmiston tutoriaali http://www.leda-tutorial.org/en/unofficial/ch05.html Kirjasto ja demo-koodia Scalalla http://www.scala-graph.org/guides/core-introduction.html 3.10.2016! Verkostot / Tassu Takala! 31!
Verkon läpikäynti (traversal) Perustoiminto monissa algoritmeissa. Yleisperiaate! 1. valitse aloitussolmu! 2. etsi seuraava solmu! 3. jatka, kunnes kaikki on käsitelty! Lineaarinen solmulista: kaaret eivät vaikuta järjestykseen, ei seurata verkon polkuja! Linkkien seuraaminen: vaihtoehtoja käsittelyjärjestykselle! breath-first search (BFS): käsitellään nykyisen solmun jälkeen kaikki sen naapurit, sitten niiden naapurit, jne.! depth-first search (DFS): haetaan ensin nykyisen solmun ensimmäinen naapuri ja kaikki sen seuraajat, sitten seuraava naapuri loppuun asti jne.! eroa siinä käsitelläänkö lähtösolmu ennen sen seuraajia (prefix) vai niiden jälkeen (postfix)! Pidettävä yllä tietoa, mitkä osat verkosta jo käsitelty! puurakenteissa rekursion avulla! muuten merkittävä käsitellyt solmut erikseen! 3.10.2016! Verkostot / Tassu Takala! 32!
Perusalgoritmeja Suuntaamattoman verkon täydentäminen kaksisuuntaiseksi kaarilistaan lisätään jokaisen kaaren käänteiskaari (a,b)! (b,a) Asteluvun laskenta kullekin solmulle sen linkkilistan pituus suuntaamaton verkko ensin kaksisuuntaiseksi tilastoinnissa käydään kaikki solmut läpi ja kerätään astelukujakauma histogrammina Muita lokaaleja ominaisuuksia, esim. täydellisyys (jokaisen solmun asteluku = N-1) naapurusto (solmun naapurit = linkkilista) klusteroituminen (naapuruston keskinäisten linkkien määrä) muodosta lista solmun naapureista laske kustakin tämän osaverkon solmusta, kuinka moni linkki osoittaa saman listan solmuihin (NB. brute force, ei kovin tehokas) 3.10.2016! Verkostot / Tassu Takala! 33!
Polun löytäminen Haettava (lyhin) polku annetusta lähtösolmusta tavoitesolmuun Breath-first search merkitään käsiteltyyn solmuun aina siihen saakka edenneen polun pituus L lähtösolmussa L = 0 solmun seuraajaan siirryttäessä L kasvaa yhdellä lopetetaan, kun tavoitesolmu saavutettu Tuloksena aina lyhin mahdollinen polku Esimerkki: (Dictionary arrays) "How far is it from LOVE to PAIN?" http://www.leda-tutorial.org/en/unofficial/ch03s02.html#sec.breadthfirstsearch! NB. verkon halkaisijan laskenta vaikeaa tehdä tehokkaasti (brute force: hae lyhin polku kaikkein soluparien välillä ja valitse näistä pisin) 3.10.2016! Verkostot / Tassu Takala! 34!
Komponenttien etsintä Verkko on yhtenäinen, jos jokaisesta solmusta on polku kaikkiin muihin. Verkon yhtenäiset osat ovat komponentteja Algoritmi 1. valitse alkusolmu ja komponentin tunnus 2. käy läpi kaikki siitä rekursiivisesti tavoitettavat solmut (BFS tai DFS -periaatteella) 3. merkitse tunnuksella jokainen läpikäyty solmu 4. haun päätyttyä etsi listasta seuraava vielä merkitsemätön solmu, toista haku ja merkintä uudella tunnuksella Sovellus: yhtenäisten alueiden hakeminen digitaalisesta kuvasta naapuruus = (saman väristen) pikseleiden vierekkäisyys (4 tai 8 kpl) http://en.wikipedia.org/wiki/flood_fill Vahvat komponentit (strongly connected component) ovat suunnatun verkon osia, joissa jokaisesta solmusta on suunnattu polku kaikkiin muihin! Tarjan's algorithm 3.10.2016! Verkostot / Tassu Takala! 35!
Optimointitehtäviä (LEDA tutorial 5.3.4-6) Network flow suunnatut kaaret kuvaavat logistista virtausta solmujen välillä; kullakin kaarella rajoitteena maksimikapasiteetti tavoitteena maksimoida kokonaisvirtaus lähtösolmusta (tuottaja) tavoitesolmuun (kuluttaja), muiden solmujen tuleva ja lähtevä virtaus samat Matching bipartiittisen verkon solmut voidaan jakaa kahteen joukkoon, joiden välillä on kaaria, muttei joukkojen sisällä esimerkkinä deittipalvelun optimointi: kaaret kuvaavat potentiaalisia pareja, tehtävänä on yhdistellå maksimaalinen määrä pariskuntia Minimum spanning tree haettavana painotetussa verkossa virittävä puu, jonka kokonaiskustannus minimoituu sovellus: sähköverkon optimointi Traveling salesman haettava painotetussa verkossa reitti jokaisen solmun kautta (ja paluu lähtösolmuun) siten että kokonaiskustannus minimoituu tunnettu NP-täydellinen ongelma, ts. ei ole olemassa algoritmista ratkaisua joka teoreettisesti olisi parempi kuin kaikkien vaihtoehtojen selaus (käytännössä on) 3.10.2016! hauska sovellus: http://www.makerbot.com/blog/2012/03/12/single-line-art-traveling-salesman-problem-tutorial/ Verkostot / Tassu Takala! 36!!
Verkon visualisointi Abstraktilla verkolla ei ole ulkomuotoa, mutta verkko voidaan upottaa (embed) tasoon (tai avaruuteen) ja piirtää näkyviin Hyvän visualisoinnin ominaisuuksia esitettävät tiedot (solmut, kaaret, nimikkeet ) erottuvat solmut sopivan kaukana toisistaan kaaret eivät leikkaa toisiaan (toteutuu täysin vain tasoverkoille) verkkoon liittyvä semanttinen tieto nähtävissä esim. organisaation hierarkiatasot kompleksisen verkon kiinnostavat osat korostettuina visualisointi voidaan tuottaa automaattisesti myös estetiikalla merkitystä Usein kompromissi eri vaatimuksista Huom. visualisointi ohjaa vahvasti sitä, millaiseksi verkon merkitys tulkitaan! demoja: yed www.yworks.com 3.10.2016! Verkostot / Tassu Takala! 37! Aalto People http://data.aalto.fi/peopleforce.html
Yleisiä hahmotuslakeja Gestalt rules (eri variaatioita, ks. esim. http://isabelmeirelles.com/infodesignresource/ ) Proximity Similarity Closure Continuity, connectedness Common fate Simplicity ("Good Gestalt") Figure / ground 3.10.2016! Verkostot / Tassu Takala! 38!
Layout-algoritmeja Puurakenne sijoitellaan solmut eri tasoille BFS-järjestyksessä vaihtoehtona kehärakenne, puun juuri keskellä Bipartiittinen verkko kaksi riviä/kehää, joiden välillä minimoidaan kaarien risteävyys Suunnattu verkko pyritään luomaan solmuille osittaisjärjestys, jonka mukaisesti sijoitellan tasoille/kehille esim. projektikaaviot (PERT, Gant) Yleinen (yhtenäinen) verkko kehä: sijoitellaan solmut kehälle halkaisijan mukaisessa järjestyksessä, loput kaaret piirretään kehän sisälle jousimalli: sijoitellaan solmut aluksi satunnaisesti tasoon, iteroidaan sitten niin että "rangaistusfunktio" minimoituu: kuhunkin solmuväliin kohdistuu "jousivoima" joka vetää saapuvien kaarien lähdettä kohti ja työntää pois päin lähtevien kaarien kohteista lisäksi (ilman kaarta) liian lähellä olevat solmut hylkivät toisiaan sijoitetaan vahvasti kytkeytyneet komponentit eri alueille Semanttinen sijoitellaan solmuja/kaaria niiden merkitysten mukaisesti totunnaisilla tavoilla yleisesti hyvin vaikea onelma 3.10.2016! Verkostot / Tassu Takala! 39!
Luentotehtävä Sijoita itsesi ja lähiystävä- tai sukulaisverkostosi kuvitteelliselle kartalle (samassa taloudessa elävät kuuluvat samaan solmuun). Voit olettaa verkoston olevan yhtenäinen. Merkitse kukin solmu aakkosin (itse olet solmu A). Aiot vierailla jokaisen ystävän/sukulaisen luona. Mikä on vierailujärjestys, jos sovellat verkoston läpikäyntiin (a) DFS-hakua tai (b) BFS-hakua? 3.10.2016! Verkostot / Tassu Takala! 40!