• Danilo Pianini
    Danilo Pianini, 19/09/2010 19:11

    Domande per mercoledì:

    • A livello di simulazione, rispetto al lavoro di Moretti, si tratta di avere nodi mobili?
    • La mobilità automatica deve poter esser specificata in un qualche modo in ingresso? Se sì, come modificare il linguaggio?
    • Essendo sostanzialmente l'applicazione di Gillespie, può aver senso basare il lavoro su FERN (http://www.biomedcentral.com/1471-2105/9/356)? Sembra avere prestazioni superiori a gillespie2 scritto in C.
    • Quali parti di SPIM sono particolarmente rilevanti e comode?
    • La parte di maggior interesse di PROTO è nella parte di interazione realtime con l'utente? È sensato pensare di prenderne spunto per ottenere un simulatore interattivo ma SCARTANDO la sua parte di linguaggio?
  • Danilo Pianini
    Danilo Pianini, 04/11/2010 23:34

    Un bel pacco di slides (35) aggiunto per la vostra gioia (tranquilli, son tutte immagini...)

  • Danilo Pianini
    Danilo Pianini, 05/11/2010 12:47

    Corretto l'algoritmo di aggiunta e rimozione sull'albero bilanciato e aggiustata la sua complessità. Proposto un caching sulla coda.

  • Danilo Pianini
    Danilo Pianini, 10/11/2010 21:37

    Ho effettuato il confronto di prestazioni fra C++ e Java. Test effettuato utilizzando implementazioni dei Red-Black tree. Il sorgente Java è il seguente: http://www.java-tips.org/java-se-tips/java.lang/red-black-tree-implementation-in-java.html mentre il sorgente C++ è qua: http://users.cis.fiu.edu/~weiss/dsaa_c++/code/ Probabilmente l'autore è lo stesso, si vede proprio che uno è copiato dall'altro, stessi commenti.

    I dati sono non significativi fino a che non si iniziano ad usare ~10000000 nodi, soprattutto a causa del fatto che non son stato buono di trovare un modo per misurare i millisecondi in C++ senza fare porcherie come dividere il numero di colpi di clock per la frequenza della CPU.

    Il test eseguito è il seguente:

    Failed to execute the [html] macro. Cause: [The HTML macro may not be used with clean="false" in this context.]. Click on this message for details.
  • Danilo Pianini
    Danilo Pianini, 11/11/2010 02:20

    Debriefing del 10/11/2010

    • Abbiamo chiarito le differenze fra gli algoritmi Direct Method e First Reaction.
    • Il First Reaction non utilizza tempi relativi ma tempi assoluti
    • Abbiamo chiarito le metodologie di calcolo per i tempi di accadimento delle reazioni
    • Abbiamo concordato che NON siamo interessati a riprodurre eventi Markoviani tempo-dipendenti
    • Abbiamo considerato Next Reaction come l'estensione di First Reaction nella quale ci si preoccupa di aggiornare solo i le reazioni che lo necessitano e che presenta strutture dati intelligenti per la gestione delle reazioni
    • Abbiamo studiato l'indexed priority queue (IPQ) di Gibson, estendendola in maniera tale che l'albero risultasse bilanciato in caso di aggiunta e rimozione di nodi
    • Abbiamo valutato in costante la complessità di lettura della prossima reazione, O(logthumb_down) la complessità di update, O(2*logthumb_down)=O(logthumb_down) la complessità per aggiunta e rimozione di un nodo
    • Abbiamo considerato l'idea di tenere una coda dei nodi aggiunti in modo da velocizzare la rimozione. L'idea è stata scartata in quanto la procedura di aggiustamento dei pesi che va comunque fatta non consente di migliorare la complessità in tempo.
    • Abbiamo concordato che, sebbene il tempo peggiore di update sia O(logthumb_down), il tempo medio deve essere sensibilmente più contenuto.
    • Abbiamo ragionato sulla convenienza di utilizzare puntatori ovunque, data la dinamicità del sistema
    • Abbiamo pensato che una possibile implementazione del dependency graph può essere attuata con una mappa
    • Abbiamo ragionato sulla difficoltà di esprimere il tempo in modo che risulti preciso
  • Danilo Pianini
    Danilo Pianini, 11/11/2010 02:27
    • 1) Assicurarsi che il modello consenta di esprimere trigger e reazioni istantanee
    • 2) Pensare a possibili soluzioni per il problema della rappresentazione del tempo
    • 3) Verifica della correttezza della libreria Colt (o librerie simili) per il calcolo dei valori sulla distribuzione esponenziale
    • 4) Pensare se sia possibile rendere più efficiente l'update dell'albero in caso di nodi multipli da aggiornare
    • 5) Valutare la perdita di prestazioni di un'eventuale implementazione Java di alberi rispetto a C++
  • Danilo Pianini
    Danilo Pianini, 11/11/2010 02:28
    • 6) Sistemare le slides che allo stato attuale fanno pena
  • Sara Montagna
    Sara Montagna, 11/11/2010 11:14

    quindi...JAVA???

  • Danilo Pianini
    Danilo Pianini, 25/11/2010 11:19

    Allegato il modello dal quale sto facendo generazione del codice. Potrebbero verificarsi alcuni disallieneamenti, nel caso prima di fare commit cerco di ripristinare la coerenza di modello e sistema. Sì Sara, almeno la struttura e le interfacce le tengo in Java. Considera che comunque se risultasse lento, la parte core potrebbe essere fatta via JNI direttamente in C.

  • Danilo Pianini
    Danilo Pianini, 06/01/2011 16:45

    Allegato un backup con lo stato attuale del lavoro. Il motore è completo, sto implementando i "pezzi" di modello necessari per le prime simulazioni...

  • Danilo Pianini
    Danilo Pianini, 12/01/2011 14:36

    Aggiornato il backup alla data odierna

  • Danilo Pianini
    Danilo Pianini, 18/01/2011 04:23

    Aggiunto l'abstract. Richiedo commenti.

  • Danilo Pianini
    Danilo Pianini, 18/01/2011 04:34

    Allegati frontespizio e bozza di tesi (abstract + outline). Aggiornato Alchemist.

  • Danilo Pianini
    Danilo Pianini, 19/01/2011 06:57

    Allegati progetto alla versione odierna e modello UML allineato al codice. La simulazione ora è in grado di fermarsi ad un tempo stabilito e di comunicare il tempo corrente ad un eventuale ascoltatore.

Partita IVA: 01131710376 - Copyright © 2008-2021 APICe@DISI Research Group - PRIVACY