Print

Print


I find this acceptable.

It's true, however, that the need for this behavior is quite common -- so
eventually it would be nice to have a more unified/integrated solution,
IMO.  That may require rolling out own distributions library, though.

Siggy

On Fri, Jul 20, 2012 at 6:58 PM, Sean Luke <[log in to unmask]> wrote:

> Okay, here's a first cut at an approach to allow repeats drawn from a
> distribution.  If there are certain very common distribution needs, we
> could make those built into the class, but for now you have to roll you own.
>
> The revised code (which is NOT out on SVN) is attached.  The modified
> files are Schedule.java, Repeat.java, RandomRepeat.java, all of which
> should be placed into sim/engine/
>
>
>
>
> Let's say you want to schedule something which repeatedly reschedules
> itself using the absolute value of a standard normal distribution, plus
> 1.0.  You could say this:
>
>
> Steppable step = ...
> double initialTime = 5.0;
> int initialOrdering = 0;
>
> RandomRepeat repeat = new RandomRepeat(step, initialOrdering, false)  //
> use 'true' if multithreaded
>         {
>         protected double getNextTime(SimState state, double currentTime)
>                 {
>                 return currentTime + Math.abs(state.random.nextGaussian())
> + 1.0;
>                 }
>         };
>
> state.schedule.scheduleOnce(initialTIme, initialOrdering, repeat);
>
>
>
> This code was written at 12:50 at night and has not been tested or even
> tried.  But there is a slight chance it might work right.  Anyway, it's a
> first draft which uses an abstract superclass and anonymous subclass to get
> around the issue of a multitude of distribution APIs in
> sim.util.distribution.  Opinions?
>
> Sean
>
>
>


-- 
Ph.D. Student in Computer Science
Volgenau School of Engineering
George Mason University