2012-11-12 3 views
3

Il y a un ensemble de 9 étudiants et 3 écoles Chaque école peut être attribuée à maximum 3 étudiants. Chaque école et chaque élève a ses coordonnées. Maintenant, nous devons répartir les étudiants de telle sorte que la somme de la distance de tous l'étudiant à l'école devrait être minimum.Distance minimum

On m'a posé cette question dans une interview. Quelqu'un peut-il suggérer un algorithme pour cela? Au début, j'ai essayé l'approche gourmande, mais cela ne fonctionne pas. Ensuite, j'ai essayé d'appliquer une approche de programmation dynamique, mais je n'ai pas réussi à trouver une sous-structure optimale.

+3

Le problème à résoudre est appelé graphe biparti correspondant – RobAu

+0

Pouvez-vous suggérer quelques bonnes lectures sur la correspondance de graphe biparti. – Avinash

+0

Ce livre est bon mais probablement trop théorique: ["Matching Theory" par MD Plummer, L. Lovász] (http://books.google.fr/books/about/Matching_Theory.html?id=mycZP-J344wC&redir_esc=y) . –

Répondre

4

Chaque école a 3 places, les 3 écoles ont 9 places. Et vous devriez trouver le meilleur match entre 9 places et 9 étudiants.

Ce problème d'affectation peut être résolu avec Hungarian algorithm.

1

Que diriez-vous de la recherche exhaustive puisque la taille du problème est assez petite?

  • La première école choisit 3 élèves sur 9 pour commencer.
  • La deuxième école choisit 3 élèves sur 6 restants.
  • Dernière école coincé avec les 3 étudiants restants.

Alors (9 choose 3) * (6 choose 3) = 1680

+0

Je suis à la recherche d'une solution efficace. – Avinash