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