Menù

Home
Publications
Research interests
Talks
Stages/Thesis
Developed Software
Teaching
Blog

Last papers                             

A Shape Calculus for Biological Processes


Model Checking Biological Oscillators


Learning and Detecting Emergent Behavior in Networks of Cardiac Myocytes


Modeling and Simulation of Cardiac Tissue using Hybrid I/O Automata


StonyCam: A Formal Framework for Modeling, Analyzing and Regulating Cardiac Myocytes


CellExcite: An Efficient Simulation Environment for Excitable Cells


Learning and Detecting Emergent Behavior in Networks of Cardiac Myocytes


BioWMS: a web-based Workflow Management System for bioinformatics


Biowep: a workflow enactment portal for bioinformatics applications


An Agent-based Multilayer Architecture for Bioinformatics Grids


Spatial Networks of Hybrid I/O Automata for Modeling Excitable Tissue


Links


PhD Stuff

ADI - Italian PhD Association
Fullbright scolarships
Marie Curie Fellowship Association


My University

University of Camerino
Department of Mathematics and Computer Science
UNICAM - Computer Science
CERCODI UNICAM

Unicam Blog


Research Projects

Oncology Over Internet
Litbio Project
Litbio CoSy Group
BioAgent Project
Hermes Project


Bioinformatics Stuff

NETTAB

Bioinformatics Italian Society

BMC Bioinformatics

Bioinformatics Oxford Journal



Free time

Musicamdo

Counter and browser compatibility



Get Firefox!


Get Thunderbird!


Valid XHTML 1.0 Transitional


Poca osservazione e molto ragionamento conducono all'errore.
Molta osservazione e poco ragionamento conducono alla verità.

Alexis Carrel (Premio Nobel 1912)

07 December 06 - 00:44Informazioni Generali

Course Description


Course Program

  • Brief introduction of Dynamical Systems
  • Modeling phsycial distributed systems using Hierarchical Multi Agents with Hybrid behavior (using CHARON)
  • Simulation Techniques for Distribute Systems: (Conservative and Optimistic simulation, Time Warping, Estimator)
  • Hermes middleware: mobility and communication


References

  • Yerang Hur and Insup Lee, "Distributed Simulation of Multi-Agent Hybrid Systems." IEEE International Symposium on Object-Oriented Real-time distributed Computing (ISORC), April 29-May 1, 2002.
  • R. Alur, T. Dang, J. Esposito, R. Fierro, Y. Hur, F. Ivancic, V. Kumar, I. Lee, P. Mishra, G. Pappas, and O. Sokolsky, "Hierarchical Hybrid Modeling of Embedded Systems." Proceedings of EMSOFT'01: First Workshop on Embedded Software, October 8-10, 2001.
  • R. Alur, R. Grosu, I. Lee, and O. Sokolsky, "Compositional Refinement for Hierarchical Hybrid Systems". Proceedings of the 4th International Workshop on Hybrid Systems: Computation and Control, Rome Italy, March 28-30, 2001. LNCS 2034, pp. 33-48.
  • R. Alur, R. Grosu, Y. Hur, V. Kumar, I. Lee, "Modular Specification of Hybrid Systems in CHARON." Proceedings of the 3rd International Workshop on Hybrid Systems: Computation and Control, Pittsburgh, PA, March 23-25, 2000. Postcript version CHARON Case Studies
  • E. Aaron, H. Sun, F. Ivancic, and D. Metaxas, "A Hybrid Dynamical Systems Approach to Intelligent Low-Level Navigation" Proceedings of the 15th International Conference on Computer Animation, Geneva, Switzerland, June 19-21, 2002.
  • The U-Penn MoBIES Team, "Report on Verification of the MoBIES Vehicle-Vehicle Automotive OEP Problem" University of Pennsylvania, Philadelphia, PA, March 2002. PDF version
  • E. Aaron, D. Metaxas, F. Ivancic, and O. Sokolsky, "A Framework for Reasoning about Animation Systems." Proceedings of the Third International Workshop on Intelligent Virtual Agents, Madrid, Spain, September 10-11, 2001. LNCS/LNAI 2190, pp. 47-60.
  • R. Alur, C. Belta, F. Ivancic, V. Kumar, M. Mintz, G.J. Pappas, H. Rubin, and J. Schug, "Hybrid Modeling of Biomolecular Networks." Proceedings of the 4th International Workshop on Hybrid Systems: Computation and Control, Rome Italy, March 28-30, 2001. LNCS 2034.
  • J. Esposito, G. Pappas, and V. Kumar. Accurate event detection for simulating hybrid systems. In Hybrid Systems: Computation and Control, LNCS 2034, M. D. D. Benedetto and A. L. Sangiovanni-Vincentelli (Eds.), pages 204–217. Springer, 2001.
  • D. Jefferson. Virtual time. ACM Transactions on Programming Languages and Systems, 7(3):404–425, 1985.
  • B. D. Lubachevsky. Efficient distributed event-driven simulations of multiple-loop networks. Communications of the ACM, 32(1):99–113, 1989.
  • Flavio Corradini, Emanuela Merelli: Hermes: Agent-Based Middleware for Mobile Computing. SFM 2005: 234-270
  • J. Lygeros Lecture Notes on Hybrid Systems, Notes for an ENSIETA short course, Feb 2004.
  • J. Lygeros, C. Tomlin and S. Sastry Art of Hybrid Systems, Compendium of Lecture Notes for the Hybrid Systems Class, 2002.
  • B. Roberto, N. Libero and O. Antonio, Temporal uncertainty time warp: An implementation based Java and ActorFoundry, Simulation 2003, vol. 79, n°10, pp. 581-597



