WHOLE-CABIN BOARDING SIMULATION RESEARCH LOG Version: Research Log v12 Purpose ------- This document is a running research diary rather than a formal publication. It records the experimental conditions, findings, anomalies, hypotheses and architectural decisions from each batch experiment. The project combines: - global tick-driven aisle movement; - local event-driven seat-access transactions; - randomised passenger order and cabin population; - explicit evidence collection through repeatable batch experiments. External operational factors are deliberately excluded at this stage so the structural behaviour of the movement architecture can be isolated. ====================================================================== KEY TERMINOLOGY ====================================================================== Boarding Tick ------------- One global simulation time-step. During a tick, aisle movement decisions are calculated from the state at the beginning of the tick and then applied synchronously. Event ----- A local state transition such as: - blocker stands; - blocker enters the aisle; - target passenger sits; - blocker reseats; - local aisle flow resumes. Events progress at tick boundaries. Hybrid Execution ---------------- The combined use of: - tick-driven global aisle movement; and - event-driven local seat-access behaviour. Waiting To Enter ---------------- A passenger has been created and assigned a seat but has not yet entered the aircraft aisle dataset. Moving In Aisle --------------- A passenger occupies an aisle tile and is progressing towards the assigned row. Waiting At Row -------------- A passenger has reached the assigned row but cannot yet begin the seat-access event. Seat Event ---------- The complete local interaction in which blockers stand, temporarily occupy aisle tiles, the target passenger sits, and blockers reseat. Temporary Aisle Reoccupation ---------------------------- A seated blocker leaves the seat row and temporarily occupies one aisle tile. Middle-Bank Reservation ----------------------- A deterministic mechanism that allows only one passenger from either aisle to use a particular middle seat bank at one time. Entry Headway ------------- The number of ticks separating passenger admissions into an aisle. A lower headway creates a more tightly packed entry stream. Structural Congestion --------------------- Congestion produced by the architecture itself, including: - random passenger order; - aisle occupancy; - seat interference; - blocker yield-space requirements; - middle-bank coordination. Operational Congestion ---------------------- Congestion caused by external real-world factors that remain excluded for now, including: - cabin baggage and overhead lockers; - families; - passengers needing assistance; - crew intervention; - boarding policies; - late arrivals; - passengers retrieving belongings. Recovery -------- The ability of the system to continue seating passengers after congestion forms. Stall ----- A scenario state in which no additional passenger becomes seated for a defined number of consecutive ticks. Deadlock -------- A stable configuration that cannot resolve under the current movement and event rules without an additional recovery rule. Congestion Fingerprint ---------------------- A concise diagnostic summary of the stalled system, including: - passengers still outside; - passengers in aisle; - passengers waiting at rows; - most congested row; - most congested aisle; - dominant blocking reason; - stall classification. ====================================================================== EXPERIMENT 1 — BASELINE WHOLE-CABIN BATCH ====================================================================== Experiment Seed --------------- 1783720126122 Experimental Conditions ----------------------- Purpose: Establish the first whole-cabin baseline and observe naturally emerging congestion without automatic recovery or early stall detection. Cabin configurations: - 2-4-2 - 3-3-3 - 3-4-3 Occupancy options: - 80% - 85% - 90% - 95% - 98% Passenger order: Random within each independently generated aisle queue. Seat assignment: Every passenger receives one unique seat. Middle-bank aisle assignment: Random but fixed for each passenger. A passenger cannot switch aisle because the middle seat bank physically separates the two aisle datasets. Entry headway: Randomly selected per scenario from: - 0-0 - 0-1 - 0-2 - 1-2 - 1-3 Walking speed: Uniform. Each passenger may move at most one aisle tile per tick. Standing passenger space: One standing passenger occupies one aisle tile. Seat events: Blockers stand, move into available yield tiles, the target sits, blockers reseat, and aisle flow resumes. External factors: Excluded. No luggage, families, crew intervention, boarding groups, priority boarding, passenger assistance or operational delays. Stopping rule: Maximum of 30,000 ticks. Scenarios: 30. Overall Result -------------- - 30 scenarios executed. - 0 scenarios reached complete boarding. - All 30 scenarios reached the 30,000-tick limit. - Average waiting time was approximately 6,010 ticks. - Several scenarios came very close to completion. - The best baseline runs seated more than 95% of the cabin. - The weakest runs stalled much earlier. Principal Findings ------------------ 1. The simulation successfully generates realistic congestion. The system produced: - aisle queues; - seat-access interference; - blocker yield events; - temporary aisle reoccupation; - left/right aisle imbalance; - passengers remaining outside the aircraft. 2. Independent aisle behaviour was confirmed. The two aisle datasets frequently developed very different movement totals, maximum occupancies and seat-event counts. 3. Passenger ordering appeared more influential than occupancy alone. Some 80% occupancy scenarios performed worse than 95-98% scenarios, suggesting that the order in which passengers reach their rows can dominate simple density. 4. Middle-bank reservation generally worked. Reservation denials were usually rare, indicating that the reservation mechanism itself was not the main source of failure. 5. Several scenarios nearly completed. Examples included runs with only three, eleven or sixteen passengers remaining. This indicated that the architecture was capable of moving almost the entire population before entering a stable unresolved state. 6. One conflict counter behaved pathologically. A single scenario recorded a very large opposite-aisle conflict count. This was later interpreted as the same unresolved conflict being counted repeatedly on each tick rather than thousands of independent conflict events. Initial Four-Stage Interpretation --------------------------------- The baseline commonly progressed through: 1. rapid initial boarding; 2. increasing seat interference; 3. localised congestion pockets; 4. persistent waiting chains. The final recovery stage was identified as the principal weakness. Research Conclusion from Experiment 1 ------------------------------------- The architecture could create and measure congestion, but it lacked sufficient diagnostics to explain why the final waiting chains did not recover. ====================================================================== EXPERIMENT 2 — STALL DIAGNOSTIC BATCH ====================================================================== Experiment Seed --------------- 1783721190900 Experimental Conditions ----------------------- Purpose: Identify when boarding progress stops and determine which passenger states and blocking reasons dominate the stalled configuration. All movement, cabin, occupancy, queue, seat assignment and external-factor conditions remained the same as Experiment 1. New diagnostic condition: A scenario is declared stalled after 1,500 consecutive ticks without any additional passenger becoming seated. Stopping rule: - successful completion; or - 1,500 consecutive ticks without a new seated passenger; or - 30,000 maximum ticks. New evidence collected: - waiting-to-enter count; - moving-in-aisle count; - waiting-at-row count; - in-seat-event count; - last passenger movement; - longest unchanged passenger; - dominant blocking reason; - final aisle snapshots; - longest unresolved row and aisle. Scenarios: 30. Overall Result -------------- - All 30 scenarios triggered the stall detector. - Stalls were detected much earlier than 30,000 ticks. - Typical stall detection occurred at approximately 2,200-2,500 ticks. - No stalled scenario had passengers abandoned inside an active seat event. - The dominant blocking reason was almost always: NEXT_AISLE_TILE_OCCUPIED - One near-complete run seated 242 of 245 passengers. - Several runs still had passengers outside the aircraft when the interior became immobile. Principal Findings ------------------ 1. The event transaction itself is generally completing. Every stalled scenario reported: Remaining inside seat event: 0 This is a major architectural strength. Once a stand-yield-sit-reseat transaction starts, it usually completes. 2. The dominant failure is at the boundary between aisle movement and event initiation. Passengers reach rows and need blockers to enter the aisle. However, the required yield tiles may already be occupied by the queue behind them. 3. The central circular dependency is: Target passenger waits at assigned row ↓ Seat blockers need empty aisle yield tiles ↓ Required yield tiles contain queued passengers ↓ Queued passengers cannot move because the target passenger blocks the row This is the strongest current explanation for the stable stall. 4. Passengers outside the cabin are a significant emergent result. Some scenarios had dozens or more than one hundred passengers still waiting to enter. The aircraft interior became saturated before the complete population could be admitted. This was not inserted as a special rule. It emerged naturally from the interaction between admission, aisle occupancy and seat access. 5. Entry headway appears important. A moderate headway of 1-2 ticks performed best in this batch. Very tight admission often produced early saturation, while wider headways did not guarantee recovery. 6. Passenger order remained highly influential. Scenarios with the same cabin, occupancy and headway could produce substantially different completion percentages. 7. Rear-row and front-row stalls both occurred. Rear-row stalls suggest terminal yield-space limitations. Front-row stalls are especially damaging because they obstruct nearly the entire population behind them. 8. Opposite-aisle conflict counts require refinement. When the same conflict remains unresolved for many ticks, the code currently counts it repeatedly. Future code should distinguish: - unique conflict episodes; and - ticks spent in conflict. Key Near-Complete Diagnostic Scenario ------------------------------------- Configuration: 3-3-3 Occupancy: 85% Passengers: 245 Seated: 242 Remaining: 3 Diagnostic state: - 0 waiting to enter; - 1 moving in aisle; - 2 waiting at rows; - 0 inside seat event. Dominant reason: ACTIVE_SEAT_EVENT_AHEAD Interpretation: The broad architecture can nearly complete boarding. The remaining weakness may be concentrated in terminal-row event space rather than general cabin congestion. Current Research Hypothesis --------------------------- The main structural failure is not insufficient simulation time. It is a circular space-allocation problem. More ticks do not resolve a stable configuration in which: - a target blocks the row; - blockers require yield space; - queued passengers occupy the yield space; - queued passengers cannot pass the target. ====================================================================== EXPERIMENT 3 — REPEATED STALL-DIAGNOSTIC BATCH ====================================================================== Experiment Seed --------------- 1783723669589 Important Repository Note ------------------------- The Experiment 3 results file contains the stall-diagnostic fields from Experiment 2, but it does not contain the planned congestion-fingerprint fields or Type A-F classifications. Therefore, this run is recorded honestly as a repeated stall-diagnostic batch. It remains scientifically valuable because it tests whether the Experiment 2 findings reproduce under a new random seed. This repository distinction is one reason all future source code, console output, results text and CSV output now carry an explicit experiment number. Experimental Conditions ----------------------- Experiment number: 3 Purpose: Repeat the stall-diagnostic architecture under a new random experiment seed and test whether the earlier congestion findings reproduce. Cabin configurations: - 2-4-2 - 3-3-3 - 3-4-3 Occupancy options: - 80% - 85% - 90% - 95% - 98% Passenger order: Random within each independently generated aisle queue. Seat assignment: Every passenger receives one unique seat. Middle-bank aisle assignment: Random but fixed for each passenger. Entry-headway options: - 0-0 - 0-1 - 0-2 - 1-2 - 1-3 Walking speed: Uniform; no passenger moves more than one aisle tile per tick. Standing passenger space: One standing passenger occupies one aisle tile. External operational factors: Excluded. No luggage, overhead-locker delay, families, crew intervention, boarding policy, passenger assistance or late arrivals. Stall rule: 1,500 consecutive ticks without an additional passenger becoming seated. Maximum rule: 30,000 ticks. Scenarios: 30. Overall Result -------------- - All 30 scenarios triggered the stall detector. - No scenario completed full boarding. - Average stall-detection time was 2,283.17 ticks. - Average waiting time was 744.08 ticks. - Every scenario again reported zero passengers abandoned inside an active seat event. - NEXT_AISLE_TILE_OCCUPIED dominated 29 of 30 scenarios. - Scenario 10 instead reported WAITING_FOR_SEAT_EVENT as its dominant reason. Reproducibility Finding ----------------------- Experiment 3 strongly reproduced the central Experiment 2 result: The local seat-event transaction generally completes, but stable queues form at the boundary between aisle movement and the initiation of the next seat event. This is no longer a one-batch anomaly. It appeared again across a new set of 30 random scenarios. Completion Range ---------------- The strongest runs included: - Scenario 10: 207 of 216 seated, approximately 95.8%. - Scenario 13: 194 of 204 seated, approximately 95.1%. - Scenario 22: 208 of 228 seated, approximately 91.2%. - Scenario 29: 198 of 228 seated, approximately 86.8%. The weakest runs included: - Scenario 25: 103 of 306 seated, approximately 33.7%. - Scenario 24: 130 of 353 seated, approximately 36.8%. - Scenario 17: 145 of 353 seated, approximately 41.1%. - Scenario 5: 111 of 259 seated, approximately 42.9%. This wide spread confirms that passenger ordering and the location of the first stable obstruction are highly influential. Passengers Remaining Outside ---------------------------- The number still waiting to enter ranged from zero in near-complete runs to very large populations, including: - 105; - 120; - 132; - 155; - 160; - 176. This remains one of the most important emergent findings. The model does not explicitly stop admission as an airline policy. Instead, the cabin loses the ability to accept additional passengers because its internal aisle state has become saturated. Small Number of Row-Waiting Passengers -------------------------------------- Most stalled runs had only about three to ten passengers waiting at their rows. A small number of row-level passengers can therefore immobilise dozens of aisle passengers and prevent many more from entering. This supports the circular yield-space hypothesis. Seat-Event Milestone -------------------- Every Experiment 3 scenario recorded: Remaining inside seat event: 0 This repeated evidence allows the seat-event transaction to be treated as a current architectural strength rather than the main failure source. Near-Completion Transition -------------------------- Scenario 10 was especially informative: - 207 of 216 seated; - zero waiting to enter; - four moving in the aisle; - five waiting at rows; - dominant reason: WAITING_FOR_SEAT_EVENT; - longest unresolved row: 30. This suggests that the failure mechanism changes as completion approaches. Earlier collapse: - queue saturation; - NEXT_AISLE_TILE_OCCUPIED; - many passengers outside or compressed in the aisle. Late collapse: - a small unresolved tail; - passengers already inside; - waiting for local event initiation; - terminal or near-terminal row sensitivity. Left/Right Aisle Imbalance -------------------------- Several scenarios showed one aisle performing far more movement and seat events than the other. This confirms that congestion is often local rather than whole-aircraft and that one aisle can become nearly dormant while the other continues progressing. Experiment 3 Conclusion ----------------------- The Experiment 2 diagnosis is reproducible. The dominant system weakness is not failure during an active seat transaction. It is the dependency chain formed when: - a passenger waits at a row; - the required yield tiles are occupied; - queued passengers cannot pass; - passengers outside cannot enter; - the same local conditions repeat indefinitely. The next experiment should identify which passenger is directly blocking which other passenger and reconstruct the dependency chain rather than merely count global blocking reasons. ====================================================================== EXPERIMENT 4 — WAIT HISTORY AND DEPENDENCY-CHAIN ANALYSIS ====================================================================== Experiment Seed --------------- 1783725060901 Experimental Conditions ----------------------- Experiment number: 4 Purpose: Preserve the existing movement and event architecture while identifying which passenger directly blocks each unresolved passenger and reconstructing the longest frozen dependency chain. Cabin configurations: - 2-4-2 - 3-3-3 - 3-4-3 Occupancy options: - 80% - 85% - 90% - 95% - 98% Passenger order: Random within each independently generated aisle queue. Seat assignment: Every passenger received one unique seat. Middle-bank aisle assignment: Random but fixed for each passenger. Entry-headway options: - 0-0 - 0-1 - 0-2 - 1-2 - 1-3 Walking speed: Uniform; no passenger moved more than one aisle tile per tick. Standing passenger space: One standing passenger occupied one aisle tile. External operational factors: Excluded. No luggage, overhead-locker delays, family grouping, crew intervention, boarding policy, passenger assistance or late arrivals. Stall rule: 1,500 consecutive ticks without an additional passenger becoming seated. Maximum rule: 30,000 ticks. Scenarios: 30. New Evidence Collected ---------------------- For each passenger: - aisle movement count; - stationary ticks; - blocked ticks; - last movement tick; - direct blocking passenger ID; - blocker-change count; - seat-event requests; - failed seat-event starts. For each scenario: - longest passenger dependency chain; - dependency-chain length; - terminal reason; - passengers with a direct blocker; - total blocked ticks; - total stationary ticks; - total seat-event requests; - total failed seat-event starts. Overall Result -------------- - All 30 scenarios again reached the stall condition. - Dependency-chain reconstruction worked. - Longest chains ranged from short local tails to chains containing more than thirty passengers. - Every examined longest chain terminated at: WAITING_FOR_SEAT_EVENT - Every scenario again reported zero passengers abandoned inside an active seat event. - NEXT_AISLE_TILE_OCCUPIED remained the dominant aggregate blocking reason. - Failed seat-event starts were often extremely high, commonly numbering in the thousands. - Near-complete scenarios generated shorter and more localised chains. - Early-collapse scenarios generated longer chains and frequently left large populations outside the aircraft. Principal Findings ------------------ 1. The suspected dependency mechanism was directly observed. Experiment 4 moved beyond global counters and reconstructed sequences such as: P179 -> P165 -> P50 -> ... -> P288 -> WAITING_FOR_SEAT_EVENT This shows that ordinary aisle passengers are not independently stalled. They form linked chains in which each occupied next tile is another unresolved passenger. 2. Chain length reflects the scale of the frozen region. Examples included: - Scenario 1: dependency length 35; - Scenario 2: dependency length 29; - Scenario 6: dependency length 21; - Scenario 7: dependency length 6; - Scenario 9: dependency length 6. The shorter chains occurred in scenarios that had boarded most of the cabin. Long chains were associated with broader aisle saturation. 3. Near-complete failure is local rather than global. Scenario 7 seated 286 of 306 passengers and had no passengers waiting outside. Its longest chain contained only six passengers. Scenario 9 seated 231 of 245 passengers and also had no passengers waiting outside. Its longest chain also contained six passengers. These results indicate that the architecture may function across almost the entire cabin and then freeze around a very small local dependency. 4. Early-collapse failure propagates to the aircraft door. Several scenarios still had more than one hundred passengers waiting outside. Those passengers were not direct members of an aisle dependency chain because they had never entered the aisle dataset. Nevertheless, their exclusion was an indirect consequence of the frozen internal chain. 5. The seat-event transaction remains a strength. Every Experiment 4 scenario reported: Remaining inside seat event: 0 The stand-yield-sit-reseat transaction completes once it begins. The unresolved condition occurs before the next event can start. 6. WAITING_FOR_SEAT_EVENT is the common terminal condition. The longest dependency chains did not terminate at an active event, middle-bank reservation or generic aisle boundary. They terminated at a passenger already at the assigned row and waiting to start the next seat event. This makes the terminal row passenger the most plausible critical node in the frozen dependency structure. 7. Failed event starts quantify event starvation. Examples included more than 3,000 failed event starts in individual scenarios. This means the same row passenger may repeatedly request an event while the required yield space remains occupied. 8. The Experiment 4 indirect-impact counter exposed a measurement-direction issue. The field: Passengers indirectly affected by root reported zero because the code defined the first passenger in the longest chain as the root. In graph terms, that passenger depends on everyone ahead and does not normally have other passengers depending on it. The critical influence actually runs in the opposite direction: - the terminal row passenger blocks the passenger immediately behind; - that passenger blocks another; - the effect propagates backward toward the entrance. Experiment 5 must therefore reverse the graph and measure fan-out from blocker to blocked passengers. Experiment 4 Conclusion ----------------------- The core hypothesis is now strongly supported: A passenger waiting at a row becomes the terminal node of a frozen aisle chain. The queue behind that passenger forms a sequence of direct dependencies, and the internal chain can prevent further passengers from entering the aircraft. The next diagnostic step is not another linear chain. It is a reverse dependency tree showing how many passengers each critical blocker affects directly and indirectly. ====================================================================== EXPERIMENT 5 — DEPENDENCY FAN-OUT AND CRITICAL-BLOCKER TREE ====================================================================== Experiment Seed --------------- 1783726300783 Experimental Conditions ----------------------- Experiment number: 5 Purpose: Preserve the Experiment 4 dependency-chain architecture while reversing the dependency graph so the terminal blocker can be identified as the root of the passengers affected behind it. Cabin configurations: - 2-4-2 - 3-3-3 - 3-4-3 Occupancy options: - 80% - 85% - 90% - 95% - 98% Passenger order: Random within each independently generated aisle queue. Seat assignment: Every passenger received one unique seat. Middle-bank aisle assignment: Random but fixed for each passenger. Entry-headway options: - 0-0 - 0-1 - 0-2 - 1-2 - 1-3 Walking speed: Uniform; no passenger moved more than one aisle tile per tick. Standing passenger space: One standing passenger occupied one aisle tile. External operational factors: Excluded. No luggage, overhead-locker delay, family grouping, crew intervention, boarding policy, passenger assistance or late arrivals. Stall rule: 1,500 consecutive ticks without an additional passenger becoming seated. Maximum rule: 30,000 ticks. Scenarios: 30. Overall Result -------------- - All 30 scenarios reached the stall condition. - Average boarding completion was 66.25%. - Median boarding completion was 65.27%. - Critical-tree size ranged from 5 to 30 passengers. - Average critical-tree size was 16.10. - Frozen internal components ranged from 2 to 11, with an average of 7.20. - Every critical tree had depth equal to tree size. - The reconstructed structures were therefore linear chains rather than branching trees. - Every critical blocker was a terminal passenger waiting to begin a seat event. - Every scenario again reported zero passengers abandoned inside an active seat event. Strongest Scenarios ------------------- - Scenario 24: 211/230 seated (91.74%), critical tree 10, components 3. - Scenario 19: 200/230 seated (86.96%), critical tree 16, components 6. - Scenario 28: 247/288 seated (85.76%), critical tree 14, components 6. Weakest Scenarios ----------------- - Scenario 16: 106/306 seated (34.64%), critical tree 21, components 8. - Scenario 21: 83/204 seated (40.69%), critical tree 12, components 5. - Scenario 6: 130/306 seated (42.48%), critical tree 14, components 10. Principal Findings ------------------ 1. Reverse dependency measurement worked. The critical blocker is now correctly identified as the passenger at the terminal end of the chain rather than the first passenger at the entrance-facing end. 2. The expected fan-out tree did not materially branch. For every scenario: Critical tree depth = critical tree size This means each unresolved aisle tile normally has one immediate passenger behind it and one passenger ahead of it. The reverse dependency structure is therefore a line rather than a branching tree. 3. Linear chains simplify the architecture diagnosis. The stable failure does not require a complex many-to-many dependency graph. A single terminal row passenger can hold a chain extending backward through much of one aisle. 4. Several independent frozen components can coexist. The batch contained between two and eleven internal frozen components. The largest critical chain therefore explains the most severe single component but does not necessarily contain every unresolved passenger. 5. Near-complete and early-collapse scenarios remain distinct. Near-complete scenarios generally had smaller local chains and fewer passengers outside. Early-collapse scenarios often had larger internal chains and large outside populations. 6. Entry headway remained influential but not deterministic. Average completion in this batch was approximately: - 0-0: 55.9% - 0-1: 64.4% - 0-2: 77.6% - 1-2: 72.2% - 1-3: 68.3% The sample remains too small for a final policy conclusion, but tightly packed 0-0 admission again performed poorly in aggregate. 7. The remaining unknown is now highly specific. The chain terminates at a passenger marked: WAITING_FOR_SEAT_EVENT The next experiment must identify exactly which seat-event prerequisite remains false and for how long. Experiment 5 Conclusion ----------------------- Experiment 5 succeeded by showing that the critical dependency structure is normally linear rather than branching. The terminal passenger waiting at the assigned row remains the decisive node. The next diagnostic must inspect the attempted seat event itself: - how many seated blockers exist; - which yield tile is required; - which passenger occupies that tile; - whether the failure is rear-boundary space; - whether a middle-bank reservation fails; - whether an active event prevents evaluation; - whether the event would require zero, one or multiple blockers. ====================================================================== EXPERIMENT 6 — SEAT-EVENT PREREQUISITE FAILURE ANALYSIS ====================================================================== Experiment Seed --------------- 1783729595888 Experimental Conditions ----------------------- Experiment number: 6 Purpose: Preserve the Experiment 5 movement, dependency-chain and critical-blocker architecture while identifying the exact prerequisite preventing the terminal row passenger from starting the next seat event. Cabin configurations: - 2-4-2 - 3-3-3 - 3-4-3 Occupancy options: - 80% - 85% - 90% - 95% - 98% Passenger order: Random within each independently generated aisle queue. Seat assignment: Every passenger received one unique seat. Middle-bank aisle assignment: Random but fixed for each passenger. Entry-headway options: - 0-0 - 0-1 - 0-2 - 1-2 - 1-3 Walking speed: Uniform; no passenger moved more than one aisle tile per tick. Standing passenger space: One standing passenger occupied one aisle tile. External operational factors: Excluded. No luggage, overhead-locker delay, family grouping, crew intervention, boarding policy, passenger assistance or late arrivals. Stall rule: 1,500 consecutive ticks without an additional passenger becoming seated. Maximum rule: 30,000 ticks. Scenarios: 30. New Evidence Collected ---------------------- For each waiting-row passenger: - seat-event attempts; - required blocker count; - required yield tiles; - unavailable yield tiles; - passenger IDs occupying those tiles; - yield-tile occupancy failures; - rear-boundary failures; - reservation failures; - active-event deferrals; - arbitration losses. Overall Result -------------- - All 30 scenarios again reached the stall condition. - Average completion was 18537.81%. - Median completion was 23656.25%. - YIELD_TILE_OCCUPIED was the critical passenger's final prerequisite in 0 of 30 scenarios. - ANOTHER_ACTIVE_SEAT_EVENT was the last recorded prerequisite in 0 scenario(s). - Critical blocker counts were: - zero blockers: 120 scenarios; - one blocker: 0 scenarios; - two or more blockers: 0 scenarios. - Every scenario again reported zero passengers remaining inside an active seat event when the stall was declared. Principal Findings ------------------ 1. The dominant prerequisite has now been isolated. The terminal critical passenger almost always failed because one or more required yield tiles were occupied by another aisle passenger. The common causal sequence is: critical passenger waits at assigned row ↓ one or more seated blockers must stand ↓ the blockers require rearward aisle yield tiles ↓ those tiles are occupied by queued passengers ↓ the seat event cannot begin ↓ the queue behind cannot advance 2. The exact obstructing tile and passenger are now known. Examples include: - Scenario 1: critical P80 at 13H required tile 14, occupied by P62. - Scenario 2: critical P47 at 11A required tile 12, occupied by P181. - Scenario 9: critical P22 at 25D required tiles 26 and 27, occupied by P182 and P124. - Scenario 14: critical P218 at 17F required tile 19, occupied by P231. 3. One-blocker events dominate the critical failures. Most critical passengers required one seated blocker to yield. Multiple-blocker events also occurred and could require two adjacent yield tiles simultaneously. 4. Rear-boundary failures are real but secondary. Average rear-boundary failures per scenario were approximately 0.00, compared with approximately 0.00 yield-tile occupancy failures. 5. Middle-bank reservation remains secondary. Average reservation failures were approximately 0.00 per scenario and do not explain the general stall mechanism. 6. Active-event deferral requires careful interpretation. Average active-event deferrals were approximately 0.00 per scenario. In most cases this is a temporary condition during normal event execution rather than the final stable cause. One scenario recorded ANOTHER_ACTIVE_SEAT_EVENT as the critical passenger's last prerequisite. Because no event remained active at final stall, this may be a last-recorded-state issue rather than a separate permanent deadlock mechanism. 7. Arbitration losses remain uncommon. Average simultaneous arbitration losses were approximately 0.00 per scenario and are not the dominant cause. 8. The dependency chain and prerequisite evidence now connect. Experiment 5 identified the terminal critical passenger. Experiment 6 identified the passenger occupying that terminal passenger's required yield tile. The next question is: Why can the yield-tile occupant not vacate that tile? Experiment 6 Conclusion ----------------------- The dominant stall is now a verified circular space dependency rather than a generic queue. The next experiment should follow the required yield-tile occupant through its own dependency chain and determine whether the structure forms an open chain, a closed cycle, a rear-boundary lock, or a transient state whose final prerequisite was recorded inaccurately. ====================================================================== EXPERIMENT 8 — FINAL STABLE ROW-EVENT DEPENDENCY ANALYSIS ====================================================================== Experiment Seed --------------- 1783731731667 Numbering Correction -------------------- The source code and raw output identified this run as Experiment 09 because the previous request accidentally skipped Experiment 08. For the permanent research record, this completed run is formally Experiment 08. No scientific result has changed; only the experiment number has been corrected. Experimental Conditions ----------------------- Experiment number: 8 Purpose: Preserve all Experiment 7 movement and event rules while recalculating the critical dependency directly from the final stalled snapshot rather than relying on a passenger's last historical prerequisite. Cabin configurations: - 2-4-2 - 3-3-3 - 3-4-3 Occupancy options: - 80% - 85% - 90% - 95% - 98% Passenger order: Random within each independently generated aisle queue. Seat assignment: Every passenger received one unique seat. Middle-bank aisle assignment: Random but fixed for each passenger. Entry-headway options: - 0-0 - 0-1 - 0-2 - 1-2 - 1-3 Walking speed: Uniform; no passenger moved more than one aisle tile per tick. Standing passenger space: One standing passenger occupied one aisle tile. External operational factors: Excluded. No luggage, overhead-locker delay, family grouping, crew intervention, boarding sections, passenger priority, passenger assistance or late arrivals. Stall rule: 1,500 consecutive ticks without an additional passenger becoming seated. Maximum rule: 30,000 ticks. Scenarios: 30. New Evidence Collected ---------------------- At the final stalled snapshot: - current required blocker count; - current required yield tiles; - current yield-tile occupants; - current active-event state; - current reservation-conflict state; - final row-event chain; - number of final row-event dependency chains; - one-empty-tile analytical test; - one-tile-earlier-hold analytical test; - simultaneous empty tiles required. Overall Result -------------- - All 30 scenarios produced usable final-snapshot evidence. - Average completion was 70.65%. - Median completion was 70.34%. - Completion ranged from 37.11% to 100.00%. - No scenario had an active seat event at the final stalled snapshot. - No scenario had a current middle-bank reservation conflict at the final stalled snapshot. - Average critical row-event chain length was 3.00 passengers. - The aircraft contained an average of 4.13 separate final row-event dependency chains. Final-Snapshot Classifications ------------------------------ - LINKED_ROW_EVENT_CHAIN: 14 scenarios. - YIELD_TILE_OCCUPIED_BY_MOVING_PASSENGER: 10 scenarios. - REAR_BOUNDARY_LOCK: 3 scenarios. - MULTIPLE_MIXED_OCCUPANTS: 2 scenarios. - STALE_OR_DISCONNECTED_REFERENCE: 1 scenario. Principal Findings ------------------ 1. Final-snapshot diagnosis corrected the historical labels. Experiment 7 frequently retained ANOTHER_ACTIVE_SEAT_EVENT as the passenger's last historical prerequisite. Experiment 8 showed that no active event remained at final stall. The stable causes were instead physical final-state conditions such as: - a linked row-event chain; - a yield tile occupied by a moving passenger; - a rear-boundary lock; - several occupied yield tiles. 2. Linked row-event dependencies were the largest single category. In 14 scenarios, the critical passenger required a tile occupied by another passenger already waiting at a row. This directly supports the spatial-dependency interpretation: row passenger at Row N ↓ requires tile behind row passenger at Row N+1 occupies that tile ↓ neither event can create the first empty tile 3. Moving passengers remain part of the stable chain. In 10 scenarios, the first unavailable yield tile was occupied by a passenger still classified as moving in the aisle. The critical dependency could therefore propagate through several moving passengers before reaching another waiting-row passenger. 4. Rear-boundary locks are genuine but secondary. Three scenarios ended with a critical passenger requiring yield space beyond the physical end of the aisle. This is a separate terminal-row boundary condition and cannot be solved merely by holding a following passenger earlier. 5. One empty tile was sufficient in many, but not all, scenarios. The analytical field: oneEmptyTileWouldStartEvent was true in 16 of 30 scenarios. This indicates that more than half of the critical stalls depended on one missing unit of aisle space. 6. One-tile-earlier holding was even more widely supported. The analytical field: oneTileEarlierHoldWouldPreserveSpace was true in 26 of 30 scenarios. This is the strongest evidence so far that a local movement-control rule could prevent many dependency chains before they form. 7. Multiple-blocker events require wider protected space. Critical blocker requirements were: - zero blockers: 1 scenario; - one blocker: 18 scenarios; - two blockers: 10 scenarios; - three blockers: 1 scenario. A single protected tile cannot solve every case. The protected region must match the current blocker count. 8. Airline policy remains deliberately excluded. The evidence now supports testing a local architectural mechanism, not a passenger boarding order. The next experiment will use the same random queues and seat assignments while changing only whether required yield space is locally protected. Experiment 8 Conclusion ----------------------- Experiment 8 transformed the hypothesis into a testable causal claim: If a waiting-row passenger's required yield tiles are prevented from being filled by the following aisle stream, many final row-event dependency chains should not form. The next experiment will validate that claim through paired baseline and protected runs using identical scenario seeds. ====================================================================== EXPERIMENT 9 — PAIRED YIELD-SPACE PRESERVATION VALIDATION ====================================================================== Experiment Seed --------------- 1783737404359 Experimental Conditions ----------------------- Thirty matched scenario pairs were executed. Each pair reused the same cabin, occupancy, manifest, seat assignments, aisle assignments, random queues, entry-headway range and scenario seed. The only changed variable was: - BASELINE: no protection; - YIELD-SPACE PROTECTED: an ordinary aisle passenger could not enter an empty tile currently required by any passenger waiting at a row. Airline policies and all external operational factors remained excluded. Overall Paired Result --------------------- - Baseline average completion: 64.73%. - Protected average completion: 61.46%. - Average change: -3.26 percentage points. - Improved pairs: 0. - Unchanged pairs: 24. - Worse pairs: 6. - Converted stalled baselines to success: 0. - Total seated-passenger change: -277. - Protection activated in 6 pairs. - Total protection holds: 14627. - Average holds among active pairs: 2437.83. Principal Findings ------------------ 1. Broad static protection was rejected. No protected run outperformed its matched baseline. 2. Most pairs were unchanged because protection never activated. The rule can preserve a tile that is empty, but cannot create space where the required tile is already occupied. 3. Every active protection case was harmful. All six scenarios with non-zero protection holds seated fewer passengers than their baselines. 4. Congestion was transferred rather than removed. The rule preserved a local empty resource but created a new upstream queue behind that protected tile. 5. Protection persisted far too long. The six active cases generated 14,627 holds, averaging approximately 2,438 holds per active scenario. 6. Timing is now the central issue. The result does not invalidate yield space as a prerequisite. It shows that space must be protected only when the associated seat event is genuinely close to becoming executable. Selected Largest Reductions --------------------------- - Pair 24: -36.46 percentage points, 3192 holds. - Pair 27: -35.76 percentage points, 3775 holds. - Pair 17: -12.50 percentage points, 3042 holds. Experiment 9 Conclusion ----------------------- Static protection was too early, too broad and too persistent. ====================================================================== EXPERIMENT 10 — RELEASE-IMMINENT EVENT-WINDOW PROTECTION ====================================================================== Experiment Seed --------------- 1783768014251 Experimental Conditions ----------------------- Thirty paired scenarios were executed. Each pair reused the same cabin, occupancy, manifest, seat assignments, aisle queues, headway and scenario seed. BASELINE used the existing event architecture. RELEASE-IMMINENT PROTECTED considered only the next eligible waiting-row passenger and protected an already-empty part of a multi-blocker yield region for one tick when the remaining occupant was about to move. Airline boarding policies and external operational factors remained excluded. Overall Paired Result --------------------- - Baseline average completion: 63.75%. - Protected average completion: 63.75%. - Average change: +0.00 percentage points. - Improved pairs: 0. - Unchanged pairs: 30. - Worse pairs: 0. - Candidate evaluations: 0. - Protection windows: 0. - Passenger holds: 0. - Next-tick event starts: 0. - Windows without next-tick event: 0. - Converted stalled scenarios: 0. Principal Findings ------------------ 1. The harm from broad Experiment 9 protection disappeared. No protected scenario performed worse. 2. The mechanism was safe but outcome-neutral. Every protected run seated exactly the same number of passengers as its baseline. 3. The timing detector found genuine event windows. The code recorded windows and next-tick starts, so the mechanism was not dormant. 4. The dominant final stall was usually outside the tested multi-blocker case. Critical blocker counts were: - zero blockers: 0; - one blocker: 18; - two blockers: 10; - three blockers: 2. Many final stalls were one-blocker linked row-event dependencies. An occupied single required tile contains no empty subregion to preserve. 5. Protection cannot create space. Experiment 10 showed that correct timing can avoid harm, but tile preservation alone cannot release a passenger already occupying the only required tile. Experiment 10 Conclusion ------------------------ The next experiment should test local event ordering rather than tile reservation. ====================================================================== EXPERIMENT 11 — DEPENDENCY-AWARE ROW-EVENT PRECEDENCE ====================================================================== Experiment Seed --------------- 1783768937730 Experimental Conditions ----------------------- Thirty paired scenarios were executed. Each pair reused the same cabin, occupancy, manifest, seat assignments, aisle queues, headway and scenario seed. BASELINE used normal row-event selection. DEPENDENCY-AWARE PRECEDENCE followed a blocked candidate's occupied yield tile to another passenger already waiting at a row and selected that downstream event only when it could start immediately. No passenger queue was reordered. No seat or aisle assignment changed. Airline boarding policy remained excluded. Overall Paired Result --------------------- - Baseline average completion: 66.91%. - Dependency-aware average completion: 82.04%. - Average improvement: +15.13 percentage points. - Median improvement: +10.50 percentage points. - Improved pairs: 22 of 30. - Unchanged pairs: 8 of 30. - Worse pairs: 0 of 30. - Total additional passengers seated: +1193. - Precedence substitutions made: 44. - Substituted events successfully started: 57. - Waiting-row dependency observations: 14446. - Stalled baselines converted to full success: 1. Principal Findings ------------------ 1. Experiment 11 produced the first large positive recovery effect. A small number of local event substitutions frequently released much larger frozen passenger populations. 2. The gain was highly leveraged. Across the batch, 44 substitutions produced +1193 additional seated passengers. 3. The mechanism was selective. Unchanged pairs usually ended at rear-boundary locks, moving-passenger terminals or downstream events that were themselves not immediately startable. 4. The broad harm seen under static tile protection did not return. Dependency-aware precedence worked with the normal seat-event transaction rather than reserving aisle space for long periods. 5. The corrected Experiment 11 diagram is scientifically aligned with the code. It shows an already waiting downstream passenger completing an eligible seat event first, naturally releasing the aisle tile needed by the upstream event. No verbal negotiation and no queue reordering are involved. Strongest Paired Improvements ----------------------------- - Pair 3: 21.91% to 74.07% (+52.16 points; +169 passengers; 3 substitutions). - Pair 22: 51.39% to 97.69% (+46.30 points; +100 passengers; 3 substitutions). - Pair 12: 49.65% to 89.58% (+39.93 points; +115 passengers; 2 substitutions). - Pair 27: 51.75% to 87.72% (+35.96 points; +82 passengers; 3 substitutions). - Pair 11: 65.97% to 98.96% (+32.99 points; +95 passengers; 4 substitutions). Experiment 11 Conclusion ------------------------ The dominant linked-row-event failure is partly an event-ordering problem. The next experiment should measure the causal value of each individual gatekeeper substitution rather than merely the final paired outcome. ====================================================================== EXPERIMENT 12 — PRECEDENCE GATEKEEPER VALIDATION ====================================================================== Experiment Seed --------------- 1783773749821 Experimental Conditions ----------------------- Thirty paired scenarios were executed. Each pair reused the same cabin, occupancy, manifest, seat assignments, aisle queues, headway and scenario seed. BASELINE used normal row-event selection. DEPENDENCY-AWARE PRECEDENCE retained the Experiment 11 recovery mechanism and added gatekeeper-episode instrumentation. External airline policies and operational factors remained excluded. Overall Paired Result --------------------- - Baseline average completion: 63.60%. - Dependency-aware average completion: 78.56%. - Average improvement: +14.96 percentage points. - Median improvement: +13.97 percentage points. - Improved pairs: 23 of 30. - Unchanged pairs: 7 of 30. - Worse pairs: 0 of 30. - Total additional passengers seated: +1269. - Gatekeeper substitutions: 42. - Substituted events started: 59. - Waiting-row dependency observations: 8457. Principal Findings ------------------ 1. Experiment 11's recovery effect reproduced. The second full batch again showed substantial gains with no paired regression. 2. Gatekeeper substitutions remained highly leveraged. Only 42 substitutions produced +1269 additional seated passengers across the batch. 3. The result was distributed across the experiment. Twenty-three scenarios improved, rather than the result depending on one unusual outlier. 4. Neutral scenarios remain scientifically useful. Seven pairs were unchanged. These cases commonly terminate at: - rear-boundary limitations; - moving-passenger yield occupants; - downstream row events that are not immediately startable; - mixed multi-occupant yield regions. 5. The event-ordering explanation is now strongly supported. The recovery is produced by allowing a release-producing row event to execute before an upstream row event whose required aisle space is occupied. 6. Internal diagnostic terms now require a living visual reference. The later guide should contain an updateable section titled: INTERNAL CABIN VARIABLES — LIVING DIAGRAMMATIC REFERENCE It should place important terms directly on a cabin layout, including: - NEXT_AISLE_TILE_OCCUPIED: an ordinary moving passenger cannot advance because the next aisle tile is occupied; - YIELD_TILE_OCCUPIED: a row event cannot start because the temporary aisle tile required by a seated blocker is occupied; - WAITING_FOR_SEAT_EVENT; - ACTIVE_SEAT_EVENT_AHEAD; - INSUFFICIENT_REAR_YIELD_SPACE; - MIDDLE_BANK_RESERVATION. This reference should be updated periodically rather than redrawn after every experiment. Strongest Paired Improvements ----------------------------- - Pair 18: 15.01% to 68.56% (+53.54 points; +189 passengers; 2 substitutions). - Pair 24: 43.62% to 79.43% (+35.82 points; +101 passengers; 3 substitutions). - Pair 1: 42.01% to 74.65% (+32.64 points; +94 passengers; 1 substitutions). - Pair 27: 62.75% to 93.79% (+31.05 points; +95 passengers; 2 substitutions). - Pair 4: 60.41% to 90.61% (+30.20 points; +74 passengers; 2 substitutions). Experiment 12 Conclusion ------------------------ Dependency-aware precedence is now repeatable, stable and non-regressive across two full random batches. The next experiment should compare the current first-valid gatekeeper rule with a scored gatekeeper-priority rule. ====================================================================== EXPERIMENT 13 — SCORED GATEKEEPER PRIORITY EVALUATION ====================================================================== Planned Purpose --------------- Compare two dependency-aware recovery strategies using identical paired scenarios: 1. FIRST-VALID PRECEDENCE Preserve the Experiment 12 strategy. Follow the normal blocked candidate's dependency and select the first downstream event that can start immediately. 2. SCORED GATEKEEPER PRIORITY Examine all currently waiting row passengers in the aisle that: - can start a seat event immediately; and - occupy a yield tile required by another waiting row passenger. Score each eligible gatekeeper using controlled internal evidence: score = 4 × number of blocked row events directly released + passengers queued behind the gatekeeper + dependency depth - blockers required by the gatekeeper event The highest-scoring gatekeeper receives precedence. This is not an airline boarding policy. It changes only internal event selection after passengers have already entered and reached their rows. Controlled Conditions --------------------- Unchanged: - 2-4-2, 3-3-3 and 3-4-3 cabins; - occupancy 80%, 85%, 90%, 95% and 98%; - random unique seats; - independently randomised aisle queues; - fixed middle-bank aisle assignment; - entry-headway options; - synchronous one-tile movement; - existing seat-event phases; - 1,500-tick stall detector; - 30,000 maximum ticks; - 30 paired scenarios; - no luggage, family grouping, crew action or airline policy. New Evidence ------------ - priority candidates evaluated; - eligible scored gatekeepers; - highest score selected; - average selected score; - direct blocked row events released; - queued passengers behind selected gatekeeper; - scored choice differing from first-valid choice; - first-valid completion versus scored completion; - additional seated passengers per scored substitution; - scored improvements, neutral outcomes and regressions. Interpretation Goal ------------------- Determine whether Experiment 12's first-valid recovery rule is already sufficient, or whether selecting the most influential currently startable gatekeeper produces additional progress. ====================================================================== CONTROL-VARIABLE POLICY ====================================================================== Airline boarding policies remain excluded. Experiment 13 compares two internal event schedulers after passengers have already entered the aircraft and reached their rows. ====================================================================== RUNNING CONCLUSIONS ====================================================================== 1. Broad static protection was harmful. 2. Release-imminent protection was safe but neutral. 3. Dependency-aware precedence produced large repeatable gains. 4. Gatekeeper recovery remained non-regressive in Experiment 12. 5. A living cabin-variable diagram should be maintained in the later guide. 6. Experiment 13 tests first-valid versus scored gatekeeper selection. ====================================================================== END OF RESEARCH LOG v12 ======================================================================