List algorithms
The Scheduling.jl package provides a set of algorithms based on well-known priority rules. These algorithms are designed for scheduling on identical parallel machines.
Scheduling.Algorithms.list! — Method.list!(J::Vector{Job}, M::Vector{Machine})Schedules jobs in the order of their appearance in the J vector. If more than one machine can be selected, it selects the machine which is first in the M vector. This algorithm works on original J and M vectors which are also returned with the resulting schedule. In order to use copies, see list.
This algorithm is based on the following job parameters: p (processing time).
Scheduling.Algorithms.list — Method.list(J::Vector{Job}, M::Vector{Machine})The same as list!, but it copies the input vectors before the algorithm starts.
Scheduling.Algorithms.spt! — Method.spt!(J::Vector{Job}, M::Vector{Machine}; weighted = false)Schedules jobs in the order of their processing times, starting with the shortest one. If weighted is set to true, then the sorting will be weighted. This algorithm works on original J and M vectors which are also returned with the resulting schedule. In order to use copies, see spt.
This algorithm is based on the following job parameters: p (processing time), w (weight).
Scheduling.Algorithms.spt — Method.spt(J::Vector{Job}, M::Vector{Machine}; weighted = false)The same as spt!, but it copies the input vectors before the algorithm starts.
Scheduling.Algorithms.wspt! — Method.wspt!(J::Vector{Job}, M::Vector{Machine})Schedules jobs in the order of their processing times to weight ratios, starting with the lowest one. This algorithm works on original J and M vectors which are also returned with the resulting schedule. In order to use copies, see wspt.
This algorithm is based on the following job parameters: p (processing time), w (weight).
Scheduling.Algorithms.wspt — Method.wspt(J::Vector{Job}, M::Vector{Machine})The same as wspt!, but it copies the input vectors before the algorithm starts.
Scheduling.Algorithms.lpt! — Method.lpt!(J::Vector{Job}, M::Vector{Machine}; weighted = false)Schedules jobs in the order of their processing times, starting with the largest one. If weighted is set to true, then the sorting will be weighted. This algorithm works on original J and M vectors which are also returned with the resulting schedule. In order to use copies, see lpt.
This algorithm is based on the following job parameters: p (processing time), w (weight).
Scheduling.Algorithms.lpt — Method.lpt(J::Vector{Job}, M::Vector{Machine}; weighted = false)The same as lpt!, but it copies the input vectors before the algorithm starts.
Scheduling.Algorithms.wlpt! — Method.wlpt!(J::Vector{Job}, M::Vector{Machine}; copy = false)Schedules jobs in the order of their processing times to weight ratios, starting with the highest one. This algorithm works on original J and M vectors which are also returned with the resulting schedule. In order to use copies, see wlpt.
This algorithm is based on the following job parameters: p (processing time), w (weight).
Scheduling.Algorithms.wlpt — Method.wlpt(J::Vector{Job}, M::Vector{Machine})The same as wlpt!, but it copies the input vectors before the algorithm starts.