• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java Steppable类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中sim.engine.Steppable的典型用法代码示例。如果您正苦于以下问题:Java Steppable类的具体用法?Java Steppable怎么用?Java Steppable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Steppable类属于sim.engine包,在下文中一共展示了Steppable类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: start

import sim.engine.Steppable; //导入依赖的package包/类
@Override
public void start(FishState model) {
    Preconditions.checkArgument(receipt == null, "already started, love");


    //start all tiles
    for(Object element : rasterBackingGrid.elements())
    {
        SeaTile tile = (SeaTile) element; //cast
        tile.start(model);
    }

    Preconditions.checkArgument(receipt==null);
    //reset fished map count
    receipt =
            model.scheduleEveryDay(new Steppable() {
                @Override
                public void step(SimState simState) {
                    dailyTrawlsMap.setTo(0);
                }
            },StepOrder.DAWN);

}
 
开发者ID:CarrKnight,项目名称:POSEIDON,代码行数:24,代码来源:NauticalMap.java


示例2: scheduleOnceAtTheBeginningOfYear

import sim.engine.Steppable; //导入依赖的package包/类
/**
 * will step this object only once when the specific year starts. If that year is in the past, it won't step.
 * Implementation wise unfortunately I just check every year to see whether to step this or not. It's quite silly.
 * @param steppable
 * @param order
 * @param year
 */
public Stoppable scheduleOnceAtTheBeginningOfYear(Steppable steppable,StepOrder order, int year)
{

    final Steppable container = new Steppable() {
        @Override
        public void step(SimState simState) {
            //the plus one is because when this is stepped it's the 365th day
            if(((FishState) simState).getYear()+1 == year) {
                steppable.step(simState);
            }

        }
    };
    return scheduleEveryYear(container,order);

}
 
开发者ID:CarrKnight,项目名称:POSEIDON,代码行数:24,代码来源:FishState.java


示例3: schedulePerPolicy

import sim.engine.Steppable; //导入依赖的package包/类
public Stoppable schedulePerPolicy(Steppable steppable, StepOrder order, IntervalPolicy policy)
{
    switch (policy){
        case EVERY_STEP:
            return scheduleEveryStep(steppable,order);
        case EVERY_DAY:
            return scheduleEveryDay(steppable,order);
        case EVERY_MONTH:
            return scheduleEveryXDay(steppable,order,30);
        case EVERY_YEAR:
            return scheduleEveryYear(steppable, order);
        default:
            Preconditions.checkState(false,"Reset Policy not found");
    }

    return null;
}
 
开发者ID:CarrKnight,项目名称:POSEIDON,代码行数:18,代码来源:FishState.java


示例4: apply

import sim.engine.Steppable; //导入依赖的package包/类
/**
 * Applies this function to the given argument.
 *
 * @param fishState the function argument
 * @return the function result
 */
@Override
public ExternalOpenCloseSeason apply(FishState fishState) {
    return locker.presentKey
            (fishState,
             new Supplier<ExternalOpenCloseSeason>() {
                 @Override
                 public ExternalOpenCloseSeason get() {
                     ExternalOpenCloseSeason toReturn = new ExternalOpenCloseSeason();

                     fishState.scheduleEveryXDay(new Steppable() {
                         @Override
                         public void step(SimState simState) {
                             toReturn.setOpen(fishState.getRandom().nextBoolean());
                         }
                     }, StepOrder.POLICY_UPDATE,30);

                     return toReturn;
                 }
             });

}
 
开发者ID:CarrKnight,项目名称:POSEIDON,代码行数:28,代码来源:RandomOpenCloseController.java


示例5: start

import sim.engine.Steppable; //导入依赖的package包/类
@Override
public void start(FishState model, Fisher fisher) {

    //shedule yourself to check for profits every year
    if(stoppable != null)
        throw  new RuntimeException("Already started!");

    Steppable steppable = new Steppable() {
        @Override
        public void step(SimState simState) {
            checkIfQuit(fisher);
        }
    };
    this.stoppable = model.scheduleEveryYear(steppable, StepOrder.DAWN);
    decorated.start(model,fisher);

}
 
