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
>>
>>
>>
|