Add mdbook documentation
This commit is contained in:
父節點
28df9a73f7
當前提交
13e732b68d
共有 5 個文件被更改,包括 85 次插入 和 0 次删除
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
|
載入中…
Reference in a new issue