-
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from dparo/readme
Updated readme.
- Loading branch information
Showing
1 changed file
with
67 additions
and
51 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,58 +1,74 @@ | ||
## README Template | ||
![License](https://img.shields.io/github/license/dparo/master-thesis) | ||
![CI](https://img.shields.io/github/workflow/status/dparo/master-thesis/CI) | ||
![Release](https://img.shields.io/github/v/release/dparo/master-thesis) | ||
![Downloads](https://img.shields.io/github/downloads/dparo/master-thesis/total) | ||
|
||
Clear documentation is critical to the success of your project. This checklist is meant to help you cover all your bases. Not every section/subsection will be relevant to your project; pick and choose what is. Inspired by READMEs of very successful projects like etcd. | ||
|
||
Please copy-paste this into a new document and save as you build your READMEs. For alternative formats, you might create a [Structured README](https://github.com/shaloo/structuredreadme), which offers a thorough breakdown of optional README ingredients for you to consider. You might also take a look at [this similar checklist](https://github.com/cfpb/open-source-project-template); or check out [art-of-readme](https://github.com/noffle/art-of-readme). | ||
# CPTP: Capacitated Profitable Tour Problem | ||
|
||
### Project Name/Intro | ||
A Mixed Integer Programming (MIP) based solution for the CPTP. | ||
|
||
This project studies and compares various MIP formulations and cuts separation techniques for the CPTP. | ||
|
||
- Describe very briefly but clearly what the project does. | ||
- State if it is out-of-the-box user-friendly, so it’s clear to the user. | ||
- List its most useful/innovative/noteworthy features. | ||
- State its goals/what problem(s) it solves. | ||
- Note and briefly describe any key concepts (technical, philosophical, or both) important to the user’s understanding. | ||
- Link to any supplementary blog posts or project main pages. | ||
- Note its development status. | ||
- Include badges. | ||
- If possible, include screenshots and demo videos. | ||
|
||
### Core Technical Concepts/Inspiration | ||
|
||
- Why does it exist? | ||
- Frame your project for the potential user. | ||
- Compare/contrast your project with other, similar projects so the user knows how it is different from those projects. | ||
- Highlight the technical concepts that your project demonstrates or supports. Keep it very brief. | ||
- Keep it useful. | ||
|
||
### Getting Started/Requirements/Prerequisites/Dependencies | ||
Include any essential instructions for: | ||
- Getting it | ||
- Installing It | ||
- Configuring It | ||
- Running it | ||
|
||
### More Specific Topics (+ sample sub-categories) | ||
- Versioning: Services, APIs, Systems | ||
- Common Error Messages/related details | ||
- Tests | ||
- Is it a Swift project? Please take a look at Mattt Thompson & Nate Cook's [Swift documentation](http://nshipster.com/swift-documentation/) guide | ||
|
||
### Contributing | ||
- Contributor Guidelines | ||
- Code Style/Requirements | ||
- Format for commit messages | ||
- Thank you (name contributors) | ||
|
||
### TODO | ||
- Next steps | ||
- Features planned | ||
- Known bugs (shortlist) | ||
|
||
### Contact | ||
- Email address | ||
- Google Group/mailing list (if applicable) | ||
- IRC or Slack (if applicable) | ||
|
||
### References | ||
|
||
### License | ||
The CPTP is a subproblem that appears in the column generation procedure of the commonly known [Vehicle Routing Problem](https://en.wikipedia.org/wiki/Vehicle_routing_problem) (**VRP**). | ||
Current state-of-the art solution for CPTP are based on dynamic programming paradigms. | ||
Substantial literature was devoted as studying the use of a MIP solver for solving the pricing problem in VRP [[1]](#Jepsen2014) [[2]](#baldacci2008exact) [[3]](#baldacci2011new). | ||
|
||
In particular, in 2014, Jepsen [[1]](#Jepsen2014) studied extensively this problem by employing a MIP solver. | ||
Almost ten years have passed, and commercial MIP solvers have made extensive progress. | ||
|
||
This work tries to revisit, and if possible improve, the original work of Jepsen in 2014 [[1]](#Jepsen2014). | ||
|
||
|
||
## Getting Started | ||
- Requirements: | ||
- A working `C` compiler | ||
- `cmake` | ||
- `git` | ||
- `CPLEX v>=12.10`: A free academic license can be downloaded at this [URL](https://www.ibm.com/academic/topic/data-science) | ||
- Getting the source code: | ||
```bash | ||
git clone --recursive github.com/dparo/master-thesis | ||
``` | ||
- Building it: | ||
``` | ||
cd master-thesis | ||
mkdir -p build | ||
cd build | ||
cmake -DCMAKE_BUILD_TYPE=Release ../ | ||
cmake --build ./ --config Release | ||
``` | ||
- Running the tests: | ||
``` | ||
ctest --progress --force-new-ctest-process --output-on-failure -C Release | ||
``` | ||
- Running the main solver: | ||
``` | ||
./src/cptp --help | ||
``` | ||
|
||
## TODO | ||
The project is currently under heavy-development. | ||
|
||
## Contact | ||
- Insitutional EMAIL address: `davide.paro@studenti.unipd.it` | ||
- Personal EMAIL address: `dparo@outlook.it` | ||
|
||
## References | ||
- <a id="Jepsen2014">[1]</a> | ||
Jepsen, M. K., Petersen, B., Spoorendonk, S., & Pisinger, D. (2014). A branch-and-cut algorithm for the capacitated profitable tour problem. Discrete Optimization, 14, 78–96. https://doi.org/10.1016/j.disopt.2014.08.001 | ||
- <a id="baldacci2008exact">[2]</a> | ||
Baldacci, R., Christofides, N., & Mingozzi, A. (2008). An exact algorithm for the vehicle routing problem based on the set partitioning formulation with additional cuts. Mathematical Programming, 115(2), 351–385. | ||
- <a id="baldacci2011new">[3]</a> | ||
Baldacci, R., Mingozzi, A., & Roberti, R. (2011). New route relaxation and pricing strategies for the vehicle routing problem. Operations Research, 59(5), 1269–1283. | ||
|
||
## License | ||
This project is licensed under the **MIT** license. Check the [LICENSE file](LICENSE). | ||
|
||
This project makes use of thirdy party projects (located under `deps`) licensed respectively in their corresponding licenses: | ||
1. [rxi/log.c](github.com/rxi/log.c) [**MIT license**](https://github.com/rxi/log.c/blob/master/LICENSE) | ||
2. [argtable3/argtable3](github.com/argtable3/argtable3) [**BSD license**](https://github.com/argtable/argtable3/blob/master/LICENSE) | ||
3. [ThrowTheSwitch/Unity](github.com/ThrowTheSwitch/Unity) [**MIT license**](https://github.com/ThrowTheSwitch/Unity/blob/master/LICENSE.txt) |