Material to Download

  • Hermes Core for Java 1.6
  • Charon and Visual Charon
  • Charon Manual
  • Bouncing Ball Example
  • Repressillator Example



Example of Migration and Communication in Hermes

                                                                                                                                                                                                                                                    
    package samples;
    

    import java.util.Date;
    

    import hermesV2.*;
    import hermesV2.agent.*;
    

    public class McDuckAgent extends UserAgent {
    
    

                    public McDuckAgent(String agentName) {
                            super("Della Duck");
                    }
    

                    public void init() {
                            reception(); //I enable the reception
                            //of messages for the father
    

                            System.out.println("Hello World !!");
                            System.out.println("I'm Della Duck !!!");
    

                            Identificator temp = null, son1 = null,
                                                              son2 = null, son3 = null;
    

                            /*afterCloning is the first method
                              called after the clonation*/
    

                            try {
                                            son1 = clone("afterCloning""Qui");
                                            System.out.println(new Date(
                                                                   System.currentTimeMillis()) +
                                                               ": Qui was born !!");
                                            son2 = clone("afterCloning""Quo");
                                            System.out.println(new Date(
                                                                   System.currentTimeMillis()) +
                                                               ": Quo was born !!");
                                            son3 = clone("afterCloning""Qua");
                                            System.out.println(new Date(
                                                                   System.currentTimeMillis()) +
                                                               ": Qua was born !!");
    

                                    } catch (CloneException ce) {
                                            System.out.println(ce);
                                    }
    

                            Message < ? > m0 = null, m1 = null, m2 = null, m3 = null;
    

                            while (m1 == null || m2 == null || m3 == null) {
                                            m0 = getMessageSynch();
                                            temp = m0.getSenderAgentId();
    

                                            if (son1.equals(temp)) m1 = m0;
    

                                            if (son2.equals(temp)) m2 = m0;
    

                                            if (son3.equals(temp)) m3 = m0;
    

                                            System.out.println((String)m0.getObject());
                                    }
    

                            /*The mother replies to sons*/
                            Identificator myId = getIdentificator();
    

                            m1 = new Message<Object>(myId, m1.getSenderAgentId(),
                                                     "Mom: Ok Qui !! \n     " +
                                                     "I've receive your message.");
    

                            m2 = new Message<Object>(myId, m2.getSenderAgentId(),
                                                     "Mom: Ok Quo !! \n     " +
                                                     "I've receive your message.");
    

                            m3 = new Message<Object>(myId, m3.getSenderAgentId(),
                                                     "Mom: Ok Qua !! \n     " +
                                                     "I've receive your message.");
    

                            try {
                                            sendMessageToUserAgent(m1);
                                            sendMessageToUserAgent(m2);
                                            sendMessageToUserAgent(m3);
    

                                    } catch (CommunicationException ce) {
                                            System.out.println(ce.getMessage());
                                    }
                    }
    

                    //  //193.204.13.101 8000
                    public void afterCloning() {
                            Identificator myId = getIdentificator();
                            PlaceAddress myBPA = myId.getBornPlaceAddress();
                            int myBPAPort = myBPA.getPort();
    

                            try {
                                            int port = (myBPAPort == 9100) ? 9000 : 9100;
    

                                            PlaceAddress myMPA =
                                                new PlaceAddress("193.205.92.140"8000);
    

                                            //      //193.204.13.100
                                            this.move(myMPA, "afterMoving");
    

                                    } catch (MigrationException me) {
                                            me.printStackTrace();
                                            System.out.println("MigrationException" + me);
                                    }
                    }
    

                    //
                    public void afterMoving() {
                            reception(); //I enable the reception
                            //of messages for the son
    

                            Identificator myId = getIdentificator();
                            Identificator mother = getFatherIdentificator();
                            Message < ? > m = null;
    

                            try {
                                            m = new Message<Object>(myId, mother,
                                                                    getAgentName() +
                                                                    ": I have moved to another Place");
                                            sendMessageToUserAgent(m);
    

                                    } catch (CommunicationException ce) {
                                            System.out.println(ce.getMessage());
                                    }
    

                            m = getMessageSynch();
                            System.out.println((String)m.getObject());
    
    

                            try {
    

                                            PlaceAddress myMPA =
                                                new PlaceAddress("193.204.13.100"8000);
    

                                            //        //193.204.13.100
                                            this.move(myMPA, "afterMovingAgain");
    

                                    } catch (MigrationException me) {
                                            me.printStackTrace();
                                            System.out.println("MigrationException" + me);
                                    }
                    }
    

                    public void afterMovingAgain() {
                            System.out.println("Hello World !!");
                    }
    
    

            }

ezio - default - / No trackbacks - §