开发者ID:CarrKnight,项目名称:POSEIDON,代码行数:18,代码来源:ExitDepartingDecorator.java


示例6: start

import sim.engine.Steppable; //导入依赖的package包/类
@Override
public void start() {
   super.start();
   initSeries();
   
   scheduleRepeatingImmediatelyAfter(new Steppable() {
      private static final long serialVersionUID = 1L;
      private int lastCycleIndex   = 0;
      
      @Override
      public void step(final SimState state) {
         final AbstractModel model = (AbstractModel) state;
         final int currentCycleIndex = (int) Simulation.getFloorTime();
         
         if (model.schedule.getTime() != Schedule.AFTER_SIMULATION
             && currentCycleIndex != lastCycleIndex) {
            scheduleSeries(model);
            lastCycleIndex = currentCycleIndex;
         }
      }
   });
}
 
开发者ID:crisis-economics,项目名称:CRISIS,代码行数:23,代码来源:MasterModelGUI.java


示例7: RecordingTestModel

import sim.engine.Steppable; //导入依赖的package包/类
public RecordingTestModel(long seed) {
    super(seed);
    
    for (int i = 0; i < agentNum; i++) {
        RecordingTestAgent recordingTestAgent = new RecordingTestAgent(i);
        agentList.add(recordingTestAgent);
        anonymList.add(recordingTestAgent);
    }
    
    schedule.scheduleRepeating(
        new Steppable() {
            private static final long
                serialVersionUID = 1023983258758828337L;
            
            @Override
            public void step(SimState state) {
                someDouble = state.schedule.getTime();
                intList.add((int) Math.round(someDouble));
            }
        }, 
        1);
}
 
开发者ID:crisis-economics,项目名称:CRISIS,代码行数:23,代码来源:RecordingTestModel.java


示例8: addSteppables

import sim.engine.Steppable; //导入依赖的package包/类
@Override
public void addSteppables() {
	Steppable manager = (Steppable) this.getScenario().getProperties().get("ManagerAgent");
	try {
		this.registerShanksAgent((ShanksAgent) manager);
	} catch (ShanksException e) {
		logger.severe(e.getMessage());
		System.exit(1);
	}
	schedule.scheduleRepeating(Schedule.EPOCH, 3, manager, 1);
	Steppable generator = new DiagnosisCaseGenerator(this.getScenario().getProperties()
			.getProperty(SimulationConfiguration.TESTDATASET), this.getLogger());
	schedule.scheduleRepeating(Schedule.EPOCH, 6, generator, 1);
	boolean repMode = new Boolean(this.getScenario().getProperties()
			.getProperty(SimulationConfiguration.REPUTATIONMODE));
	Steppable evaluator = new DiagnosisCaseEvaluator(this.getScenario().getProperties()
			.getProperty(SimulationConfiguration.CLASSIFICATIONTARGET), this.getScenario()
			.getProperties().getProperty(SimulationConfiguration.EXPOUTPUT), this.getScenario()
			.getProperties().getProperty(SimulationConfiguration.TESTDATASET), repMode, this.getLogger());
	schedule.scheduleRepeating(Schedule.EPOCH, 5, evaluator, 1);
}
 
开发者ID:gsi-upm,项目名称:BARMAS,代码行数:22,代码来源:DiagnosisSimulation.java


示例9: setupProduction

