Print

Print


Thanks!

*But what if you provide Steppables at various times as they show up, and
then they all get stepped?  That's where shuffling is helpful -- it breaks
the deterministic nature of the heap submission algorithm.  That's all.*

So keep it. :)
And write in somewhere that setShuffling improves the disorder, since you
can't ensure the heap is sorted...

Maíra

On Thu, Oct 15, 2009 at 6:33 AM, Sean Luke <[log in to unmask]> wrote:

> Uh oh, AFTER my email you were wondering?  :-)
>
> Basically: the schedule works by advancing to the timestep of the
> minimally-scheduled Steppable.  It then removes all the Steppables which are
> scheduled at that timestep.  Then it sorts them by their "ordering", and
> breaks ties by shuffling randomly.  Then it goes through all those
> Steppables, in the resultant order, and step()s them one by one.
>
> So what's the difference between having the Schedule shuffle elements
> randomly and just using a RandomSequence?  Simply this: in a RandomSequence
> you submit all the Steppables at one time to the Schedule, all in one array.
>  But what if you provide Steppables at various times as they show up, and
> then they all get stepped?  That's where shuffling is helpful -- it breaks
> the deterministic nature of the heap submission algorithm.  That's all.
>
> Sean
>
>
> On Oct 14, 2009, at 8:22 PM, Maíra Athanázio Gatti wrote:
>
>  Hi Sean,
>>
>> I have never used setShuffling and after your email I was wondering what
>> is the difference between it and a RamdonSequence.
>>
>> Maíra
>>
>> On Wed, Oct 14, 2009 at 2:48 PM, Sean Luke <[log in to unmask]> wrote:
>> I added setShuffling because I was asked on this list to enable a way for
>> elements entered for the same timestep to be removed from the Schedule in a
>> predictable order (that is, no shuffling of those elements).  However while
>> the order is *predictable* it is by no means *expected* -- since the
>> Schedule uses a binary heap underneath, it is *not* the case that elements
>> will be stepped in the order in which they were inserted in the Schedule in
>> the first place (though it is *sometimes* the case).  Because of the high
>> possibility for misunderstanding, and the very low value (I think) in having
>> the feature, I'm thinking of deleting setShuffling entirely and requiring
>> that objects be shuffled.
>>
>> Any opinions?
>>
>> Sean
>>
>>
>>