TORSCHE Scheduling
Toolbox for Matlab

TORSCHE Scheduling Toolbox for Matlab

User's Guide

Table of Contents

1. Introduction
2. Quick Start
1. Software Requirements
2. Installation
3. Help
4. How to Solve Your Scheduling Problems
5. Save and Load Functions
3. Tasks
1. Introduction
2. Creating the task Object
3. Graphical Representation of the task Object
4. Object task Modifications
5. Periodic Tasks
4. Sets of Tasks
1. Creating the taskset Object
2. Graphical Representation of the Set of Tasks
3. Set of Tasks Modification
4. Other Functions
5. Classification in Scheduling
1. The problem Object
6. Graphs
1. Introduction
2. Creating Object graph
3. Object graph Modification
4. Graphedit
5. Transformations Between Objects taskset and graph
7. Scheduling Algorithms
1. Structure of Scheduling Algorithms
2. List of Algorithms
3. Algorithm for Problem 1|rj|Cmax
4. Bratley’s Algorithm
5. Hodgson's Algorithm
6. Algorithm for Problem P||Cmax
7. McNaughton's Algorithm
8. Algorithm for Problem P|rj,prec,~dj|Cmax
9. List Scheduling
10. Brucker’s Algorithm
11. Scheduling with Positive and Negative Time-Lags
12. Cyclic Scheduling
13. SAT Scheduling
14. Hu's Algorithm
Coffman's and Graham's Algorithm
8. Real-Time Scheduling
1. Fixed-Priority Scheduling
9. Graph Algorithms
1. List of Algorithms
2. Minimum Spanning Tree
3. Dijkstra's Algorithm
4. Floyd's Algorithm
5. Strongly Connected Components
6. Minimum Cost Flows
7. The Critical Circuit Ratio
8. Hamilton Circuits
9. Graph coloring
10. The Quadratic Assignment Problem
10. Other Algorithms
1. List of Algorithms
2. Scheduling Toolbox Options
3. Random Data Flow Graph (DFG) generation
4. Universal interface for ILP
5. Universal interface for MIQP
6. Cyclic Scheduling Simulator
7. Export to XML
11. Case Studies
1. Theoretical Case Studies
2. Real Word Case Studies
I. Reference guide
@graph/criticalcircuitratio.m - finds the minimal circuit ratio of the input graph.
@graph/dijkstra.m - finds the shortest path between reference node and other nodes in graph.
@graph/edge2param.m - returns user parameters of edges in graph
@graph/floyd.m - finds a matrix of shortest paths for given digraph
@graph/graph.m - creates the graph object.
@graph/graphcoloring.m - algorithm for coloring graph by minimal number of colors.
@graph/hamiltoncircuit.m - finds Hamilton circuit in graph
@graph/mincostflow.m - finds the least cost flow in graph G.
@graph/node2param.m - returns user parameters of nodes in graph
@graph/param2edge.m - add to graph's user parameters datas from cell or matrix.
@graph/param2node.m - add to graph's user parameters datas from cell or matrix.
@graph/qap.m - solves the Quadratic Assignment Problem
@graph/spanningtree.m - finds spanning tree of the graph
@graph/tarjan.m - finds Strongly Connected Component
@problem/problem.m - creation of object problem.
@schedobj/get.m - access/query SCHEDOBJ property values.
@schedobj/get_graphic_param.m - gets graphics params for object drawing
@schedobj/set.m - sets properties to set of objects.
@schedobj/set_graphic_param.m - set graphics params for drawing
@task/add_scht.m - adds schedule (starts time and lenght of time) into a task
@task/get_scht.m - gets schedule (starts time and length of time) from a task
@task/plot.m - graphic display of task
@task/task.m - creates object task.
@taskset/add_schedule.m - adds schedule (starts time and lenght of time) for set of tasks
@taskset/alap.m - compute ALAP(As Late As Posible) for taskset
@taskset/asap.m - computes ASAP(As Soon As Posible) for taskset
@taskset/colour.m - returns taskset where tasks have set the color property
@taskset/count.m - returns number of tasks in the Set of Tasks
@taskset/get_schedule.m - gets schedule (starts time, lenght of time and processor) from a taskset
@taskset/plot.m - graphic display of set of tasks
@taskset/schparam.m - returns parameters about schedule inside the set of tasks
@taskset/setprio.m - sets priority (weight) of tasks acording to some rules.
@taskset/size.m - returns number of tasks in the Set of Tasks
@taskset/sort.m - return sorted set of tasks over selected parameter.
@taskset/taskset.m - creates a set of TASKs
alg1rjcmax.m - computes schedule with Earliest Release Date First algorithm
alg1sumuj.m - computes schedule with Hodgson's algorithm
algpcmax.m - computes schedule for 'P||Cmax'problem
algprjdeadlinepreccmax.m - computes schedule for P|rj,prec,~dj|Cmax problem
bratley.m - computes schedule by algorithm described by Bratley
brucker76.m - Brucker's scheduling algorithm
coffmangraham.m - is scheduling algorithm (Coffman and Graham) for P2|prec,pj=1|Cmax problem
cssimin.m - Cyclic Scheduling Simulator - input parser.
cssimout.m - Cyclic Scheduling Simulator - True-Time interface.
cycsch.m - solves general cyclic scheduling problem.
graphedit.m - launch user-friendly editor of graphs able to export and import graphs between GUI and Matlab workspace.
horn.m - computes schedule with Horn'74 algorithm
hu.m - is scheduling algorithm for P|in-tree,pj=1|Cmax problem (can be called on labeled taskset with problem P2|prec,pj=1|Cmax )
ilinprog.m - universal interface for integer linear programming.
iquadprog.m - Universal interface for mixed integer quadratic programming.
listsch.m - Computes schedule by algorithm described by Graham 1966
mcnaughtonrule.m - computes schedule with McNaughtons's algorithm
private/bezier.m - computes points on Bezier curve
randdfg.m - random Data Flow Graph (DFG) generator.
randtaskset.m - Generates set of tasks of random parameters selected from uniform distribution.
satsch.m - computes schedule by algorithm described in [TORSCHE06]
schoptionsset.m - Creates/alters SCHEDULING TOOLBOX OPTIONS structure.
spntl.m - computes schedule with Positive and Negative Time-Lags
xmlsave.m - saves variables to file in xml format.

