# Beyond Kanban: POLCA-Constrained Scheduling for Job Shops
## 3 POLCA and the Enhanced Contraint Programming: A Basic Case
### The Proposed Methodology  
The methodology consists of two phases: an offline scheduling phase (detailed in Section 3.3.1) and a discrete-event simulation phase (described in Section 3.3.2). Initially, all production orders are generated in a batch process using a custom instance generator. In this process, order arrival times, due dates, and the associated job sequences are sampled from stochastic distributions. The Constraint Programming model, detailed in Section 3.3.1, is subsequently employed to schedule the entire set of orders under the assumption of full advance knowledge. This formulation explicitly integrates POLCA constraints by imposing a limit on the number of control cards available for any inter-workcenter transition. Once computed, the start and finish times of operations are stored for subsequent reference during the simulation phase.  
In the second phase, a discrete-event simulation model, described in Section 3.3.2, is executed. In this simulation, orders are released into the system dynamically according to their arrival times. The simulation model interprets the schedule in two distinct modes. In the \"as planned\" mode, jobs adhere strictly to the precomputed start times, while in the dynamic mode, scheduling decisions are made in real time based on resource availability. This dual-mode approach facilitates a comprehensive performance evaluation, capturing both the benefits of proactive scheduling and the challenges arising from real-time variability.  
Although the methodology can conceptually support periodic schedule updates in response to unexpected shop-floor events (rolling scheduling), the experiments conducted in this paper use a static scheduling approach, computing the schedule once at the beginning without further updates.  
To clarify the operational logic of the two control approaches, Figure 1 presents an _order-based flow-diagram_ that juxtaposes:  
Figure 1: Order-based flow-diagram of the integrated scheduling-and-control algorithm. (**Left**): standard reactive POLCA (MRP-driven release, FIFO/EDD dispatching). (**Right**): proactive finite-capacity schedule with POLCA constraints and optional rolling rescheduling. In the Basic Case experiments presented in Section 3, only a static schedule is computed at the beginning, and no rescheduling occurs.  
* **Reactive control** (left branch): the standard POLCA mechanism driven by a high-level MRP, with jobs queued FIFO/EDD at each workcenter.
* **Proactive control** (right branch): a finite-capacity schedule that respects POLCA card limits and can be periodically updated when shop-floor deviations become significant.  
The diagram is expressed from the viewpoint of a single production order traversing its routing. An order can start the next operation only if the following three conditions hold:  
1. the operation is _authorized_, meaning its release datetime from the Authorization List has been reached (this datetime is determined either by the MRP system in the reactive case or by the finite-capacity scheduler in the proactive case),
2. the _POLCA card of the next loop_ is available and therefore taken,
3. the workcenter is free and the order is next in the queue according to the _Authorization List_.  
After processing, the order releases the card of the previous loop, thereby freeing capacity upstream. Note that the diagram explicitly includes a feedback loop enabling rolling rescheduling in the proactive branch; however, this feedback mechanism remains inactive in the Basic Case experiments, where the schedule is computed once at time zero and never updated.