Planen, um die abgeschnittenen Lücken zu minimieren
-
29-09-2020 - |
Frage
Ich habe einen einzelnen Job der Einheitslänge, einen Satz von $ N $ Slots, und ein Budget von $ B $ Einheiten. Wenn der Job bei Slot $ T $ geplant ist, konsumiert es $ c (t) $ -Es des Budgets $ B $ . Wenn der Job nicht für einen Zeitraum von $ x $ aufeinanderfolgende Slots ist, dann eine Strafe von $ \ lfloor X / 2 \ rfloor $ tritt auf. Ziel ist es, den Job zu planen, um die Summe der Strafen zu minimieren.
Beispielsweise für $ n= 12 $ , wenn der Job bei Slot 1, am Steckplatz 3, am Steckplatz 6 und bei Slot $ 12 $ , dann ist die Summe der Sanktionen
ist dieses Problem np-hart?
Ich versuche, das Rucksackproblem daran zu reduzieren. Die Umwandlung der Werte in das Rucksackproblem an die Strafen ist irgendwie schwierig, denn sobald der Job in $ T $ ist, wird die Strafe initialisiert.
Lösung
Das Problem ist die Polynom-Zeit lösbar. Um Randkoffer zu vermeiden, ist es besser, zu glauben, dass der Job zum Zeitpunkt $ 0 $ geplant werden muss, und dieser $ C (0 )= 0 $ .
$ opt [t, p] $ sein Mindestbetrag, der ausgegeben werden muss, um den Job in der ersten
$ P (t ', t)=Big \ lfloor \ frac {t-t'-1} {2} \ Big \ Rfloor $ sei Die Strafe, die anfällt, wenn der Job manchmal geplant ist $ T '$ und $ t> t' $ und ist zu keiner Zeit dazwischen geplant.
dann $ opt [0, p]= 0 $ und für $ t> 0 $ :
die minimale erreichbare Strafe bis zur Zeit $ T $ , mit der Einschränkung, mit der der Job zum Zeitpunkt $ t geplant ist $ , ist dann:
und die minimal erreichbare Strafe für Ihr Problem ist:
Beachten Sie, dass es höchstens $ N \ CDOT (P (0, N) +1)= O (N ^ 2) $ Werte