About

This is the archive page for Teaching. Click to go to the frontpage of this site.

Last Comments

Bob (Pivot 1.30 Beta 2…): And this is what a commen…

Calendar

Archives

01 Dec - 31 Dec 2006


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

Miscellany

Powered byPivot - 1.30 beta 2: 'Rippersnapper' 
XML Feed (RSS 1.0) 
XML: Atom Feed 

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 - §

Linkdump