List Back Order Strategy (SBO OFF): onPush vs Explicit Reevaluation

List Back Order Strategy (SBO OFF): onPush vs Explicit Reevaluation

borja_lorenzo
Advocate Advocate
338 Views
4 Replies
Message 1 of 5

List Back Order Strategy (SBO OFF): onPush vs Explicit Reevaluation

borja_lorenzo
Advocate
Advocate

Hi everyone,

I’m validating List behavior in FlexSim with SBO unchecked (entries-first: the list iterates entries and, for each entry, prioritizes compatible back orders via the Back Order Queue Strategy). I expected identical assignments regardless of how reevaluation is triggered, but I consistently see different outcomes when it’s triggered by onPush vs by an explicit reevaluation (code or List trigger wity Time Interval).
This model/question is inspired by the solution posted here: 
https://forums.autodesk.com/t5/flexsim-forum/list-back-order-strategy-option/m-p/13596928#M91487

 

Different results with onPush vs explicit reevaluation when SBO is OFF (entries-first)

Setup (minimal):

SBO: OFF (entries-first)

Allow Multiple (t+ε): ON • Reevaluate All Values On Pushes: ON

Pullers: 3 processors with Prio = 3, 2, 1 (Request=Require=1)

Entries: 3 operators with Skill = 3, 2, 1

Push pattern: the current model uses staggered pushes (different creation times) and I also tested fully simultaneous entries; results are the same.

 

Two reevaluation configurations:

  1. onPush configuration: at the reevaluation time I perform a dummy push into the list.
  2. Explicit-reevaluation configuration: reevaluation is triggered without a push, either by a PF calling
    List("List1").reevaluateBackOrders() or by the List’s Back Order Reevaluation Events → Time Interval.

Observed:

onPush: P3 → Op3, P2 → Op2, P1 → Op1 (desired).

Explicit reevaluation: P3 → Op1, P2 → Op2, P1 → Op3. (expected)

 

Questions

With SBO OFF (entries-first), why does the onPush configuration produce a different assignment than the explicit-reevaluation configuration, given the same entries and pullers?

Is there a documented difference in the internal entry-iteration order between the onPush loop and the reevaluateBackOrders()/Time Interval loop? If so, how can we inspect or control that iteration order? (The Entries grid order doesn’t seem to match what the algorithm uses.)

I’ll attach the simplified model and screenshots for both configurations. Thanks!

Version 24.1

0 Likes
339 Views
4 Replies
Replies (4)
Message 2 of 5

joerg_vogel_HsH
Mentor
Mentor

I stumbled about a similar problem. OnPush you add a new entry and updates list data including new entry. Reevaluation gather data without any new or updated entry. Please take this as a comment and not as a dedicated answer. Thank you.

0 Likes
Message 3 of 5

borja_lorenzo
Advocate
Advocate

Thanks—that’s helpful. To be precise, my goal isn’t to confirm a specific “entry-iteration order,” but rather to confirm whether FlexSim intentionally uses different reevaluation paths depending on the trigger:

  • onPush of a new entry (which mutates the entry set and schedules fulfillment), vs.

  • an explicit reevaluation without a new entry (PF call or List Time Interval).

With the same list options (SBO OFF, Allow Multiple ON, Reevaluate ON), these two triggers produce different pairings in my tests. Is this difference by design, and is there documentation that describes these two code paths?

Also, just to avoid confusion: SBO ON is not equivalent to “Allow Multiple + Reevaluate on push.”

  • SBO changes the evaluation direction (orders-first vs entries-first).

  • Allow Multiple changes when the decision is made (batching simultaneous pushes at t+ε).

  • Reevaluate All Values changes what is considered on a push (new entries plus existing ones).
    They’re orthogonal and can be combined. Under SBO ON, provided the puller’s pull-query ORDER BY ranks entries, the outcome should not depend on the trigger (push vs explicit reevaluation) for the same set of entries and deterministic tie-breakers—whereas with SBO OFF I’m seeing trigger-dependent outcomes.

Any official note/doc that clarifies this would be great. Thanks!

0 Likes
Message 4 of 5

borja_lorenzo
Advocate
Advocate

Thank Joerg
I added a new answaer instead of adding a comment to your answer:
https://forums.autodesk.com/t5/flexsim-forum/list-back-order-strategy-sbo-off-onpush-vs-explicit-ree...

 

0 Likes
Message 5 of 5

borja_lorenzo
Advocate
Advocate

Hello Joerg,
Do you think the label on this post is correct? or should I label it with another option?


Bug report
Software & Simulation 

Development

0 Likes