Content deleted Content added
Erel Segal (talk | contribs) |
Citation bot (talk | contribs) Removed URL that duplicated identifier. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 779/967 |
||
(23 intermediate revisions by 9 users not shown) | |||
Line 1:
{{Short description|Optimization prpblem}}
'''Uniform machine scheduling''' (also called '''uniformly-related machine scheduling''' or '''related machine scheduling''') is an [[optimization problem]] in [[computer science]] and [[Operations Research|operations research]]. It is a variant of [[optimal job scheduling]]. We are given ''n'' jobs ''J''<sub>1</sub>, ''J''<sub>2</sub>, ..., ''J<sub>n</sub>'' of varying processing times, which need to be scheduled on ''m'' different machines. The goal is to minimize the [[makespan]] - the total time required to execute the schedule. The time that machine ''i'' needs in order to process job j is denoted by ''p<sub>i,j</sub>''. In the general case, the times ''p<sub>i,j</sub>'' are unrelated, and any matrix of positive processing times is possible. In the specific variant called ''uniform machine scheduling'', some machines are ''uniformly'' faster than others. This means that, for each machine ''i'', there is a speed factor ''s<sub>i</sub>'', and the run-time of job ''j'' on machine ''i'' is ''p<sub>i,j</sub>'' = ''p<sub>j</sub>'' / ''s<sub>i</sub>''.
In the standard [[Optimal job scheduling|three-field notation for optimal job scheduling problems]], the uniform-machine variant is denoted by '''Q''' in the first field. For example, the problem denoted by " '''Q||'''<math>C_\max</math>" is a uniform machine scheduling problem with no constraints, where the goal is to minimize the maximum completion time. A special case of uniform machine scheduling is [[identical-machines scheduling]], in which all machines have the same speed. This variant is denoted by '''P''' in the first field.
In some variants of the problem, instead of minimizing the ''maximum'' completion time, it is desired to minimize the ''average'' completion time (averaged over all ''n'' jobs); it is denoted by '''Q||'''<math>\sum C_i</math>. More generally, when some jobs are more important than others, it may be desired to minimize a ''[[Weighted arithmetic mean|weighted average]]'' of the completion time, where each job has a different weight. This is denoted by '''Q||'''<math>\sum w_i C_i</math>.
== Algorithms ==▼
▲In some variants of the problem, instead of minimizing the ''maximum'' completion time, it is desired to minimize the ''average'' completion time (averaged over all ''n'' jobs); it is denoted by '''Q||'''<math>\sum C_i</math>. More generally, when some jobs are more important than others, it may be desired to minimize a ''[[Weighted arithmetic mean|weighted average]]'' of the completion time, where each job has a different weight. This is denoted by '''Q||'''<math>\sum w_i C_i</math>.
▲==Algorithms==
=== Minimizing the average completion time ===
Minimizing the ''average'' completion time can be done in polynomial time:
* The '''SPT algorithm''' (Shortest Processing Time First), sorts the jobs by their length, shortest first, and then assigns them to the processor with the earliest end time so far. It runs in time O(''n'' log ''n''), and minimizes the average completion time on ''identical'' machines,<ref
*'''Horowitz and Sahni<ref name=":0" />''' present an exact algorithm, with run time O(''n'' log ''m n''), for minimizing the average completion time on ''uniform'' machines, '''Q||'''<math>\sum C_i</math>.
* '''
=== Minimizing the weighted-average completion time ===
Minimizing the ''weighted average'' completion time is NP-hard even on ''identical'' machines, by reduction from the [[
'''Sahni<ref name=":3" />''' presents an exponential-time algorithm and a polynomial-time approximation algorithm for ''identical'' machines.
Line 25 ⟶ 23:
* Exact [[dynamic programming]] algorithms for minimizing the ''weighted-average completion time'' on ''uniform'' machines. These algorithms run in exponential time.
* [[Polynomial-time approximation scheme]]
=== Minimizing the maximum completion time (makespan) ===
Minimizing the ''maximum'' completion time is NP-hard even for ''identical'' machines, by reduction from the [[partition problem]]
A constant-factor approximation is attained by the [[Longest-processing-time-first scheduling#uniform|Longest-processing-time-first algorithm]] (LPT).
'''Horowitz and Sahni<ref name=":0">{{Cite journal|
▲'''Horowitz and Sahni<ref name=":0">{{Cite journal|last=Horowitz|first=Ellis|last2=Sahni|first2=Sartaj|date=1976-04-01|title=Exact and Approximate Algorithms for Scheduling Nonidentical Processors|url=https://doi.org/10.1145/321941.321951|journal=Journal of the ACM|volume=23|issue=2|pages=317–327|doi=10.1145/321941.321951|issn=0004-5411}}</ref>''' presented:
* Exact [[dynamic programming]] algorithms for minimizing the ''maximum'' completion time on both uniform and unrelated machines. These algorithms run in exponential time (recall that these problems are all NP-hard).
* [[Polynomial-time approximation scheme]]
'''Hochbaum and Shmoys'''<ref name=":02">{{Cite journal|last1=Hochbaum|first1=Dorit S.|last2=Shmoys|first2=David B.|date=1987-01-01|title=Using dual approximation algorithms for scheduling problems theoretical and practical results
'''Epstein and Sgall'''<ref>{{Cite journal|
=== Monotonicity and Truthfulness ===
In some settings, the machine speed is the machine's private information, and we want to incentivize machines to reveal their true speed, that is, we want a [[truthful mechanism]]. An important consideration for attaining truthfulness is ''monotonicity''.<ref>{{Cite book|last1=Archer|first1=A.|last2=Tardos|first2=E.|title=Proceedings 42nd IEEE Symposium on Foundations of Computer Science |chapter=Truthful mechanisms for one-parameter agents |date=2001-10-01|pages=482–491|doi=10.1109/SFCS.2001.959924|isbn=0-7695-1390-5 |s2cid=11377808 }}</ref> It means that, if a machine reports a higher speed, and all other inputs remain the same, then the total processing time allocated to the machine weakly increases. For this problem:
* '''Auletta, De Prisco, Penna and Persiano'''<ref>{{Cite book|last1=Auletta|first1=Vincenzo|last2=De Prisco|first2=Roberto|last3=Penna|first3=Paolo|last4=Persiano|first4=Giuseppe|title=Stacs 2004 |chapter=Deterministic Truthful Approximation Mechanisms for Scheduling Related Machines |date=2004|editor-last=Diekert|editor-first=Volker|editor2-last=Habib|editor2-first=Michel|chapter-url=https://link.springer.com/chapter/10.1007/978-3-540-24749-4_53|series=Lecture Notes in Computer Science|volume=2996 |language=en|___location=Berlin, Heidelberg|publisher=Springer|pages=608–619|doi=10.1007/978-3-540-24749-4_53|isbn=978-3-540-24749-4}}</ref> presented a 4-approximation monotone algorithm, which runs in polytime when the number of machines is fixed.
▲'''Epstein and Sgall'''<ref>{{Cite journal|last=Epstein|first=Leah|last2=Sgall|first2=Jiri|date=2004-05-01|title=Approximation Schemes for Schedulingon Uniformly Related and Identical Parallel Machines|url=https://doi.org/10.1007/s00453-003-1077-7|journal=Algorithmica|language=en|volume=39|issue=1|pages=43–57|doi=10.1007/s00453-003-1077-7|issn=1432-0541}}</ref> generalized the PTAS for uniform machines to handle more general objective functions. Let ''C<sub>i</sub>'' (for ''i'' between 1 and ''m'') be the makespan of machine ''i'' in a given schedule. Instead of minimizing the objective function max(''C<sub>i</sub>''), one can minimize the objective function max(''f''(''C<sub>i</sub>'')), where ''f'' is any fixed function. Similarly, one can minimize the objective function sum(''f''(''C<sub>i</sub>'')).
*'''Ambrosio and Auletta'''<ref>{{Cite book|last1=Ambrosio|first1=Pasquale|last2=Auletta|first2=Vincenzo|title=Approximation and Online Algorithms |chapter=Deterministic Monotone Algorithms for Scheduling on Related Machines |date=2005|editor-last=Persiano|editor-first=Giuseppe|editor2-last=Solis-Oba|editor2-first=Roberto|chapter-url=https://link.springer.com/chapter/10.1007/978-3-540-31833-0_22|series=Lecture Notes in Computer Science|volume=3351 |language=en|___location=Berlin, Heidelberg|publisher=Springer|pages=267–280|doi=10.1007/978-3-540-31833-0_22|isbn=978-3-540-31833-0}}</ref> proved that the [[Longest processing time|Longest Processing Time]] algorithm is monotone whenever the machine speeds are powers of some c ≥ 2, but not when c ≤ 1.78. In contrast, [[List scheduling]] is not monotone for ''c'' > 2.
* '''Andelman, Azar and Sorani'''<ref>{{Cite book|last1=Andelman|first1=Nir|last2=Azar|first2=Yossi|last3=Sorani|first3=Motti|title=Stacs 2005 |chapter=Truthful Approximation Mechanisms for Scheduling Selfish Related Machines |date=2005|editor-last=Diekert|editor-first=Volker|editor2-last=Durand|editor2-first=Bruno|chapter-url=https://link.springer.com/chapter/10.1007/978-3-540-31856-9_6|series=Lecture Notes in Computer Science|volume=3404 |language=en|___location=Berlin, Heidelberg|publisher=Springer|pages=69–82|doi=10.1007/978-3-540-31856-9_6|isbn=978-3-540-31856-9}}</ref> presented a 5-approximation monotone algorithm, which runs in polytime even when the number of machines is variable.
* '''Kovacz'''<ref>{{Cite book|last=Kovács|first=Annamária|title=Algorithms – ESA 2005 |chapter=Fast Monotone 3-Approximation Algorithm for Scheduling Related Machines |date=2005|editor-last=Brodal|editor-first=Gerth Stølting|editor2-last=Leonardi|editor2-first=Stefano |chapter-url=https://link.springer.com/chapter/10.1007/11561071_55 |series=Lecture Notes in Computer Science|volume=3669 |language=en|___location=Berlin, Heidelberg|publisher=Springer|pages=616–627|doi=10.1007/11561071_55|isbn=978-3-540-31951-1}}</ref> presented a 3-approximation monotone algorithm.
== Extensions ==
'''Dependent jobs''': In some cases, the jobs may be dependent. For example, take the case of reading user credentials from console, then use it to authenticate, then if authentication is successful display some data on the console. Clearly one task is dependent upon another. This is a clear case of where some kind of [[
'''Static versus Dynamic''': Machine scheduling algorithms are static or dynamic. A scheduling algorithm is '''static''' if the scheduling decisions as to what computational tasks will be allocated to what processors are made before running the program. An algorithm is '''dynamic''' if it is taken at run time. For static scheduling algorithms, a typical approach is to rank the tasks according to their precedence relationships and use a list scheduling technique to schedule them onto the processors.<ref>{{Cite journal|
'''Multi-stage jobs''': In various settings, each job might have several operations that must be executed in parallel. Some such settings are handled by [[Open-shop scheduling|open shop scheduling]], [[flow shop scheduling]] and [[job shop scheduling]].
== External links ==
* [
▲* [http://www2.informatik.uni-osnabrueck.de/knust/class/dateien/classes/pqr_nop/pqr_nop/ Summary of parallel machine problems without preemtion]
==References==
<references/>
{{Scheduling problems}}
[[Category:Optimal scheduling]]
[[Category:
|