Je cherche un algorithme pour gérer le problème suivant, que j'appelle (pour l'instant) l'algorithme "bad apple".
Le problème
- J'ai N processus en cours d'exécution dans M bacs à sable, où N >> M.
- Il est impossible de donner à chaque processus son propre bac à sable.
- Au moins un de ces processus se comporte mal et fait tomber l'ensemble du bac à sable, tuant ainsi tous les autres processus dans le même bac à sable.
S'il s'agissait d'un seul processus mal comporté, je pourrais utiliser une simple bissection pour mettre la moitié des processus dans un bac à sable et l'autre moitié dans un autre bac à sable, jusqu'à ce que je trouve le mécréant.
La question
Si plusieurs processus se comportent mal - y compris la possibilité qu'ils soient tous mal comportés - cet algorithme naïf "fonctionne"? Est-il garanti de fonctionner dans des limites raisonnables?
Simplifications
Par souci d'argument, supposons qu'un mauvais processus fait tomber son bac à sable instantanément, et qu'un bon processus ne le fait jamais.