Add mdbook documentation
This commit is contained in:
parent
28df9a73f7
commit
13e732b68d
5 changed files with 85 additions and 0 deletions
6
doc/book.toml
Normal file
6
doc/book.toml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[book]
|
||||||
|
authors = ["Arthur Bit-Monnot"]
|
||||||
|
language = "en"
|
||||||
|
multilingual = false
|
||||||
|
src = "src"
|
||||||
|
title = "JobShop Scheduling (INSA 4IR)"
|
5
doc/src/SUMMARY.md
Normal file
5
doc/src/SUMMARY.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Summary
|
||||||
|
|
||||||
|
- [Instances](./instances.md)
|
||||||
|
- [Encodings](./encodings.md)
|
||||||
|
- [Solvers](./solvers.md)
|
24
doc/src/encodings.md
Normal file
24
doc/src/encodings.md
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Encodings
|
||||||
|
|
||||||
|
Several encoding and associated utilities are provided in the `jobshop.encodings` package.
|
||||||
|
The abstract class `Encoding` provides a common interface for all encodings.
|
||||||
|
|
||||||
|
## Schedule
|
||||||
|
|
||||||
|
The `Schedule` has direct encoding of a solution: it associates every task in the jobshop to a start time.
|
||||||
|
|
||||||
|
It plays a particular role as it is the standard way of representing a solution. As a consequence, all other encodings must provide a way to produce a schedule.
|
||||||
|
|
||||||
|
Convenience methods:
|
||||||
|
|
||||||
|
- `isValid()`: returns true if the schedule is valid (no violated constraints).
|
||||||
|
- `makespan()`: computes the makespan of the solution.
|
||||||
|
- `criticalPath()`: returns a critical path in the solution.
|
||||||
|
- `asciiGantt()`: generates a Gantt chart view of the solution in ASCII art.
|
||||||
|
|
||||||
|
|
||||||
|
## NumJobs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## ResourceOrder
|
23
doc/src/instances.md
Normal file
23
doc/src/instances.md
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Instances
|
||||||
|
|
||||||
|
The project comes with a set of predefined jobshop instances that you will use for the project.
|
||||||
|
All instances are provided in the `instances/` folder of the repository.
|
||||||
|
|
||||||
|
|
||||||
|
## Test instances
|
||||||
|
|
||||||
|
|
||||||
|
Test instances start with the `aaa` prefix.
|
||||||
|
We provide three of them
|
||||||
|
|
||||||
|
- `aaa1`: a very small instance that you can use to get acquainted with the different encodings
|
||||||
|
- `aaa2`: a slightly more complex instance that has been used during the classes
|
||||||
|
- `aaa3`: a instance that produces deterministic results for the greedy methods
|
||||||
|
|
||||||
|
|
||||||
|
## Benchmark instances
|
||||||
|
|
||||||
|
All other instances are common benchmarks that you can use to test the performance of your algorithms.
|
||||||
|
|
||||||
|
You can find more informations (lower and upper bounds, best known solutions, ...) on the website [http://jobshop.jjvh.nl/index.php](http://jobshop.jjvh.nl/index.php).
|
||||||
|
|
27
doc/src/solvers.md
Normal file
27
doc/src/solvers.md
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# Solvers
|
||||||
|
|
||||||
|
## The `Solver` interface
|
||||||
|
|
||||||
|
`jobshop.solvers.Solver` provides a common interface for all solvers.
|
||||||
|
|
||||||
|
|
||||||
|
## Basic solver
|
||||||
|
|
||||||
|
A very simple solver that tries to schedule all first tasks, then all second tasks, then all third tasks, ...
|
||||||
|
|
||||||
|
It does so using the `JobNumbers` encoding
|
||||||
|
|
||||||
|
## Random solver
|
||||||
|
|
||||||
|
Another very simple solver based on the `JobNumbers` encoding.
|
||||||
|
At each iteration, the solver generates a new random solution keeps it if it the best one found so far.
|
||||||
|
|
||||||
|
It repeats this process until the deadline to produce a result is met and finally returns the best solution found.
|
||||||
|
|
||||||
|
|
||||||
|
## Greedy solver
|
||||||
|
|
||||||
|
The greddy solver is not implemented yet.
|
||||||
|
Its constructor accepts a parameter that specifies the priority that should be used to produce solutions.
|
||||||
|
|
||||||
|
## Descent Solver
|
Loading…
Reference in a new issue