Skip to content

PhD thesis: optimization and equilibrium problems with discrete choice models

License

Notifications You must be signed in to change notification settings

transp-or/optimization-equilibrium-dcm

Repository files navigation

PhD Thesis: Optimization and equilibrium problems with discrete choice models

The PhD thesis was developed at EPFL between November 2017 and November 2021 by Stefano Bortolomiol, under the supervision of Michel Bierlaire and Virginie Lurkin.

This repository contains all the code related to the experiments contained in the PhD thesis. The thesis is composed of three core sections.

When using this algorithm (or part of it) in derived academic studies, please cite the above-mentioned works.

Software requirements

All algorithms are coded in Python, and all MILPs are solved using CPLEX. As of January 2022, CPLEX is available free of charge to all academic users through the IBM ILOG Optimization Academic Initiative.

Content of the repository

There are five folders in the main repository. The following table outlines the relationship between the various case studies and the corresponding sections of the thesis:

Case study Thesis section
case-study-Lin-Sibdari 2.5.1
case-study-parking 2.5.2
case-study-HSR 2.5.3
case-study-intercity-travel 3.4
benders-facility-location-pricing 4.2 + 4.6

Three numerical experiments are performed: (i) Data_LinSibdari_MNL.py contains the original data as in the benchmark experiments by Lin and Sibdari (2009); (ii) Data_LinSibdari_ObservedHet.py proposes a variation with observed heterogeneity (MNL with 3 segments); (iii) Data_LinSibdari_UnobservedHet.py proposes a variation with unobserved heterogeneity (mixed logit). case-study-Lin-Sibdari/main.py runs the simulation-based heuristic to find approximate equilibrium solutions for the competitive market (Algorithm 1).

data_parking.py contains the dataset. The 50 customers defined in the function demand() are grouped in 11 categories. case-study-parking/main.py runs the simulation-based heuristic to find approximate equilibrium solutions for the competitive market (Algorithm 1).

data_HSR_nested_logit.py contains the dataset. case-study-HSR/main.py runs the simulation-based heuristic to find approximate equilibrium solutions for the competitive market (Algorithm 1).

Case study on regulated competition. The parameters concerning regulation are contained in the function regulator() of the file case-study-intercity-travel/data_intercity_nested_logit.py. To run a single instance, run case-study-intercity-travel/algorithm_regulation.py as main file. To run a sensitivity analysis (e.g. by varying the value of the social cost of carbon on a predefined range), run case-study-intercity-travel/main.py with appropriate parameters.

File model_continuous_assortment.py solves the optimization problem with assortment and continuous price variables (ACPP, Section 4.2.2.1). File model_discrete_assortment.py solves the optimization problem with assortment and discrete price variables (ADPP, Section 4.2.2.2). File benders_discrete.py runs the branch-and-Benders-cut algorithm for the optimization problem with discrete supply variables (Section 4.5)

Contact

Please write to Stefano Bortolomiol if you have comments or questions. stefano(dot)bortolomiol(at)epfl(dot)ch

License

About

PhD thesis: optimization and equilibrium problems with discrete choice models

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages