Hola, estoy creando un programa en el que los estudiantes se inscriben para un examen que se lleva a cabo en varias ciudades de todo el país. Al inscribir a los estudiantes, proporcionen una lista de las tres ciudades donde les gustaría dar el examen en orden de su preferencia. Entonces, un estudiante puede decir que su primera preferencia para un centro de examen es Nueva York, seguido de Chicago seguido de Boston.Algoritmo para resolver problemas de asignación de recursos
Ahora, teniendo en cuenta que los centros de examen tienen capacidad limitada, no pueden acomodar la primera opción de cada estudiante. Sin embargo, intentaríamos proporcionar tantos estudiantes como su primera o segunda elección de centros y evitar a los estudiantes tener que dé el tercer centro de elección a un estudiante
Ahora cualquier idea de un algoritmo de ordenamiento que haría este proceso más eficiente. La manera simple de hacerlo sería ir primero a través de la lista de estudiantes de primera elección asignar tantos como posible, luego revisa la lista de segundas opciones y asigna. Sin embargo, esto puede llevar a que los estudiantes que son primeros en la lista obtengan su primer centro y los últimos estudiantes que obtienen su tercera opción o peor ninguno de sus opciones. Cualquier cosa que pueda hacer esto más eficiente
Mi sensación de la tripa es que un algoritmo de "perfecto" sería NP-completo, y que tendrá que conformarse con una aproximación. –
¿Por qué no dar prioridad a los primeros estudiantes que se registraron? Tienes que discriminarlos de todos modos. – alexpirine
El problema es que el cliente nos ha dicho específicamente que no sigamos el enfoque del primero en recibir el primer servidor.La razón es que los estudiantes en diferentes lugares tienen fechas diferentes para llenar su formulario de examen. Por lo tanto, no es su culpa que completen su formulario más tarde que los demás. – user992010