Schemaläggning av enhetliga maskiner
Enhetlig maskinschemaläggning (även kallad enhetligt relaterad maskinschemaläggning eller relaterad maskinschemaläggning ) är ett optimeringsproblem inom datavetenskap och operationsforskning . Det är en variant av optimal jobbschemaläggning . Vi får n jobb J 1 , J 2 , ..., J n med varierande bearbetningstider, som behöver schemaläggas på m olika maskiner. Målet är att minimera makespan - den totala tiden som krävs för att genomföra schemat. Den tid som maskin i behöver för att bearbeta jobb j betecknas med p i,j . I det allmänna fallet är tiderna pi ,j orelaterade, och vilken matris som helst med positiva behandlingstider är möjlig. I den specifika varianten som kallas enhetlig maskinschemaläggning är vissa maskiner enhetligt snabbare än andra. Detta betyder att det för varje maskin i si finns en hastighetsfaktor , och körtiden för jobb j på maskin i är p i,j = p j / s i .
I standardnotationen med tre fält för optimala jobbschemaläggningsproblem, betecknas enhetsmaskinvarianten med Q i det första fältet. Till exempel är problemet betecknat med " Q|| " ett enhetligt maskinschemaläggningsproblem utan några begränsningar, där målet är att minimera den maximala slutförandetiden. Ett specialfall av enhetlig maskinschemaläggning är identisk maskinschemaläggning , där alla maskiner har samma hastighet. Denna variant betecknas med P i det första fältet.
I vissa varianter av problemet, istället för att minimera den maximala färdigställandetiden, är det önskvärt att minimera den genomsnittliga färdigställandetiden (i genomsnitt över alla n jobb); den betecknas med Q|| . Mer generellt, när vissa jobb är viktigare än andra, kan det vara önskvärt att minimera ett viktat genomsnitt av färdigställandetiden, där varje jobb har olika vikt. Detta betecknas med Q|| .
Algoritmer
Minimerar den genomsnittliga slutförandetiden
Minimering av den genomsnittliga slutförandetiden kan göras i polynomtid:
- SPT -algoritmen (Shortest Processing Time First), sorterar jobben efter deras längd, kortast först, och tilldelar dem sedan till processorn med den tidigaste sluttiden hittills. Den körs i tiden O( n log n ), och minimerar den genomsnittliga slutförandetiden på identiska maskiner, P|| .
- Horowitz och Sahni presenterar en exakt algoritm, med körtid O( n log mn ), för att minimera den genomsnittliga slutförandetiden på enhetliga maskiner, Q|| .
- Bruno, Coffman och Sethi presenterar en algoritm som körs i tiden för att minimera genomsnittlig färdigställandetid på icke-relaterade maskiner, R|| .
Minimera den viktade genomsnittliga slutförandetiden
Att minimera den viktade genomsnittliga färdigställandetiden är NP-svårt även på identiska maskiner, genom att minska från ryggsäcksproblemet . Det är NP-svårt även om antalet maskiner är fixat och minst 2, genom reduktion från partitionsproblemet .
Sahni presenterar en exponentiell-tidsalgoritm och en polynom-tidsapproximationsalgoritm för identiska maskiner.
Horowitz och Sahni presenterade:
- Exakta dynamiska programmeringsalgoritmer för att minimera den viktade genomsnittliga slutförandetiden på enhetliga maskiner. Dessa algoritmer körs i exponentiell tid.
- Polynom-tidsapproximationsscheman , som för alla ε >0, uppnår som mest (1+ε)OPT. För att minimera den viktade genomsnittliga slutförandetiden på två enhetliga maskiner är körtiden = , så det är en FPTAS. De hävdar att deras algoritmer lätt kan utökas för hur många enhetliga maskiner som helst, men analyserar inte körtiden i detta fall. De presenterar inte en algoritm för viktad genomsnittlig slutförandetid på icke-relaterade maskiner.
Minimera den maximala slutförandetiden (makespan)
Att minimera den maximala slutförandetiden är NP-svårt även för identiska maskiner, genom att reducera partitionsproblemet .
En konstantfaktorapproximation uppnås av algoritmen längsta bearbetningstid-först ( LPT).
Horowitz och Sahni presenterade:
- Exakta dynamiska programmeringsalgoritmer för att minimera den maximala slutförandetiden på både enhetliga och orelaterade maskiner. Dessa algoritmer körs i exponentiell tid (kom ihåg att dessa problem alla är NP-hårda).
- Polynom-tidsapproximationsscheman , som för alla ε >0, uppnår som mest (1+ε)OPT. För att minimera den maximala slutförandetiden på två enhetliga maskiner körs deras algoritm i tiden där är det minsta heltal för vilket . Därför är körtiden i så det är en FPTAS . För att minimera den maximala slutförandetiden på två orelaterade maskiner är körtiden = . De hävdar att deras algoritmer lätt kan utökas för hur många enhetliga maskiner som helst, men analyserar inte körtiden i detta fall.
Hochbaum och Shmoys presenterade flera approximationsalgoritmer för valfritt antal identiska maskiner . Senare utvecklade de en PTAS för enhetliga maskiner.
Epstein och Sgall generaliserade PTAS för enhetliga maskiner för att hantera mer allmänna objektiva funktioner. Låt C i (för i mellan 1 och m ) vara fabrikatet av maskin i i ett givet schema. Istället för att minimera objektivfunktionen max( Ci , ) kan man minimera objektivfunktionen max( f ( C i )) där f är vilken fast funktion som helst. På liknande sätt kan man minimera den objektiva funktionen summa( f ( C i )).
Monotonicitet och sanningsenlighet
I vissa inställningar är maskinhastigheten maskinens privata information, och vi vill uppmuntra maskiner att avslöja deras verkliga hastighet, det vill säga vi vill ha en sanningsenlig mekanism . En viktig faktor för att uppnå sanningsenlighet är monotoni . Det betyder att om en maskin rapporterar en högre hastighet, och alla andra ingångar förblir desamma, så ökar den totala bearbetningstiden som allokeras till maskinen svagt. För detta problem:
- Auletta, De Prisco, Penna och Persiano presenterade en 4-approximations monoton algoritm, som körs i polytime när antalet maskiner är fast.
- Ambrosio och Auletta bevisade att algoritmen för längsta bearbetningstid är monoton närhelst maskinhastigheterna är potenser på c ≥ 2, men inte när c ≤ 1,78. Däremot listschemaläggning inte monoton för c > 2.
- Andelman, Azar och Sorani presenterade en 5-approximations monoton algoritm, som körs i polytime även när antalet maskiner är variabelt.
- Kovacz presenterade en 3-approximations monoton algoritm.
Tillägg
Beroende jobb : I vissa fall kan jobben vara beroende. Ta till exempel fallet med att läsa användaruppgifter från konsolen, använd den sedan för att autentisera, och om autentiseringen lyckas visa några data på konsolen. Uppenbarligen är en uppgift beroende av en annan. Detta är ett tydligt fall där det finns någon form av ordning mellan uppgifterna. I själva verket är det tydligt att det kan modelleras med partiell beställning . Då, per definition, utgör uppsättningen av uppgifter en gitterstruktur . Detta lägger till ytterligare komplikationer till schemaläggningsproblemet med flera processorer.
Statisk kontra dynamisk : Maskinschemaläggningsalgoritmer är statiska eller dynamiska. En schemaläggningsalgoritm är statisk om schemaläggningsbesluten om vilka beräkningsuppgifter som kommer att tilldelas vilka processorer som görs innan programmet körs. En algoritm är dynamisk om den tas vid körning. För statiska schemaläggningsalgoritmer är ett typiskt tillvägagångssätt att rangordna uppgifterna enligt deras prioritetsförhållanden och använda en listschemaläggningsteknik för att schemalägga dem på processorerna.
Flerstegsjobb : I olika inställningar kan varje jobb ha flera operationer som måste utföras parallellt. Vissa sådana inställningar hanteras av schemaläggning för öppen butik , schemaläggning av flödesbutiker och schemaläggning av jobbbutiker .
externa länkar
- ^ Horowitz, Ellis; Sahni, Sartaj (1976-04-01). "Exakta och ungefärliga algoritmer för att schemalägga icke-identiska processorer" . Journal of the ACM . 23 (2): 317–327. doi : 10.1145/321941.321951 . ISSN 0004-5411 . S2CID 18693114 .
- ^ a b c d Horowitz, Ellis; Sahni, Sartaj (1976-04-01). "Exakta och ungefärliga algoritmer för att schemalägga icke-identiska processorer" . Journal of the ACM . 23 (2): 317–327. doi : 10.1145/321941.321951 . ISSN 0004-5411 . S2CID 18693114 .
- ^ Bruno, J.; Coffman, EG; Sethi, R. (1974-07-01). "Schemalägga självständiga uppgifter för att minska den genomsnittliga sluttiden" . Kommunikation från ACM . 17 (7): 382–387. doi : 10.1145/361011.361064 . ISSN 0001-0782 .
- ^ a b Sahni, Sartaj K. (1976-01-01). "Algoritmer för att schemalägga oberoende uppgifter" . Journal of the ACM . 23 (1): 116–127. doi : 10.1145/321921.321934 . ISSN 0004-5411 .
- ^ Hochbaum, Dorit S.; Shmoys, David B. (1987-01-01). "Använda dubbla approximationsalgoritmer för att schemalägga problem teoretiska och praktiska resultat" . Journal of the ACM . 34 (1): 144–162. doi : 10.1145/7531.7535 . ISSN 0004-5411 . S2CID 9739129 .
- ^ Hochbaum, Dorit S.; Shmoys, David B. (1988-06-01). "Ett polynomapproximationsschema för schemaläggning på enhetliga processorer: Använda den dubbla tillnärmningsmetoden" . SIAM Journal on Computing . 17 (3): 539–551. doi : 10.1137/0217033 . ISSN 0097-5397 .
- ^ Epstein, Leah; Sgall, Jiri (2004-05-01). "Approximationsscheman för schemaläggning av enhetligt relaterade och identiska parallella maskiner" . Algoritmik . 39 (1): 43–57. doi : 10.1007/s00453-003-1077-7 . ISSN 1432-0541 . S2CID 12965369 .
- ^ Archer, A.; Tardos, E. (2001-10-01). "Sanningsmekanismer för agenter med en parameter" . Proceedings 42nd IEEE Symposium on Foundations of Computer Science : 482–491. doi : 10.1109/SFCS.2001.959924 . ISBN 0-7695-1390-5 . S2CID 11377808 .
- ^ Auletta, Vincenzo; De Prisco, Roberto; Penna, Paolo; Persiano, Giuseppe (2004). Diekert, Volker; Habib, Michel (red.). "Deterministiska sanningsenliga approximationsmekanismer för schemaläggning av relaterade maskiner" . Stacs 2004 . Föreläsningsanteckningar i datavetenskap. Berlin, Heidelberg: Springer. 2996 : 608-619. doi : 10.1007/978-3-540-24749-4_53 . ISBN 978-3-540-24749-4 .
- ^ Ambrosio, Pasquale; Auletta, Vincenzo (2005). Persiano, Giuseppe; Solis-Oba, Roberto (red.). "Deterministiska monotonalgoritmer för schemaläggning på relaterade maskiner" . Approximation och onlinealgoritmer . Föreläsningsanteckningar i datavetenskap. Berlin, Heidelberg: Springer. 3351 : 267–280. doi : 10.1007/978-3-540-31833-0_22 . ISBN 978-3-540-31833-0 .
- ^ Andelman, Nir; Azar, Yossi; Sorani, Motti (2005). Diekert, Volker; Durand, Bruno (red.). "Sanningsmekanismer för att schemalägga själviska relaterade maskiner" . Stacs 2005 . Föreläsningsanteckningar i datavetenskap. Berlin, Heidelberg: Springer. 3404 : 69–82. doi : 10.1007/978-3-540-31856-9_6 . ISBN 978-3-540-31856-9 .
- ^ Kovács, Annamária (2005). Brodal, Gerth Stølting; Leonardi, Stefano (red.). "Snabb monoton 3-approximationsalgoritm för schemaläggning av relaterade maskiner" . Algoritmer – ESA 2005 . Föreläsningsanteckningar i datavetenskap. Berlin, Heidelberg: Springer. 3669 : 616-627. doi : 10.1007/11561071_55 . ISBN 978-3-540-31951-1 .
- ^ Kwok, Yu-Kwong; Ahmad, Ishfaq (1999-12-01). "Statiska schemaläggningsalgoritmer för att allokera riktade uppgiftsdiagram till multiprocessorer". ACM Computing Surveys . 31 (4): 406–471. CiteSeerX 10.1.1.322.2295 . doi : 10.1145/344588.344618 . ISSN 0360-0300 . S2CID 207614150 .