Browse Source

Add mdbook documentation

Arthur Bit-Monnot 5 months ago
parent
commit
13e732b68d
5 changed files with 85 additions and 0 deletions
  1. 6
    0
      doc/book.toml
  2. 5
    0
      doc/src/SUMMARY.md
  3. 24
    0
      doc/src/encodings.md
  4. 23
    0
      doc/src/instances.md
  5. 27
    0
      doc/src/solvers.md

+ 6
- 0
doc/book.toml View File

@@ -0,0 +1,6 @@
1
+[book]
2
+authors = ["Arthur Bit-Monnot"]
3
+language = "en"
4
+multilingual = false
5
+src = "src"
6
+title = "JobShop Scheduling (INSA 4IR)"

+ 5
- 0
doc/src/SUMMARY.md View File

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

+ 24
- 0
doc/src/encodings.md View File

@@ -0,0 +1,24 @@
1
+# Encodings
2
+
3
+Several encoding and associated utilities are provided in the `jobshop.encodings` package.
4
+The abstract class `Encoding` provides a common interface for all encodings.
5
+
6
+## Schedule
7
+
8
+The `Schedule` has direct encoding of a solution: it associates every task in the jobshop to a start time.
9
+
10
+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.
11
+
12
+Convenience methods:
13
+
14
+ - `isValid()`: returns true if the schedule is valid (no violated constraints).
15
+ - `makespan()`: computes the makespan of the solution.
16
+ - `criticalPath()`: returns a critical path in the solution.
17
+ - `asciiGantt()`: generates a Gantt chart view of the solution in ASCII art.
18
+
19
+
20
+ ## NumJobs
21
+
22
+
23
+
24
+ ## ResourceOrder

+ 23
- 0
doc/src/instances.md View File

@@ -0,0 +1,23 @@
1
+# Instances
2
+
3
+The project comes with a set of predefined jobshop instances that you will use for the project.
4
+All instances are provided in the `instances/` folder of the repository.
5
+
6
+
7
+## Test instances
8
+
9
+
10
+Test instances start with the `aaa` prefix. 
11
+We provide three of them
12
+
13
+ - `aaa1`: a very small instance that you can use to get acquainted with the different encodings
14
+ - `aaa2`: a slightly more complex instance that has been used during the classes
15
+ - `aaa3`: a instance that produces deterministic results for the greedy methods
16
+
17
+
18
+## Benchmark instances
19
+
20
+All other instances are common benchmarks that you can use to test the performance of your algorithms.
21
+
22
+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).
23
+

+ 27
- 0
doc/src/solvers.md View File

@@ -0,0 +1,27 @@
1
+# Solvers
2
+
3
+## The `Solver` interface
4
+
5
+`jobshop.solvers.Solver` provides a common interface for all solvers.
6
+
7
+
8
+## Basic solver
9
+
10
+A very simple solver that tries to schedule all first tasks, then all second tasks, then all third tasks, ...
11
+
12
+It does so using the `JobNumbers` encoding
13
+
14
+## Random solver
15
+
16
+Another very simple solver based on the `JobNumbers` encoding.
17
+At each iteration, the solver generates a new random solution keeps it if it the best one found so far.
18
+
19
+It repeats this process until the deadline to produce a result is met and finally returns the best solution found.
20
+
21
+
22
+## Greedy solver
23
+
24
+The greddy solver is not implemented yet. 
25
+Its constructor accepts a parameter that specifies the priority that should be used to produce solutions.
26
+
27
+## Descent Solver

Loading…
Cancel
Save