2017-10-10 6 views
-1

il est très difficile question de programmation dynamique, et je veux partager avec vous et nous pouvons en discuter un peu vers sa solution:comment obtenir le plus bas coût quand organiser des emplois mobiles

Vous mettrez votre nouvelle application serveur de nuage; vous devez planifier votre travail afin d'obtenir le coût le plus bas. Vous n'avez pas besoin de vous préoccuper du nombre de tâches exécutées simultanément sur le même serveur. chaque travail k est donné par un temps de relâchement sk, un délai fk, et une durée dk avec dk ≤ fk - sk. Ce travail doit être planifié pour un intervalle de dk minutes consécutives entre le temps sk et fk. société de serveur serait facturé par minute par serveur. Vous n'avez besoin que d'un serveur virtuel et vous pouvez économiser de l'argent en déplaçant les tâches de sk à fk autour pour maximiser le temps sans exécuter de tâches ou, en d'autres termes, pour réduire le temps d'exécution d'un ou plusieurs travaux. en utilisant la programmation dynamique pour résoudre le problème. Votre algorithme devrait être polynomial en n, le nombre de tâches.

+1

Est-ce que nous faisons nos devoirs ensemble? –

+0

Post ce que vous avez trouvé jusqu'ici – Asthmatic

+0

nous pouvons discuter ici, et je ne veux pas parler physiquement. Avez-vous la moindre idée de cela? –

Répondre

1

C'est le problème de la réduction du temps de travail.

Voir Théorème 17 this paper:

Rohit Khandekar, Baruch Schieber, Hadas Shachnai et Tami Tamir. Réduire le temps d'occupation dans plusieurs machines en temps réel . Dans Actes de la 30e Conférence annuelle sur les fondations de la technologie des logiciels et l'informatique théorique Science (FSTTCS), pages 169 - 180, 2010

Pour une description d'un algorithme polynomial.

La clé est:

  1. Pour se rendre compte il y a seulement certains moments intéressants qui ont besoin d'être pris en compte (si vous avez un calendrier, pensez à retarder chaque intervalle occupé jusqu'à ce que vous frappez une date limite pour l'un des emplois en cours de traitement)

  2. À prendre en compte lorsque le travail de durée la plus longue est terminé. Cela divise le problème en deux parties; avant et après, qui peut être résolu indépendamment dans la mode de programmation dynamique normale.