Add mdbook documentation

This commit is contained in:
Arthur Bit-Monnot 2021-04-08 23:24:02 +02:00
父節點 28df9a73f7
當前提交 13e732b68d
共有 5 個文件被更改,包括 85 次插入0 次删除

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
查看文件

@ -0,0 +1,5 @@
# Summary
- [Instances](./instances.md)
- [Encodings](./encodings.md)
- [Solvers](./solvers.md)

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
查看文件

@ -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
查看文件

@ -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