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