2008-10-16 7 views
9

Nous nous embarquons sur R & D pour un système d'affectation du personnel, et je sais qu'il y a quelques algorithmes suggérés tels que l'algorithme mémétique etc., mais je ne trouve aucune information supplémentaire sur le web. Est-ce que quelqu'un connaît des journaux de recherche, ou pseudo-code là-bas qui explique le mieux ces algorithmes?Staff Alignement des algorithmes

Merci, Devan

Répondre

11

Voici un document utile:

Memetic Algorithms for Nurse Rostering (pdf)

Il contient un peu de théorie et pseudo-code.

Le problème de planification est NP-difficile et généralement résolu en utilisant des algorithmes génétiques (GA).
Vous pouvez commencer à apprendre GA de Wikipedia article

1

Il y a beaucoup beaucoup de questions à considérer lors de l'établissement d'un calendrier de liste, de sorte que la pointe de aku sur les algorithmes génétiques est le meilleur.

Vous avez besoin d'une bonne fonction d'évaluation pour déterminer la qualité de la liste pour un tel algorithme, et vous pouvez, et devrait, considérer les choses comme ce qui suit (mais sans s'y limiter):

  • avez-vous résolu le problème de charge de travail avec cette liste? (c'est-à-dire avez-vous assez de gens au travail en tout temps?)
  • Sinon, pouvez-vous vivre avec les conséquences? (Pour les hôpitaux, vous pourriez avoir à reporter le déjeuner 15 min d'un jour afin d'avoir suffisamment de personnes disponibles pour, ou faites simplement glisser légèrement dans le temps)
  • est la liste une bonne une, compte tenu des choses comme la stabilité de changement Pour chaque personne, ses jours de congé, qu'ils soient ou non en fin de semaine avec une certaine régularité
  • Est-ce que la liste est légale? prendre en compte les réglementations locales, réguler le temps qui doit s'écouler entre un poste et un autre (temps d'arrêt), dans quelle mesure chaque personne peut travailler dans un intervalle donné (jour, semaine, mois)
6

Vous peut aussi vouloir regarder une technique appelée "recuit simulé". Comme les algorithmes génétiques, cela utilise une fonction d'évaluation pour déterminer la qualité des solutions candidates - mais la génération des candidats a tendance à être plus simple. Chaque type d'algorithme donne de meilleurs résultats dans certaines circonstances - à partir d'un bref sondage Google, il semble que génétique a l'avantage, mais le recuit sera plus rapide à mettre en œuvre.

Voici un document de comparaison (pour un domaine différent, pas de programmation): http://www.ee.utulsa.edu/~tmanikas/Pubs/gasa-TR-96-101.pdf

Nous avons utilisé recuit simulé dans une grande application de planification et a bien fonctionné.

Pour être honnête, si le volume du personnel est inférieur à environ 40, je recommande de donner une représentation visuelle de la liste et de laisser l'utilisateur finaliser l'horaire. Peut-être utiliseriez-vous un algorithme pour créer un calendrier candidat, puis laissez l'utilisateur jouer avec. Vous pouvez toujours utiliser la fonction d'évaluation pour vérifier le travail de l'utilisateur et donner votre avis sur la qualité de sa solution.

-1

ou en utilisant OR;)

+0

-1 Bien que les problèmes d'algorithmes de schduling soient pertinents pour Operation Research, le simple fait de mentionner OR sans élaborer n'est pas une réponse. C'est comme dire Pourquoi ne pas utiliser l'IA, les mathématiques ou les alorithmes – tovare

+0

Point pris, je me sens gêné. Mais pour ma défense, la RO est un lien et avec une courte question sans aucune contrainte sur le domaine du problème, il n'est pas facile de donner une réponse élaborée. – Jonke

+0

Oui, comme pénalité, vous devez trouver un bon code-échantillon GA et poster le lien ;-) – tovare

0

Je lis un rostering algo papier par these gars un certain temps.