/** * */ package eu.quanticol.SIRS; import org.apache.commons.math3.random.RandomGenerator; import eu.quanticol.carma.simulator.CarmaInput; import eu.quanticol.carma.simulator.CarmaOutput; import eu.quanticol.carma.simulator.CarmaPredicate; import eu.quanticol.carma.simulator.CarmaProcessAutomaton; import eu.quanticol.carma.simulator.CarmaStore; import eu.quanticol.carma.simulator.CarmaStoreUpdate; import eu.quanticol.carma.simulator.CarmaSystem; /** * @author loreti * */ public class SIRSDefinitions { //actions public static final int CONTACT = 0; public static final int RECOVERY = 1; public static final int SUSCEPTIBLE = 2; public static final int MOVE = 3; public static final CarmaProcessAutomaton SIRProcess = createSIRProcess(); public static final CarmaProcessAutomaton MoveProcess = createMoveProcess(); private static CarmaProcessAutomaton createSIRProcess() { CarmaProcessAutomaton toReturn = new CarmaProcessAutomaton("SIR"); CarmaProcessAutomaton.State susceptible = toReturn.newState("Susceptible"); CarmaProcessAutomaton.State infective = toReturn.newState("Infective"); CarmaProcessAutomaton.State recovered = toReturn.newState("Recovered"); CarmaInput contactInAction = new CarmaInput( SIRS.CONTACT , true ) { @Override protected CarmaPredicate getPredicate(CarmaSystem sys, CarmaStore store, Object value) { // TODO Auto-generated method stub return null; } @Override protected CarmaStoreUpdate getUpdate(CarmaSystem sys, Object value, double now) { // TODO Auto-generated method stub return null; } }; CarmaOutput contactOutAction = new CarmaOutput( SIRS.CONTACT , true ) { @Override protected CarmaPredicate getPredicate(CarmaSystem sys, CarmaStore store) { // TODO Auto-generated method stub return null; } @Override protected CarmaStoreUpdate getUpdate(CarmaSystem sys, double now) { // TODO Auto-generated method stub return null; } @Override protected Object getValue(CarmaSystem sys, CarmaStore store, double now) { // TODO Auto-generated method stub return null; } }; CarmaOutput recoveryAction = new CarmaOutput( SIRS.RECOVERY , true ) { @Override protected CarmaPredicate getPredicate(CarmaSystem sys, CarmaStore store) { // TODO Auto-generated method stub return null; } @Override protected CarmaStoreUpdate getUpdate(CarmaSystem sys, double now) { // TODO Auto-generated method stub return null; } @Override protected Object getValue(CarmaSystem sys, CarmaStore store, double now) { // TODO Auto-generated method stub return null; } }; CarmaOutput susceptibleAction = new CarmaOutput( SIRS.SUSCEPTIBLE , true ) { @Override protected CarmaPredicate getPredicate(CarmaSystem sys, CarmaStore store) { // TODO Auto-generated method stub return null; } @Override protected CarmaStoreUpdate getUpdate(CarmaSystem sys, double now) { // TODO Auto-generated method stub return null; } @Override protected Object getValue(CarmaSystem sys, CarmaStore store, double now) { // TODO Auto-generated method stub return null; } }; toReturn.addTransition(susceptible, contactInAction, infective); toReturn.addTransition(infective, contactOutAction, infective); toReturn.addTransition(infective, recoveryAction, recovered); toReturn.addTransition(recovered, susceptibleAction, susceptible); return toReturn; } private static CarmaProcessAutomaton createMoveProcess() { CarmaProcessAutomaton toReturn = new CarmaProcessAutomaton("A"); CarmaProcessAutomaton.State state = toReturn.newState("A"); CarmaOutput move = new CarmaOutput( SIRS.MOVE , true ) { @Override protected CarmaPredicate getPredicate(CarmaSystem sys, CarmaStore store) { // TODO Auto-generated method stub return null; } @Override protected CarmaStoreUpdate getUpdate(CarmaSystem sys, double now) { // TODO Auto-generated method stub return null; } @Override protected Object getValue(CarmaSystem sys, CarmaStore store, double now) { // TODO Auto-generated method stub return null; } }; toReturn.addTransition(state,move,state); return toReturn; } }