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


