Časovna omrežja / naloge

projekt

Pred začetkom dela bi se rad pogovoril z izvajalcem posamezne naloge.

Knjižnica TQ je še v razvoju. Najbrž bo doživela še različne spremembe. Poleg razširitev najbrž še preimenovanje funkcij po neki “standardni” shemi. Utegnejo se spremeniti tudi zvrsti argumentov - morda bodi vsi podatki o omrežju združeni v ustrezen nabor (tuple).

1. Ianus

Naloga je obsežnejša in zahteva nekoga, ki zelo dobro obvlada slikovne vmesnike v Pythonu (enega od tkinter, Wx, Qt) in sam Python.

Cilj naloge je priprava ogrodja programa Ianus - uporabniškega vmesnika (podobnega vmesniku v Pajku) za novo knjižnico TQ (temporal quantities), ki je v razvoju. Trenutno zmore že precej stvari.

Naloga je odprta za izboljšave. V nadaljevanju bo potrebno dodati še marsikaj:

  • upravljanje s pomnilnikom
  • beleženje zgodovine, “štopanje” trajanja ukazov
  • možnost, da uporabnik kako stvar reši programsko
    • ali lahko uporabnik doda svoje ukaze v zapakirani Ianus? (prazne funkcije TQ.funcUser, knjižnica User, …)
  • postopek pakiranja Ianusa v izvršljivo datoteko Ianus.exe - glej cx-freeze
  • i18n - internationalization … (angleški, slovenski, kitajski vmesnik)

2. Pretvorba podatkovij v časovna omrežja

Naloga ni preveč zahtevna. Razdeli se lahko tudi na več podnalog.

Cilj naloge je ustvariti zbirko primerov časovnih omrežij v Ianusovi obliki. Najenostavnejša pot do omrežij je pretvorba obstoječih podatkovij v časovna omrežja. Opis Ianusove oblike in nekaj primerov že ustvarjenih omrežij je mogoče najti tukaj.

Tu je nekaj primerov podatkovij:

Zaželjeno je, da se za izbrane vire napišejo programi, ki ustvarijo omrežja iz tekočih podatkov.

Zanimivi sta tudi vprašanji:

  • preverjanje skladnosti/usklajenosti podatkov
  • naključno generiranje

Možno je tudi nadaljevanje naloge v analizo ustvarjenega omrežja. Če bodo rezultati zanimivi, je mogoče razmišljati tudi o članku.

3. Prikazi časovnih omrežij v Pythonu

Osnovna izvedba prikaza časovnih količin je že narejena v R-ju. Izdelati bi bilo potrebno podobno, po možnosti boljšo, podporo v Pythonu. Obstaja veliko prostora za izboljšave.

4. Animacija časovnih omrežij

Časovna omrežja vsebujejo veliko količino podatkov. En od načinov, kako dobiti vtis o omrežju, je pregled v obliki filma. Cilj naloge je ustvariti tak pregledovalnik.

Naloga se lahko razdeli na nekaj korakov:

Moody; Dynnetwork; vis.js; d3.js; Vimeo; Plosone; Graph diaries

Netlogo: Giant Component; Preferential Attachment; Small Worlds; Diffusion on a Directed Network; Virus on a Network; Electrical Network; 3D network; Bing net simulator;

5. Izvedba knjižnice TQ v R-ju

Knjižnico TQ bi bilo dobro izvesti tudi v R-ju. S tem se odpre pot v statistične analize.

Naloga zahteva dobro poznavanje programiranja v R-ju. Osnovni razmislek je poiskati učinkovito predstavitev časovnih omrežij v R-ju. Morda redke matrike? Note; Matrix; Slam

Povezave z drugimi R-jevimi knjižnicami za analizo omrežij: i-graph, graph, SNA, Statnet

6. Učinkovita izvedba knjižnice TQ v jeziku Julia

Glej članek: Shah, V.B., Edelman, A., Karpinski, S., Bezanson, J., Kepner, J.: Novel algebras for advanced analytics in Julia (PDF).
koda k članku,
Julia,
Julia - članek.

Primerjaj časovno učinkovitost izvedbe v Julii s Pythonsko.

7. Priročnik za knjižnico TQ

Pri programiranju knjižnice TQ ni bilo časa za sprotno pisanje dokumentacije. Dobro bi bilo vse procedure temeljito preizkusiti in napisati ustrezno dokumentacijo.

Packaging, Documenting, Testing

tq/time/proj/task.txt · Last modified: 2016/05/26 09:06 by vlado
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki