⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 experiment.java

📁 发布/订阅系统路由重配算法,可应用于ad hoc环境
💻 JAVA
字号:
package sim;import java.util.*;import sim.Simulation.MeasureStartEvent;import sim.Simulation.MeasureStopEvent;import sim.Simulation.StopEvent;public class Experiment extends Simulation {		String top1;	String top2;		public Experiment(Properties properties){		super(properties);		top1=properties.getProperty("top1");		top2=properties.getProperty("top2");	}	public void setup() {		measureInterval = 1000;		// create the overlay and broker network		// net = Network.createOverlay(this);		try{			net = Network.loadOverlay(this);		}catch(Exception e){			System.out.println(e);			e.printStackTrace();			System.exit(-1);		}				net.scaleCommunicationCosts();		net.assignProcessingCosts();		//net.assignParetoLoad();		net.assignLoad();		net.scaleLoad();				//net.scaleLoad(0,10);		//net.scaleProcessingCosts(0,10);		//net.scaleCommunicationCosts(0,10);				net.createRandomTree();		scheduleEventAt(1000, new Event() {			public void handle() {				net.startHeuristic();			}		});				// create the applications		application = Application.createApplication(this);		application.assignTo(net);				for (int i=0; i<measureStarts.length; i++) {			if(measureStarts[i]>=0.0d) {				this.scheduleEventAt(measureStarts[i], new MeasureStartEvent());			}		}				for (int i=0; i<measureStops.length; i++) {			if(measureStops[i]>=0.0d) {				this.scheduleEventAt(measureStops[i], new MeasureStopEvent());			}		}				scheduleEventAt(76001, new StopEvent());				//scheduleEventAt(26000, new ChangeTopologyEvent("toptest_b"));		//scheduleEventAt(7000, new ChangeInterestEvent());				scheduleEventAt(26000, new MyChangeEvent(top1));		scheduleEventAt(51000, new MyChangeEvent(top2));		//scheduleEventAt(62000, new MyChangeEvent("top/top_100_d"));	}		protected class ChangeTopologyEvent extends Event {		String file;				public ChangeTopologyEvent(String file){			this.file = file;		}				public void handle() {			Network n;			n = null;			try{				Network.netFile = file;				n = Network.loadOverlay(Experiment.this); 			}catch(Exception e){				e.printStackTrace();			}						n.scaleCommunicationCosts();			n.assignProcessingCosts();			n.scaleProcessingCosts();			//n.assignLoad();			//n.scaleLoad();			net.change(n);		}									}		protected class ChangeInterestEvent extends Event {				public void handle(){			net.assignLoad();			net.scaleLoad();			System.out.println("Load Assigned");		}	}		protected class MyChangeEvent extends Event {				String file;				public MyChangeEvent(String file){			this.file = file;		}				public void handle() {			Network n;			n = null;			try{				Network.netFile = file;				n = Network.loadOverlay(Experiment.this); 			}catch(Exception e){				e.printStackTrace();			}						n.scaleCommunicationCosts();			n.assignProcessingCosts();			n.scaleProcessingCosts();			n.assignLoad();			n.scaleLoad();			net.change(n);		}			}		public void measure(){		out.println((time-1000)+"\t"+costs);		super.measure();	}	//	protected double[] measureStarts = {0.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d};//	protected double[] measureStops = {Double.MAX_VALUE, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d};//	//	//	//	protected double measureInterval = 10;//	//	Event measureEvent = null;//	//	public Experiment(Properties properties){//		super(properties);//		System.out.println("yeahhhhhhhhhhhhhhhhhhhhhhh.");//	}//	//	public void setup() {//		super.setup();//	//		for (int i=0; i<measureStarts.length; i++) {//			if(measureStarts[i]>=0.0d) {//				this.scheduleEventAt(measureStarts[i], new MeasureStartEvent());//			}//		}//		//		for (int i=0; i<measureStops.length; i++) {//			if(measureStops[i]>=0.0d) {//				this.scheduleEventAt(measureStops[i], new MeasureStopEvent());//			}//		}//	}//	//	protected class MeasureStartEvent extends Event{//		public void handle() {//			if(measureEvent == null) {//				costs = 0;//				processingCosts = 0;//				communicationCosts = 0;//				scheduleEventIn(measureInterval, new MeasureEvent());//			}//		}//	}//	//	protected class MeasureStopEvent extends Event{//		public void handle() {//			if (measureEvent != null) {//				removeEvent(measureEvent);//				measureEvent = null;//			}//		}//	}//	//	protected class MeasureEvent extends Event{//		public void handle() {//			measure();//		}//	}//	//	public void measure() {//		out.println("costs: "+costs+" (processing: "+processingCosts+" communication: "+communicationCosts);//		costs = 0;//		processingCosts = 0;//		communicationCosts = 0;//		scheduleEventIn(measureInterval,new MeasureEvent());//	}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -