Optimal Seating on the Airbus A380

marklit1 pts0 comments

Optimal Seating on the Airbus A380

Mark Litwintschik

I'm a Big Data, AI, GIS & Networking Consultant with clients in the UK, USA, Sweden, Ireland & Germany. Past clients include BAA plc, Bank of America Merrill Lynch, Blackberry, Bloomberg, British Telecom, Ford, Google, ITV, IMG, Nando's, News UK, Pizza Hut, Royal Mail, T-Mobile, Williams Formula 1, Wise & UBS. I hold both a Canadian and a British passport as well as permanent residence in Estonia. Find me on LinkedIn & X.

Optimal Seating on the Airbus A380

Earlier this week, I came across a paper titled "Optimizing Aircraft Seating Arrangement[s] for the Airbus A380 Flight SQ322". SQ322 refers to Singapore Airlines' code for their daily Singapore to London Heathrow route.

This paper has a counterpart codebase on GitHub where they use a few Python packages to walk through a solver that aims to maximise revenue with an optimal seating allocation between four classes on Singapore Airlines' SQ322 route.

One of the paper's authors, Inzaghi Moniaga appears to have graduated from UBC last month and now works on the Amazon Alexa team in Vancouver, Canada.

In this post, I'll run the solver and analyse its results.

My Workstation

I'm using a 5.7 GHz AMD Ryzen 9 9950X CPU. It has 16 cores and 32 threads and 1.2 MB of L1, 16 MB of L2 and 64 MB of L3 cache. It has a liquid cooler attached and is housed in a spacious, full-sized Cooler Master HAF 700 computer case.

The system has 96 GB of DDR5 RAM clocked at 4,800 MT/s and a 5th-generation, Crucial T700 4 TB NVMe M.2 SSD which can read at speeds up to 12,400 MB/s. There is a heatsink on the SSD to help keep its temperature down. This is my system's C drive.

The system is powered by a 1,200-watt, fully modular Corsair Power Supply and is sat on an ASRock X870E Nova 90 Motherboard.

I'm running Ubuntu 24 LTS via Microsoft's Ubuntu for Windows on Windows 11 Pro. In case you're wondering why I don't run a Linux-based desktop as my primary work environment, I'm still using an Nvidia GTX 1080 GPU which has better driver support on Windows and ArcGIS Pro only supports Windows natively.

Installing Prerequisites

I'll use Python 3.12 in this post.

$ sudo add-apt-repository ppa:deadsnakes/ppa<br>$ sudo apt update<br>$ sudo apt install \<br>python3-pip \<br>python3.12-venv

I'll set up a Python Virtual Environment and install Google's OR-Tools optimisation suite.

$ python3 -m venv ~/.a380_seating<br>$ source ~/.a380_seating/bin/activate<br>$ pip install ortools

I'll clone the GitHub repository containing the solver's assets.

$ git clone \<br>https://github.com/InMDev/Optimizing-Seating-Arrangement-for-A380/ \<br>~/a380_seating

I'll use DuckDB, along with its H3, JSON, Lindel, Parquet and Spatial extensions in this post.

$ cd ~<br>$ wget -c https://github.com/duckdb/duckdb/releases/download/v1.5.1/duckdb_cli-linux-amd64.zip<br>$ unzip -j duckdb_cli-linux-amd64.zip<br>$ chmod +x duckdb<br>$ ~/duckdb

INSTALL h3 FROM community;<br>INSTALL lindel FROM community;<br>INSTALL json;<br>INSTALL parquet;<br>INSTALL spatial;

I'll set up DuckDB to load every installed extension each time it launches.

$ vi ~/.duckdbrc

.timer on<br>.width 180<br>LOAD h3;<br>LOAD lindel;<br>LOAD json;<br>LOAD parquet;<br>LOAD spatial;

A Double Decker Airliner

The Airbus A380 typically serves upwards of 63 airports with commercial services at any one time. There are 140 airports that are certified for it and there are around 400 airports that technically handle one landing in an emergency.

This is a screenshot from Flightradar24 showing the airborne A380s around the world this evening.

Emirates, being the largest operator of the A380, had several about to arrive back home in Dubai when I took this screenshot.

The A380 has a two-deck layout with a suggested seat layout for 555 passengers across three classes. The seat layout is configurable and even an 853-passenger, all-economy layout is possible if an airline wanted.

Below is an external 3D rendering of the aircraft that I sourced from Airbus' A380 airport and maintenance planning manual.

This is the upper deck layout in their suggested configuration.

This is the lower / main deck layout in their suggested configuration.

Maximising Revenue

The GitHub repository has a CSV file containing floor area sizes for each section of the A380. Below are its contents.

$ cd ~/a380_seating<br>$ ~/duckdb -c "FROM 'areaData.csv'"

┌─────────┬────────┬────────┬─────────┐<br>│ section │ width │ length │ area │<br>│ int64 │ double │ double │ double │<br>├─────────┼────────┼────────┼─────────┤<br>│ 1 │ 1.57 │ 10.18 │ 15.9826 │<br>│ 2 │ 2.14 │ 7.64 │ 16.3496 │<br>│ 3 │ 1.57 │ 10.18 │ 15.9826 │<br>│ 4 │ 1.57 │ 14.56 │ 22.8592 │<br>│ 5 │ 2.14 │ 12.14 │ 25.9796 │<br>│ 6 │ 1.57 │ 16.18 │ 25.4026 │<br>│ 7 │ 1.57 │ 12.06 │ 18.9342 │<br>│ 8 │ 2.14 │ 10.85 │ 23.219 │<br>│ 9 │ 1.57 │ 12.06 │ 18.9342 │<br>│ 10 │ 1.57 │ 8.89 │ 13.9573 │<br>│ 11 │ 2.14 │ 7.64 │ 16.3496 │<br>│ 12 │ 1.57 │ 8.89 │ 13.9573 │<br>│ 13 │ 1.07 │ 14.62 │ 15.6434 │<br>│ 14 │ 2.14 │ 15.62 │ 33.8954 │<br>│ 15 │ 1.07 │ 14.62 │ 15.6434 │<br>│ 16 │ 1.07 │ 19.36 │...

a380 install duckdb seating airbus from

Related Articles