Here is a list of typical problems and how to execute with Python in Combinatorial optimization. ([Let's run](# Let's run)) For a more detailed explanation, refer to the book "Combinatorial Optimization".
Typical problem class td> | # td> | Typical problem td> | Complexity class td> | Duality problem td> tr> | ||||
Graph network problem td> | 1 td> | Minimum spanning tree problem td> | P td> | td> tr> | ||||
2 td> | Clique problem ( Vertex cover problem , Maximum creek problem of complement graph) td> | NP-hard td> | td> tr> | |||||
3 td> | Maximum cut problem td> | NP-hard td> | td> < / tr> | |||||
4 td> | Shortest path problem td> | P td> | td> tr> | |||||
5 td> | Maximum flow problem td> | P td> | Minimum cut problem td> tr> | |||||
6 td> | Minimum Cost Flow Problem td> | P td> | td> < / tr> | |||||
Route problem td> | 7 td> | Transportation route (delivery optimization) problem td> | NP-hard td> | td > tr> | ||||
8 td> | Traveling salesman problem td> | NP-hard td> | td> tr> | |||||
9 td> | Chinese postal delivery problem td> | P | ||||||
Set cover / partition problem td> | 10 td> | Set cover problem td> | NP-hard td> | td> tr> | 11 td> | Partitioning problem td> | NP-hard td> | td> tr> |
12 td> | Combination auction problem td> | NP-hard td> | td> < / tr> | |||||
Scheduling problem td> | 13 td> | Job shop problem td> | NP-hard td> | td> tr> | ||||
14 td> | Work Scheduling Problem | NP Hardness td> | td> td> < / tr> | |||||
Cutout / jamming problem td> | 15 td> | Knapsack problem td> | NP-hard td> | td> tr> | ||||
16 td> | Bin packing problem td> | NP-hard td> | td> < / tr> | |||||
17 td> | n-dimensional jamming problem td> | NP-hard td> | td > tr> | |||||
Placement problem td> less | ||||||||
19 td> | No capacity constraint Facility placement problem | NP-hard td> | td> td> tr> | |||||
Assignment / matching problem td> | 20 td> | Secondary allocation problem td> | NP-hard td> | td> tr > | ||||
21 td> | Generalization allocation problem td> | NP-hard td> | td> tr> | |||||
22 td> | Maximum matching problem td> | P td> | td> tr> | |||||
23 td> | Weight matching problem td> | P td> | td> tr> | |||||
24 td> | Stable matching problem td> | (P) td> | td> tr> |
--Nodes not selected in the solution of the maximum stable set problem become the solution of the vertex cover problem. ――Delivery optimization is often called XX plan like delivery plan, but XX plan is old name.
Install Docker Toolbox, and from Kitematic, Docker image tsutomu7 / typical_optimizationPlease run the.
Once done, open http: // localhost: 8888
. The password for Jupyter Notebook is jupyter
.
For installing Docker, please also refer to Until you start Jupyter with Docker.
Please install the following software. After installation, you can run the code linked to each of the above issues.
--Installation of Python and pip: Select the target OS in the Environment Construction Guide and install it.
--We recommend the latest version of 3 series. However, some libraries may not work with the latest version, in which case the older version will be more stable.
--Library installation:
pip install pandas matplotlib jupyter more-itertools scipy networkx ortoolpy
--ortoolpy: For typical problems. Some have minimal functionality and some are inefficient. PuLP (modeler and solver for mathematical optimization) is also installed.
--Reference: There is also a method using Anaconda, but the management of the library is different from the above method (Anaconda integrates various packages for Python and science and technology). This is the distribution that I did).
-Mathematical Optimization Modeler PuLP Cheat Sheet
Recommended Posts