List of Figures

2.1. The taskset schedule
3.1. Graphics representation of task parameters
3.2. Creating task objects
3.3. Plot example
4.1. Creating a set of tasks and adding precedence constraints
4.2. Gantt chart for a set of scheduled tasks
4.3. Access to the virtual property examples
4.4. Schedule inserting example
4.5. Schedule parameters
4.6. Taskset sort example
4.7. Example of random taskset use
6.1. Creating a graphs from adjacency matrix
6.2. Command set for graph
6.3. Graphedit
7.1. Structure of scheduling algorithms in the toolbox.
7.2. Scheduling problem 1|rj|Cmax solving.
7.3. Alg1rjcmax algorithm - problem 1|rj|Cmax
7.4. Scheduling problem 1|rj,~dj|Cmax solving.
7.5. Bratley’s algorithm - problem 1|rj,~dj|Cmax
7.6. Scheduling problem 1||ΣUj solving.
7.7. Hodgson’s algorithm - problem 1||ΣUj
7.8. Scheduling problem P||Cmax solving.
7.9. Algpcmax algorithm - problem P||Cmax
7.10. Scheduling problem P|pmtn|Cmax solving.
7.11. McNaughton's algorithm - problem P|pmtn|Cmax
7.12. Scheduling problem P|pj,prec,~dj|Cmax solving.
7.13. Algprjdeadlinepreccmax algorithm - problem P|pj,prec,~dj|Cmax
7.14. An example of P|prec|Cmax scheduling problem.
7.15. Scheduling problem P|prec|Cmax solving.
7.16. Result of List Scheduling.
7.17. Problem P|prec|Cmax by LS algorithm with LPT strategy solving.
7.18. Result of LS algorithm with LPT strategy.
7.19. Solving P|prec|Cmax by LS algorithm with SPT strategy.
7.20. Result of LS algorithm with SPT strategy.
7.21. Solving P|rj|∑Cj by ECT
7.22. Result of LS algorithm with ECT strategy.
7.23. Problem P|rj|∑Cj by LS algorithm with EST strategy solving.
7.24. Result of LS algorithm with EST strategy.
7.25. An example of OwnStrategy function.
7.26. Scheduling problem 1|in-tree,pj=1|Lmax solving.
7.27. Brucker’s algorithm - problem 1|in-tree,pj=1|Lmax
7.28. Graph G representing tasks constrained by positive and negative time-lags.
7.29. Resulting schedule of instance in Figure 7.28, “Graph G representing tasks constrained by positive and negative time-lags.”.
7.30. Cyclic Data Flow Graph of WDF.
7.31. Graph G weighted by lij and hij of WDF.
7.32. Resulting schedule with optimal period w=8.
7.33. Jaumann wave digital filter
7.34. The optimal schedule of Jaumann filter
7.35. An example of in-tree precedence constraints
7.36. Scheduling problem P|in-tree,pj=1|Cmax using hu command
7.37. Hu's algorithm example solution
7.38. Coffman and Graham example setting
7.39. Coffman and Graham algorithm example solution
8.1. Calculating the response time using resptime
8.2. PT_FPS example code
8.3. Result of FPS algorithm
9.1. Spanning tree example
9.2. Example of minimum spanning tree
9.3. Dijkstra's algorithm example
9.4. Strongly Connected Components example.
9.5. A simple network with optimal flow in the fourth user parameter on edges
9.6. Mincostflow example.
9.7. A simple network with optimal flow in the fourth user parameter on edges
9.8. Critical circuit ratio.
9.9. Hamilton circuit identification example.
9.10. An example of Hamilton circuit.
9.11. An example of Graph coloring
9.12. Quadratic Assignment Problem.
10.1. Simulation scheme with TrueTime Kernel block
10.2. Result of simulation
11.1. Result of case study as Gantt chart
11.2. Result of case study as Gantt chart
11.3. Graph representation of Chair manufacturing
11.4. Result of case study as Gantt chart
11.5. An application of Recursive Least Squares filter for active noise cancellation.
11.6. The RLS filter algorithm.
11.7. Graph G modeling the scheduling problem on one add unit of HSLA.
11.8. Resulting schedule of RLS filter.
Webmaster - Jan Dvořák (2004 - 2019)