University of Nebraska at Omaha University of Nebraska at Omaha
DigitalCommons@UNO DigitalCommons@UNO
Theses/Capstones/Creative Projects University Honors Program
5-2023
Creating the Optimal Wedding Seating Chart Creating the Optimal Wedding Seating Chart
Madison Lane
Follow this and additional works at: https://digitalcommons.unomaha.edu/university_honors_program
Part of the Other Applied Mathematics Commons
Please take our feedback survey at: https://unomaha.az1.qualtrics.com/jfe/form/
SV_8cchtFmpDyGfBLE
Creating the Optimal Wedding Seating Chart
Thesis by
Madison Lane
In Fulfillment of the Requirements for the
University Honors Program
Thesis/Capstone/Creative Project
DEPARTMENT OF MATHEMATICAL AND STATISTICAL SCIENCES
UNIVERSITY OF NEBRASKA AT OMAHA
ADVISOR: DR. FABIO VITOR
©May, 2023
Madison Lane
All rights reserved
2
ABSTRACT
The purpose of this project is to develop an effective seating arrangement for a wedding
reception that enhances the comfort of guests. The ultimate aim is to create a harmonious and
enjoyable atmosphere for all attendees. To achieve this, an integer program was designed to
optimize the seating arrangement for the author’s upcoming wedding on May 27th, 2023. To
ensure accuracy and feasibility, actual feedback was gathered from the guests to evaluate their
compatibility and preferences. The proposed seating chart optimization not only addresses
the placement of guests but also determines the number of tables required for the reception.
The integer program’s decision variables were defined based on the table assignment for each
guest, which are used to generate an optimal seating plan. This approach helps to ensure
that each guest is seated at a table with people they get along with, fostering a welcoming
and cohesive environment. By creating a well-organized seating plan, this project aims to
provide a positive and comfortable experience for all guests attending the author’s wedding
reception. Furthermore, this project’s results may be applicable to other events, providing
valuable insights into seating arrangement optimization for future occasions.
3
TABLE OF CONTENTS
Abstract 2
List of Figures 3
List of Tables 5
1 Intro duction 6
1.1 Description of Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Organization of Paper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Literature Review 8
2.1 Current Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Non-Wedding Seating Problems . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Other Seating Chart Optimization . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Data Collection 11
3.1 Survey Set Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Handling Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Mathematical Model 15
4.1 Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3 Decision Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.4 Objective Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.5 Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5 Results 20
5.1 Sensitivity Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6 Conclusion 23
6.1 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
References 25
Appendices 26
4
LIST OF FIGURES
2.1 Guest Positioning at a Table. . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1 Example of the Survey Sent to Guests . . . . . . . . . . . . . . . . . . . . . . 12
4.1 Ranges Implementation in Python . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 Parameters Implementation in Python. . . . . . . . . . . . . . . . . . . . . . 17
4.3 Parameter Connections on Python. . . . . . . . . . . . . . . . . . . . . . . . 17
4.4 Decision Variable Implementation in Python. . . . . . . . . . . . . . . . . . . 18
4.5 Objective Function Implementation in Python. . . . . . . . . . . . . . . . . . 18
4.6 Constraint Implementation in Python. . . . . . . . . . . . . . . . . . . . . . 19
5.1 Optimal Seating Chart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5
LIST OF TABLES
3.1 Data Collected from Guests . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Positive Connections after Standardization . . . . . . . . . . . . . . . . . . . 14
4.1 Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3 Decision Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.4 Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1 Guest Relationship to the Couple. . . . . . . . . . . . . . . . . . . . . . . . . 22
A.1 Microsoft Excel Positive Connections Data Part 1. . . . . . . . . . . . . . . . 26
A.2 Microsoft Excel Positive Connections Data Part 2. . . . . . . . . . . . . . . . 27
A.3 Microsoft Excel Negative Connections Data Part 1. . . . . . . . . . . . . . . 28
A.4 Microsoft Excel Negative Connections Data Part 2. . . . . . . . . . . . . . . 29
Chapter 1
Introduction
In March of 2021, the author’s fianc´e Luis proposed to them, and they were ecstatic to
begin planning their dream wedding. However, as they delved deeper into the process, they
quickly realized how overwhelming it could be. After they had selected a venue for their
reception, they began to focus on the finer details of the event, including determining where
each guest would sit. They recognized that creating an optimal seating chart was essential to
ensure that all of the guests felt comfortable and enjoyed themselves. They spent countless
hours discussing the best way to seat their guests, considering the guests’ personalities,
relationships, and preferences. They realized that seating guests with people they knew and
felt comfortable with would create a relaxed and enjoyable atmosphere. However, they also
had to consider any potential tensions between guests, as seating people who did not get
along could lead to discomfort and tension.
1.1 Description of Problem
Creating a seating chart for a wedding reception can be a daunting task, as it involves
accommodating a large number of guests and ensuring that everyone has a comfortable and
enjoyable experience. This report delves into the process of creating an optimal wedding
seating chart, exploring the various factors that should be taken into consideration and
outlining strategies to ensure that all guests are happy with their seating arrangements.
One of the most critical factors to consider when creating a seating chart is the relation-
ships between guests. To ensure that each guest feels at ease and can enjoy the reception,
it is essential to seat them with people they know and are comfortable with. This helps
to create a relaxed atmosphere, where guests can socialize freely and enjoy the company of
those around them. However, it is also important to consider the dynamics between guests,
as seating individuals who do not get along well together can lead to tension and discomfort.
Other factors to consider when creating a seating chart include the size and layout of the
venue, the number of tables required, and any special accommodations that need to be made
for guests with specific needs or preferences. Effective seating chart planning can also help
to promote a smooth flow of the reception, ensuring that guests can easily access food and
7
beverages, and allowing for efficient service from the catering staff.
Creating an optimal seating chart for a wedding reception requires careful planning and
attention to detail. By taking into account the various factors that contribute to a positive
guest experience, such as relationships between guests and venue layout, planners can ensure
that everyone has a memorable and enjoyable time at the wedding reception.
1.2 Organization of Paper
Chapter 2 presents a brief review of existing research on seating arrangements. Chapter
3 details the methods used to collect and standardize data for this project. Chapter 4
introduces the mathematical model that was developed, including explanations of its ranges,
parameters, decision variables, objective function, and constraints. Chapter 5 then outlines
the results of the project. Finally, Chapter 6 provides a conclusion to the project and outlines
areas for future research.
Chapter 2
Literature Review
The purpose of this brief literature review is to examine existing research on seating chart
optimization for events. The review will delve into the challenges faced when constructing a
seating plan that satisfies a range of constraints such as group affiliations, potential tensions
or bonds between guests, seating requirements or restrictions, and arranging guests around
tables of appropriate sizes and shapes. The review will examine notable studies that have
tackled this issue. Additionally, the review will highlight the different approaches taken by
these studies in terms of their objective functions.
2.1 Current Tools
Creating seating charts for a wedding is not a new concept, and brides and grooms are
always looking for ways to create their seating charts. According to Mattia (2022), there
are many websites, such as WeddingWire and Zola, that provide templates to guide couples
through the process of designing their seating chart. These websites ask for information such
as the shape and size of tables, the number of tables, and the names of guests. Once the
couple inputs this information, WeddingWire gives them a drag-and-drop template to lay
out their seating chart, while Zola provides more of a spreadsheet form for arranging guests.
These websites offer more direction when it comes to layout.
Waida (2020) provided an in-depth list of things that couples should consider when
designing their seating chart. They emphasized that before designing a seating chart, couples
should first find what questions and concerns they may have. Some of the ideas they listed
when considering a seating chart includes how guests know each other and how the couple
would like families to be seated together. In addition, they also stressed that children and
people who may require a wheelchair should be specifically considered when planning a
seating chart. Waida also listed the size and shape of the tables and the number of tables
as some of the most important things to know when designing a seating chart. Overall, this
article provides an important list of considerations when designing a wedding seating chart.
9
2.2 Non-Wedding Seating Problems
Weddings and other events are not the only instances where seating arrangements play
a crucial role in achieving a goal. Seating charts have been used in various research papers
to examine concepts such as classroom social dynamics. In a study by Braun, van den Berg,
and Cillessen (2020), teachers were shown to use seating arrangements to manage classroom
social dynamics, leading to positive effects on students’ social relationships. The study
investigated the impact of a shortened seating chart intervention on both target and nontarget
students and whether the teachers’ effectiveness in managing social dynamics moderated the
intervention’s effects. Similarly, Ptak (1988) discussed his own use of a computer program to
randomly assign seats to students every six weeks in his classroom. The random arrangement
allows for students of varying abilities and problem-solving styles to work together during
group activities. Students are given a worksheet to indicate their preferred seating location
and partner, and they also complete graph paper grids for problem-solving activities.
2.3 Other Seating Chart Optimization
Lewis & Carroll (2016) conducted a study on wedding seating charts, focusing on the
challenges of finding a suitable seating plan that satisfies a range of constraints. These con-
straints can include guests belonging to certain groups, potential tensions or bonds between
guests, seating requirements or restrictions, and arranging guests around tables of appropri-
ate sizes and shapes. To tackle these challenges, the researchers meticulously examined the
layout of tables and determined the optimal seating arrangement for each guest, as shown
in Figure 2.1. They designed an algorithm to achieve this seating chart and implemented
it using ActionScript 3.0. However, the number of possible seating plans can quickly be-
come overwhelming for larger groups, rendering a naive approach impractical. In response,
commercial software solutions now exist that leverage advanced algorithms, such as genetic
algorithms, to help construct seating plans.
Bellows & Peterson (2012) proposed a mathematical model for seating chart opti-
mization at events. Their model seeks to maximize the number of connections a particular
guest has at their table, meaning that the model will aim to seat guests who know each
other at the same table. They used a connection matrix to describe which guests know each
other. The study describes the sets, variables, and parameters used in the model and ex-
plains the linearization of the model to facilitate its solution. The model can be solved using
mixed-integer linear optimization techniques to find the global optimal solution. The GAMS
software with the CPLEX solver was used to solve the model.
10
Source: Lewis & Carroll (2016)
Figure 2.1: Guest Positioning at a Table.
However, it’s worth noting that Bellows & Peterson filled out the connection matrix
themselves rather than asking the guests directly. As a result, it may not have accurately
reflected the guests’ opinions. Additionally, the researchers focused heavily on optimizing
positive relationships at the tables, rather than minimizing negative ones. In contrast, the
author of this project took both factors into consideration by asking for feedback from the
guests and looking at the invited parties as a whole, rather than just the individual guests.
The author also wanted to find a way to maximize positive relationships while also minimizing
negative relationships and a specific table.
2.4 Goals
The two reports mentioned earlier took different approaches in their objective functions.
Bellows & Peterson’s (2012) model aimed to maximize connections at each table. In contrast,
Lewis & Carroll (2016) aimed to minimize costs at each table. These different approaches
provide valuable insights into appropriate objectives for optimizing a seating arrangement.
While there are examples of models that focus on either minimizing costs or maximizing
connections, there is limited information on models that combine the two objectives.
To build on the research discussed in the literature review, the author sought to
develop a mathematical model that could optimize a wedding seating chart by maximizing
positive connections and minimizing negative ones among guests at each table. Furthermore,
the author aimed to find an unbiased method of gathering feedback from the guests attending
the wedding. The following chapter outlines how data was collected and managed for this
project.
Chapter 3
Data Collection
To collect meaningful data about wedding guests’ seating preferences, each guest was
contacted and asked to fill out a survey. Madison and Luis sent a link to the survey, which
instructed guests to rate other invited parties on how much they would like to sit by them.
Guests were given no guidance from Madison and Luis and were required to interpret the
survey according to their own preferences. Each invited party was asked to designate one
representative to complete the survey.
3.1 Survey Set Up
The survey was sent to members of a party. The survey consisted of two questions:
“What is your name?” and “Please rate other invited parties on how much you would like to
sit by them.” The first question was used to identify the response to the specific party. The
second question was about how much the guests would like to sit by other invited parties.
The guests were given a list of all invited parties and asked to rate them on a scale from -3
to 3, with -3 meaning “I would strongly prefer to NOT be seated by them” and 3 meaning “I
would strongly prefer to be seated by them.” This range was selected to allow a neutral value
of 0 to ideally be recognized by guests. By setting this range, the goal was to have guests
rank people they do not want to sit by a value less than zero and rate people they do want
to sit by a value greater than zero. Since some guests may have avoided negative numbers
for fear of “being too mean,” having the positive range go from 0 to 3 allowed for enough
space that they could have a distinguished difference between those they would prefer to sit
by and those they would prefer to not sit by. See Figure 3.1 for an example of the survey.
3.2 Handling Data
To minimize bias in the results, the survey responses were standardized. Each guest’s
responses were translated into preferred guests, not preferred guests, and indifferent guests.
To do this, the median score for each guest was calculated, and guests who ranked above the
median were classified as preferred guests, those who ranked below the median were classified
12
as not preferred guests, and those who ranked at the median were classified as indifferent
guests.
Figure 3.1: Example of the Survey Sent to Guests
To account for cases where the median score was the same as the maximum or mini-
mum score, alternative standardization methods were used. When the maximum score was
the same as the median score, guests who ranked at the median were classified as preferred
guests, and those ranked below the median were classified as not preferred guests. When the
minimum score was the same as the median score, guests who ranked above the median were
classified as preferred guests, and those ranked at the median were classified as not preferred
guests. If the minimum and maximum scores were the same as the median score, all guests
were classified as indifferent.
This process allowed for the collection of meaningful data about wedding guests’
seating preferences, and alternative standardization methods were developed to handle any
potential inconsistencies in responses. Once the data was standardized, the values were
translated to a 1 when a party preferred sitting by another party, and translated to a -1
when a party did not prefer sitting by another party. These values are referred to as utilities
and costs throughout the paper and have been converted to a dollar value equal to them.
To illustrate how the data was collected and standardized, Table 3.1 presents the responses
from ten parties (a through j), each assigned a letter for consistency throughout the project.
It should be noted that this sample only includes a portion of the responses collected from
the 32 parties considered in this study. Nonetheless, it provides a clear example of how the
data was standardized. Subsequently, Table 3.2 displays the positive connections after the
data was standardized. The following chapter outlines the model used to optimize the seating
chart using the data collected from the guests.
13
Table 3.1: Data Collected from Guests
Guest a b c d e f g h i j
a 3 3 3 -1 3 -3 -3 0 -3 0
b 3 3 3 -1 3 -3 -3 0 -3 -1
c 2 3 3 -2 3 -3 -3 0 -3 -1
d 2 3 3 -1 3 -3 -3 0 -3 -1
e 2 3 3 -1 3 -3 -3 0 -3 -1
f -1 -3 -3 -1 0 3 3 3 -1 3
g -1 -3 -3 -2 0 3 3 3 0 2
h -1 -3 -3 -2 0 3 3 3 0 1
i -1 -3 -3 -2 0 3 3 3 0 1
j 0 -3 -3 -2 0 3 2 0 -2 0
k 1 1 -3 -2 0 3 1 0 -1 2
l 0 -3 -3 -2 0 3 0 0 -1 3
m 0 -2 -3 -2 0 3 2 0 -3 1
n -3 -3 -3 -2 0 -3 0 2 -3 3
o 0 -2 -3 -2 -2 -3 -3 2 -3 -3
p -1 -3 -3 -2 -2 -3 -3 2 -3 -3
r -1 -3 -3 -2 -2 -3 -3 2 -3 -3
t 1 -3 -3 -2 -2 -3 -3 2 -2 -3
u 2 -3 -3 -2 -2 -3 -3 2 -2 -3
v 2 -3 -3 -2 -2 -3 -3 2 -2 -3
w 2 -3 -3 -2 -2 -3 -2 2 -2 -3
x 1 -3 -3 -2 -2 -3 -3 2 -2 -3
y 1 -3 -3 -2 -2 -3 -3 2 -2 -3
z 2 -3 -3 -2 -2 -3 -3 2 -2 -3
aa 2 -3 -3 -2 3 -3 -3 2 -2 -3
ab -1 -3 -3 -2 0 -3 -3 2 -2 -3
ac -1 -3 -3 -2 0 -3 -3 2 -2 -3
ad -1 -3 -3 -2 0 -3 -3 2 -2 -3
ae -2 -3 -3 -2 0 -3 -3 2 -3 -3
af -2 -3 -3 -2 0 -3 -3 2 -3 -3
ah 0 -3 -3 -2 0 -3 -3 2 -2 -3
ai -1 -3 -3 -2 0 3 -3 2 -2 -3
aj -1 -3 -3 -2 0 -3 2 2 0 1
ak -2 -3 -3 -2 0 3 -3 2 -2 -3
al 2 -3 -3 -2 0 3 2 2 -1 1
14
Table 3.2: Positive Connections after Standardization
Guest a b c d e f g h i j
a 0 1 1 1 1 0 0 0 0 1
b 1 0 1 1 1 0 0 0 0 1
c 1 1 0 0 1 0 0 0 0 1
d 1 1 1 0 1 0 0 0 0 1
e 1 1 1 1 0 0 0 0 0 1
f 0 0 0 1 0 0 1 1 1 1
g 0 0 0 0 0 1 0 1 1 1
h 0 0 0 0 0 1 1 0 1 1
i 0 0 0 0 0 1 1 1 0 1
j 0 0 0 0 0 1 1 0 0 0
k 1 1 0 0 0 1 1 0 1 1
l 0 0 0 0 0 1 1 0 1 1
m 0 1 0 0 0 1 1 0 0 1
n 0 0 0 0 0 0 1 0 0 1
o 0 1 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0
t 1 0 0 0 0 0 0 0 0 0
u 1 0 0 0 0 0 0 0 0 0
v 1 0 0 0 0 0 0 0 0 0
w 1 0 0 0 0 0 1 0 0 0
x 1 0 0 0 0 0 0 0 0 0
y 1 0 0 0 0 0 0 0 0 0
z 1 0 0 0 0 0 0 0 0 0
aa 1 0 0 0 1 0 0 0 0 0
ab 0 0 0 0 0 0 0 0 0 0
ac 0 0 0 0 0 0 0 0 0 0
ad 0 0 0 0 0 0 0 0 0 0
ae 0 0 0 0 0 0 0 0 0 0
af 0 0 0 0 0 0 0 0 0 0
ah 0 0 0 0 0 0 0 0 0 0
ai 0 0 0 0 0 1 0 0 0 0
aj 0 0 0 0 0 0 1 0 1 1
ak 0 0 0 0 0 1 0 0 0 0
al 1 0 0 0 0 1 1 0 1 1
Chapter 4
Mathematical Model
This project uses an integer program, which is a mathematical optimization problem that
seeks to maximize a linear function subject to constraints where the decision variables must
be integers.
In this case, the objective function is represented by the equation z = c
T
x, where c is
a vector of objective coefficient and x is a vector of decision variables. The constraints are
represented by the matrix equation Ax b, where A is a matrix, and b is a vector. Also
where c R
n
, x Z
n
+
, A R
m×n
, and b R
m
The solution to the problem results in values for the decision variables that satisfy all
constraints and provide the optimal value for the objective function. The input data for the
model is represented by the parameters c, b, and A.
Sections 4.1 through 4.4 provide an overview of the specified ranges, parameters, decision
variables, objective function, and constraints for the problem.
The model implementation utilized the PuLP library version 2.7.0 in Python version
3.11.2 and the COIN-OR Branch and Cut Solver (CBC). PuLP is a tool that helps solve
optimization problems in Python and CBC is an open-source solver for mixed-integer linear
programming (MILP) problems. This combination of tools enabled the efficient generation of
an optimal seating arrangement that maximized utility while satisfying problem constraints.
The full implementation of the code on Python, using the PuLP language, can be found in
the Appendix, specifically in Figure A.1, Figure A.2, Figure A.3, and Figure A.4.
4.1 Ranges
To generalize a model, it is often necessary to define countable sets using ranges. In
the context of this particular model, two distinct ranges have been employed to create these
countable sets. The ranges used in this project are listed in Table 4.1 and the implementation
of the ranges in PuLP is shown in Figure 4.1.
16
Table 4.1: Ranges
Variable Meaning
G = {1, 2, ..., 35} Denote each invited party
T = {1, 2, ..., 12} Denote all tables for guests to be sat at
Figure 4.1: Ranges Implementation in Python
4.2 Parameters
Parameters are the known data inputted into the model. This project contains six pa-
rameters. The parameters used in this project are listed in Table 4.2 and the implementation
of the parameters in PuLP is shown in Figure 4.2. As previously mentioned, the positive
and negative relationships in the seating chart reflect how the invited parties feel toward one
another. Moreover, weights are assigned to indicate how much the couple values positive and
negative relationships. In the present study, the author assigned a weight of five to negative
relationships, meaning that they considered a negative relationship to be five times as costly
as a positive relationship.
Table 4.2: Parameters
Variable Meaning
p
i,j
The positive relationship value between party i G and party j G
n
i,j
The negative relationship value between party i G and party j G
a
i
The number of guests in party i G
m The maximum number of guests that can sit at each table
w
1
The weight of utilities
w
2
The weight of costs
17
Figure 4.2: Parameters Implementation in Python.
The parameters needed for this problem were stored in a Microsoft Excel Spreadsheet
and read into Python using the code shown in Figure 4.3. Tables A.1-A.5 show the full
Microsoft Excel Spreadsheet used.
Figure 4.3: Parameter Connections on Python.
4.3 Decision Variables
In this problem, the model’s decision-making process involves selecting unknown values
known as decision variables. These variables are of two types: binary and integer. Binary
variables are either 0 or 1, representing the presence or absence of something. On the other
hand, integer variables are whole numbers that often indicate a quantity of something. In this
project, the model incorporates two integer and three binary decision variables to achieve
the desired outcome. These variables serve as critical inputs to the model, helping it to
generate precise solutions that meet the specified constraints. The decision variables used in
this project are listed in Table 4.3 and the implementation of the decision variables in PuLP
is shown in Figure 4.4.
18
Table 4.3: Decision Variables
Variable Meaning
b
i,k
1, if party i G sits at table k T
0, otherwise
c
i,k
1, if party i G sits at table k T
0, otherwise
d
i,j,k
1, if party i G and party j G sits at table k T
0, otherwise
tp
k
The total utility at table k T
tn
k
The total cost at table k T
Figure 4.4: Decision Variable Implementation in Python.
4.4 Objective Function
This project aims to maximize the number of positive connections among guests while
minimizing the number of negative connections among guests. This is achieved by maximizing
the total number of positive connections minus the total number of negative connections. The
implementation of the decision variables in PuLP is shown in Figure 4.5.
max z = w
1
X
kT
tp
k
w
2
X
kT
tn
k
Figure 4.5: Objective Function Implementation in Python.
4.5 Constraints
A constraint in an integer program is a mathematical expression that limits the feasible
values of the decision variables to a specific set of integers or a range of values. This project
contains six constraints. The constraints used in this project are listed in Table 4.4.
19
Table 4.4: Constraints
Constraint Purpose
X
kT
b
i,k
= 1 i G Ensures that each guest is only sat once
b
i,k
= c
i,k
i G, k T Ensures that the two decision variables that seat a party are equal.
X
iG
(b
i,k
a
i
) m k T Ensures that the number of guests at the table fit
X
iG
(b
i,k
a
i
) m ·
1
2
k T Ensures that each table is at least halfway full
X
iG
X
jG
(d
i,j,k
p
i,j
) = tp
k
k T Find the total positive connections
X
iG
X
jG
(d
i,j,k
p
i,j
) = tp
k
k T Find the total positive connections
Figure 4.6: Constraint Implementation in Python.
With the mathematical model and data collection procedures in place, the next step
was to apply the model to generate a seating chart and evaluate its effectiveness. The results
of this analysis are presented in the following chapter.
Chapter 5
Results
The final solution was found by implementing the model introduced in Chapter 4 using
Python version 3.11.2. Python is a programming language that is freely available to everyone
as open-source software. This means that not only is it free to use, but it also comes with
access to the source code, allowing developers to modify and enhance the language to better
suit their needs. Being open-source has helped make Python one of the most widely used
programming languages in the world, as it enables anyone to contribute to its development
and improvement. Within Python, the PuLP language was used for optimization. Within
PuLP, the COIN-OR Branch and Cut Solver (CBC) was used to solve the integer program.
The optimal solution found once the model was implemented suggests that the seating
arrangement in Table 5.1 would be the optimal seating chart for the specified wedding. This
optimal seating chart would result in $2,880 of utility. Table 5.1 shows how each letter on
the seating chart corresponds to an invited party.
5.1 Sensitivity Analysis
To ensure that proper weights were assigned to the cost and utility portions of the
objective function, a sensitivity analysis was performed. A sensitivity analysis is a technique
used to determine how sensitive the output of a system or model is to changes in its inputs
or parameters. It involves testing the effects of varying one or more input factors on the
output or outcome of a model and helps to identify which input factors have the greatest
impact on the model’s output. In a sensitivity analysis, different values or ranges of values
are assigned to the input factors, and the resulting changes in the output are observed and
analyzed. This helps to determine how much the output changes in response to changes in
the input factors, and to identify which input factors are most important in determining the
output.
In conducting the sensitivity analysis, the weights assigned to costs and utility were
varied to assess their impact on the final solution. It was found that when the weight assigned
to the utility increased, the total objective value also increased, whereas a decrease in the
utility weight resulted in a lower objective value. Intriguingly, it was observed that changes
21
in the weight assigned to costs did not affect the total objective value. This implies that the
program was able to seat guests without any negative connections adjacent to each other, as
evidenced by the consistent objective value across different cost weights.
It can be noted that the model presented in Figure 5.1 contains 22 empty seats. In
this specific case, the couple wanted to utilize all the tables available at their venue since they
were not charged per table. Instead, 12 tables were included in the rental of the venue. In
other cases where a couple may have to pay per table used, they could specify the minimum
number of tables they would need to seat everyone. In the case shown in Figure 5.1, the
couple would have needed only 10 tables to seat all the guests.
Figure 5.1: Optimal Seating Chart.
22
Table 5.1: Guest Relationship to the Couple.
Code Primary Relationship to the Couple
a Bride’s Father, Step-Mother, and Siblings
b Bride’s Grandparents
c Bride’s Uncle & Cousins
d Bride’s Uncle
e Bride’s Aunt
f Bride’s Mother, Step-Father, and Siblings
g Bride’s Step-Sister & Nephew
h Bride’s Step-Brother
i Bride’s Step-Brother
j Bride’s Aunt & Cousins
k Bride’s Aunt & Cousin
l Bride’s Uncle & Cousins
m Bride’s Grandparents
n Bride’s Grandmother
o Groom’s Parents
p Groom’s Sister & Niece
r Groom’s Brother & Nieces
t Friend of the Couple
u Friend of the Couple
v Friend of the Couple
w Friend of the Couple
x Friend of the Couple
y Friend of the Couple
z Friend of the Couple
aa Friend of the Couple
ab Friend of the Couple
ac Friend of the Couple
ad Friend of the Couple
ae Professor of the Couple
af Professor of the Couple
ah Family Friend
ai Professor of the Couple
aj Family Friend
ak Family Friend
al Family Friend
Chapter 6
Conclusion
In conclusion, this project aimed to create an optimal seating arrangement for wed-
ding guests that would enhance their overall experience and satisfaction by placing them
alongside like-minded individuals. The proposed seating chart was developed using a math-
ematical model and data collection procedures that considered various constraints and pref-
erences, such as group affiliations, guest relationships, seating requirements, and table sizes
and shapes. The model was designed to both maximize positive connections among guests
and minimize negative ones, resulting in a seating arrangement that promoted a positive and
enjoyable atmosphere for all attendees.
After a thorough analysis of the results obtained from the seating arrangement, the
couple has decided to adopt the proposed seating chart. The seating chart not only satisfies all
the constraints and preferences set forth by the couple but also ensures guest satisfaction. By
incorporating feedback from guests and considering the relationships between invited parties,
the proposed seating chart maximized positive connections while minimizing negative ones,
resulting in a seating arrangement that was both functional and enjoyable.
Overall, the proposed seating chart provides a novel approach to seating guests at
weddings and other events, which can lead to a more enjoyable experience for all attendees.
This project demonstrates the power of mathematical modeling and optimization techniques
in solving real-world problems and highlights the potential for their application in event
planning and management.
6.1 Future Work
Future work for this project can take various directions. Firstly, the optimized seating
arrangement proposed in this project can be further analyzed to evaluate its success in terms
of guest satisfaction and overall event success. This analysis can include surveying guests
post-event to gather feedback on their experience and assessing any changes in the event’s
atmosphere or engagement levels. Additionally, alternative seating chart optimization models
can be explored to compare their effectiveness with the proposed model.
24
In terms of applying the model to other events, future research can explore how
seating arrangements can impact various types of events, such as conferences, workshops,
and business meetings. These events often have different requirements and objectives, and
therefore, different seating arrangements may be necessary. Furthermore, exploring how the
seating arrangement impacts attendee engagement and interaction in these events could lead
to more effective event planning strategies.
Another potential area of research is the data collection process. This project used a
rating system to gather data on relationships between guests, but alternative data collection
methods could be explored to increase the accuracy and comprehensiveness of the data. This
could include utilizing social network analysis tools to map out the relationships between
guests or implementing surveys that ask guests to rate their comfort level with sitting next
to certain individuals.
Overall, this project lays the groundwork for further research on seating chart opti-
mization and its impact on event success. By continuing to explore and develop this area
of research, we can improve the guest experience at events and increase the success of these
events.
25
REFERENCES
[1] Bellows, Meghan L, and J.D. Luc Peterson. “Finding an Optimal Seating Chart.” Annals
of Improbable Research, 12 Feb. 2012, https://improbable.com/2012/02/12/finding-an-
optimal-seating-chart-for-a-wedding/.
[2] Braun, Summer S., et al. “Effects of a Seating Chart Intervention for Target and Non-
target Students.” Journal of Experimental Child Psychology, vol. 191, 2020, p. 104742,
https://doi.org/10.1016/j.jecp.2019.104742.
[3] Lewis, Rhyd, and Fiona Carroll. “Creating Seating Plans: a
Practical Application.” Taylor & Francis Online, 21 Dec. 2017,
https://www.tandfonline.com/doi/full/10.1057/jors.2016.34.
[4] Mattia, Nancy. “5 Digital Wedding Seating Chart Tools to Simplify Planning.”
Brides, Brides, 4 Jan. 2022, https://www.brides.com/story/digital-seating-charts-
wedding-planning.
[5] Ptak, Dave. “Probability and the Seating Chart.” The Mathematics Teacher, vol. 81, no.
5, 1988, pp. 393–397, https://doi.org/10.5951/mt.81.5.0393.
[6] Waida, Maria. “How to Create a Wedding Seating Chart in 15 Simple Steps.” Social
Tables, 10 Aug. 2020, https://www.socialtables.com/blog/event-planning/how-to-create-
seating-chart-wedding/.
26
APPENDICES
A Appendix A
Table A.1: Microsoft Excel Positive Connections Data Part 1.
27
Table A.2: Microsoft Excel Positive Connections Data Part 2.
28
Table A.3: Microsoft Excel Negative Connections Data Part 1.
29
Table A.4: Microsoft Excel Negative Connections Data Part 2.
30
Table A.5: Microsoft Excel Party Size Data.