import sim.engine.Steppable; //导入依赖的package包/类
private void setupProduction(final Firm seller) {
    sellerToInflowMap.put(seller,inflowPerSeller);
    getModel().scheduleSoon(ActionOrder.PRODUCTION,new Steppable() {
        @Override
        public void step(SimState simState) {
            if(destroyUnsoldInventoryEachDay)
                seller.consumeAll();

            //sell 4 goods!
            int inflow = sellerToInflowMap.get(seller);
            seller.receiveMany(UndifferentiatedGoodType.GENERIC,inflow);
            seller.reactToPlantProduction(UndifferentiatedGoodType.GENERIC,inflow);

            //every day
            getModel().scheduleTomorrow(ActionOrder.PRODUCTION,this);
        }
    });
}
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:19,代码来源:SimpleSellerScenario.java


示例10: createBuyer

import sim.engine.Steppable; //导入依赖的package包/类
private void createBuyer(final EconomicAgent seller, Market market, int price, float time){

        /**
         * For this scenario we use dummy buyers that shop only once every "period"
         */
        final DummyBuyer buyer = new DummyBuyer(getModel(),price,market);  market.registerBuyer(buyer);
        buyer.receiveMany(UndifferentiatedGoodType.MONEY,1000000);

        //Make it shop once a day for one good only!
        getModel().scheduleSoon(ActionOrder.TRADE,
                new Steppable() {
                    @Override
                    public void step(SimState simState) {


                        DummyBuyer.goShopping(buyer,seller, UndifferentiatedGoodType.GENERIC);
                        getModel().scheduleTomorrow(ActionOrder.TRADE,this);
                    }
                }
        );


        getAgents().add(buyer);
    }
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:25,代码来源:SimpleDecentralizedSellerScenario.java


示例11: buildFirm

import sim.engine.Steppable; //导入依赖的package包/类
public Firm buildFirm() {
    //only one seller
    final Firm built= new Firm(getModel());
    built.receiveMany(UndifferentiatedGoodType.MONEY,500000000);
    // built.setName("monopolist");
    //set up the firm at time 1
    getModel().scheduleSoon(ActionOrder.DAWN, new Steppable() {
        @Override
        public void step(SimState simState) {
            buildSalesDepartmentToFirm(built);
            Plant plant = buildPlantForFirm(built);
            buildHrForFirm(plant, built);


        }
    });

    model.addAgent(built);
    return built;
}
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:21,代码来源:MonopolistScenario.java


示例12: adjust

import sim.engine.Steppable; //导入依赖的package包/类
/**
 /**
 * The adjust is the main part of the a controller. It checks the new error and set the MV (which is the price, really)
 *
 * @param stockTarget the stock target
 * @param stockInput the stock input
 * @param flowInput the flow input
 * @param isActive true if the pid is not turned off
 * @param state   the simstate link to schedule the user
 * @param user     the user who calls the PID (it needs to be steppable since the PID doesn't adjust itself)
 */
public void adjust(float stockTarget,float stockInput, float flowInput, boolean isActive,
                    MacroII state,  Steppable user,  ActionOrder phase)
{
    //master
    pid1.adjust(stockTarget,stockInput,isActive,state,user,phase); //to avoid exxaggerating in disinvesting, the recorded inventory is never more than twice the target
    //slave

    targetForSlavePID = pid1.getCurrentMV();
    // targetForSlavePID = masterOutput > 1 ? (float)Math.log(masterOutput) : masterOutput < -1 ? -(float)Math.log(-masterOutput) : 0;
    //

    assert !Float.isNaN(targetForSlavePID) && !Float.isInfinite(targetForSlavePID);
    ControllerInput secondPIDInput = new ControllerInput(targetForSlavePID,flowInput);
    pid2.adjust(secondPIDInput, isActive, null, null, null);


}
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:29,代码来源:CascadePIDController.java


示例13: adjust

import sim.engine.Steppable; //导入依赖的package包/类
/**
 * The adjust is the main part of the PID Controller. This method doesn't compute but rather receive the new error
 * and just perform the PID magic on it
 * @param residual the residual/error: the difference between current value of y and its target
 * @param isActive is the agent calling this still alive and active?
 * @param simState a link to the model (to reschedule the user)
 * @param user     the user who calls the PID (it needs to be steppable since the PID doesn't adjust itself)
 * @param phase at which phase should this controller be rescheduled
 */
