WHOLE-CABIN BOARDING SIMULATION RESEARCH LOG Version: Research Log v8 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 ====================================================================== Planned Purpose --------------- Run every random scenario twice: 1. BASELINE The Experiment 8 movement architecture remains unchanged. 2. YIELD-SPACE PROTECTED The same passenger manifest, seats, aisle assignment, passenger order, occupancy, headway and random seed are reused. The only changed variable is a local architectural rule: When a passenger is waiting at a row and currently requires one or more aisle yield tiles for seated blockers, another aisle passenger is not permitted to move into those required empty tiles. This is not an airline boarding policy. It does not group passengers, call cabin sections, reorder queues or prioritise seat types. It is a local space-preservation mechanism inside the simulation. Experimental Conditions ----------------------- Unchanged controlled variables: - the same three cabin configurations; - occupancy options 80%, 85%, 90%, 95% and 98%; - random unique seat assignment; - random passenger order; - fixed middle-bank aisle assignment; - entry-headway options 0-0, 0-1, 0-2, 1-2 and 1-3; - uniform one-tile-per-tick walking; - one standing passenger per aisle tile; - no luggage or other external factors; - 1,500-tick stall detector; - 30,000 maximum ticks. Paired-experiment control: Each baseline/protected pair uses the same scenario seed and therefore the same manifest and random queues. New Evidence to Collect ----------------------- For each baseline/protected pair: - passengers seated; - completion percentage; - complete-board success or stall; - completion/stall tick; - waiting outside; - moving in aisle; - waiting at rows; - longest dependency chain; - frozen component count; - final row-event dependency-chain count; - number of protection holds; - change in passengers seated; - change in completion percentage; - change in passengers remaining outside; - whether a previously stalled scenario completed; - whether the protected run performed worse. Protection Rule --------------- Before an ordinary aisle passenger moves into an empty tile, the code checks whether that tile is currently required as yield space by a waiting-row passenger in the same aisle. If so, movement into the tile is held for that tick. The number of protected tiles equals the number of seated blockers currently between the row passenger and the serving aisle. Important Boundaries -------------------- - Rear-boundary locks remain unresolved. - No passenger moves backward. - No passenger changes aisle. - No queue is reordered. - No airline policy is introduced. - The protection rule does not force a seat event to start; it only preserves the physical space needed for the normal event rule. Interpretation Goal ------------------- Experiment 9 should determine whether the one-tile-earlier analytical result from Experiment 8 predicts real improvement when tested dynamically. A strong positive result would justify further refinement of local yield-space reservation before any airline-policy experiment begins. A weak or negative result would show that the counterfactual was too local and that preserving one region merely transfers congestion elsewhere. ====================================================================== CONTROL-VARIABLE POLICY ====================================================================== Airline boarding policies remain excluded. Experiment 9 changes only the internal local space-preservation rule and uses paired scenario seeds to isolate its effect. ====================================================================== RUNNING CONCLUSIONS ====================================================================== 1. Active seat events normally complete once started. 2. Experiment 7 ruled out closed passenger-reference cycles. 3. Experiment 8 established that the final stable state is dominated by physical yield-space dependencies. 4. Historical prerequisite labels are less reliable than direct final-snapshot analysis. 5. One-tile-earlier holding was analytically supported in 26 of 30 scenarios. 6. Experiment 9 will test that local architectural mechanism dynamically without introducing airline boarding policies. 7. Airline policies should not begin until the internal architecture can complete or reliably recover under controlled random boarding. ====================================================================== END OF RESEARCH LOG v8 ======================================================================