public void adjust(float residual, boolean isActive,
                   MacroII simState,  Steppable user,ActionOrder phase, Priority priority)
{
    //delegate the PID itself to adjustOnce, and worry about refactoring
    if (!adjustOnce(residual, isActive))
        return;


    /*************************
     * Reschedule
     *************************/


    if(simState != null && user != null){
        if(speed == 0)
            simState.scheduleTomorrow(phase, user,priority);
        else
        {
            assert speed > 0;
            simState.scheduleAnotherDay(phase,user,speed+1,priority);
        }
    }

}
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:34,代码来源:PIDController.java


示例14: adjust

import sim.engine.Steppable; //导入依赖的package包/类
/**
 /**
 * The adjust is the main part of the a controller. It checks the new error and set the MV (which is the price, really)
 *
 * @param stockTarget the stock target
 * @param stockInput the stock input
 * @param flowInput the flow input
 * @param isActive true if the pid is not turned off
 * @param state   the simstate link to schedule the user
 * @param user     the user who calls the PID (it needs to be steppable since the PID doesn't adjust itself)     * @param firstTarget
 */
public void adjust(float stockTarget,float stockInput, float flowInput, boolean isActive,
                   MacroII state,  Steppable user,  ActionOrder phase)
{
    //master
    pid1.adjust(stockTarget,Math.min(stockInput,stockTarget*5),isActive,state,user,phase); //to avoid exxaggerating in disinvesting, the recorded inventory is never more than twice the target
    //slave

    targetForSlavePID = pid1.getCurrentMV();
    // targetForSlavePID = masterOutput > 1 ? (float)Math.log(masterOutput) : masterOutput < -1 ? -(float)Math.log(-masterOutput) : 0;
    //

    assert !Float.isNaN(targetForSlavePID) && !Float.isInfinite(targetForSlavePID);
    ControllerInput secondPIDInput = new ControllerInput(targetForSlavePID,flowInput);
    pid2.adjust(secondPIDInput, isActive, null, null, null);


}
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:29,代码来源:CascadePToPIDController.java


示例15: createPeriodicNE

import sim.engine.Steppable; //导入依赖的package包/类
@Test
public void createPeriodicNE() {
    Steppable generator = new Steppable() {

        private static final long serialVersionUID = 1L;

        public void step(SimState arg0) {

        }
    };
    PeriodicNetworkElementEvent pe = new MyPeriodicNetElementEvent(
            generator);

    Assert.assertEquals(generator, pe.getLauncher());
    Assert.assertEquals(500, pe.getPeriod());

}
 
开发者ID:gsi-upm,项目名称:Shanks,代码行数:18,代码来源:EventTest.java


示例16: adjust

import sim.engine.Steppable; //导入依赖的package包/类
/**
 * The adjust is the main part of the a controller. It checks the new error and set the MV (which is the price, really)
 *
 * @param input the input object
 * @param isActive are we active?
 * @param simState a link to the model (to adjust yourself)
 * @param user     the user who calls the PID (it needs to be steppable since the PID doesn't adjust itself)
 */
@Override
public void adjust(ControllerInput input,  boolean isActive, MacroII simState, Steppable user,ActionOrder phase) {
    if(position.equals(ControllerInput.Position.FLOW)) {
        filter.addObservation(input.getFlowTarget());
        input = new ControllerInput(filter.getSmoothedObservation(),input.getStockTarget(),input.getFlowInput(),input.getStockInput() );
    }
    else{
        assert position.equals(ControllerInput.Position.STOCK);
        filter.addObservation(input.getStockTarget());
        input = new ControllerInput(input.getFlowTarget(),filter.getSmoothedObservation(),input.getFlowInput(), input.getStockInput());

    }



    toDecorate.adjust(input,isActive,simState,user,phase);


}
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:28,代码来源:ExponentialFilterTargetDecorator.java


示例17: adjust

import sim.engine.Steppable; //导入依赖的package包/类
/**
 * The adjust is the main part of the a controller. It checks the new error and set the MV (which is the price, really)
 *
 * @param input the controller input object
 * @param isActive are we active?
 * @param simState a link to the model (to adjust yourself)
 * @param user     the user who calls the PID (it needs to be steppable since the PID doesn't adjust itself)
 */
@Override
public void adjust(ControllerInput input, boolean isActive, MacroII simState, Steppable user, ActionOrder phase) {

    if(position.equals(ControllerInput.Position.FLOW)) {
        filter.addObservation(input.getFlowInput());
        input = new ControllerInput(input.getFlowTarget(),input.getStockTarget(),filter.getSmoothedObservation(),input.getStockInput());
    }
    else{
        assert position.equals(ControllerInput.Position.STOCK);
        filter.addObservation(input.getStockInput());
        input = new ControllerInput(input.getFlowTarget(),input.getStockTarget(),input.getStockTarget(),filter.getSmoothedObservation());

    }
    toDecorate.adjust(input,isActive,simState,user, phase);


}
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:26,代码来源:MovingAverageFilterInputDecorator.java


示例18: createActionAndNoExecuteAction

import sim.engine.Steppable; //导入依赖的package包/类
@Test
public void createActionAndNoExecuteAction() throws ShanksException{
    @SuppressWarnings("serial")
    Steppable launcher = new Steppable() {
        @Override
        public void step(SimState arg0) {
        }
    };
    Action act = new MyShanksAgentAction("Action", launcher);
    
    Assert.assertEquals("Action", act.getID());
    Assert.assertEquals(launcher, act.getLauncher());
    
    Device d = new MyDevice("Dev", MyDevice.NOK_STATUS, false, logger);
    Assert.assertEquals("Dev", d.getID());
    Assert.assertTrue(d.getStatus().get(MyDevice.NOK_STATUS));
    Assert.assertFalse(d.isGateway());
    
    
    
}
 
开发者ID:gsi-upm,项目名称:Shanks,代码行数:22,代码来源:SimpleActionTest.java


示例19: attachFilter

import sim.engine.Steppable; //导入依赖的package包/类
public void attachFilter(final Filter<Integer> outflowFilter)
{

    //set it
    this.outflowFilter = outflowFilter;
    outflowFilter.addObservation(department.getTodayOutflow());
    //schedule it
    department.getFirm().getModel().scheduleSoon(ActionOrder.THINK,new Steppable() {
        @Override
        public void step(SimState state) {
            if(InventoryBufferSalesControl.this.outflowFilter != outflowFilter) //stop if you changed filter
                return;

            //add observation
            outflowFilter.addObservation(department.getTodayOutflow());

            //reschedule yourself
            department.getFirm().getModel().scheduleTomorrow(ActionOrder.THINK,this);


        }
    }

    );

}
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:27,代码来源:InventoryBufferSalesControl.java


示例20: start

import sim.engine.Steppable; //导入依赖的package包/类
/**
 * Start the inventory control and make the purchaseDepartment, if needed, buy stuff
 */
public void start(MacroII model){
    Preconditions.checkArgument(!startWasCalled);
    startWasCalled = true;

    counter.start();
    control.start();
    purchasesData.start(model,this);

    model.scheduleSoon(ActionOrder.ADJUST_PRICES,new Steppable() {
        @Override
        public void step(SimState state) {
            if(!(isActive()))
                return;

            priceAverager.endOfTheDay(PurchasesDepartment.this);
            model.scheduleTomorrow(ActionOrder.ADJUST_PRICES,this);

        }
    });

}
 
开发者ID:CarrKnight,项目名称:MacroIIDiscrete,代码行数:25,代码来源:PurchasesDepartment.java



注:本文中的sim.engine.Steppable类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java SendMessageBatchRequest类代码示例发布时间:2022-05-21
下一篇:
Java WorldSavedData类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap