P VS NP
P VS NP
Este proyecto tiene un poco mas de textos por su naturaleza de investigación
Supongamos que está organizando alojamiento para un grupo de cuatrocientos estudiantes universitarios. Las plazas son limitadas y sólo cien estudiantes recibirán plaza en la residencia. Para complicar las cosas, el Decano le ha proporcionado una lista de pares de estudiantes incompatibles y le ha solicitado que ningún par de esta lista aparezca en su elección final.
La dificultad radica en la explosión combinatoria y las restricciones de incompatibilidad. Resolverlo de forma exacta es impracticable debido al enorme número de combinaciones posibles, por lo que se necesitan algoritmos heurísticos o metaheurísticos para encontrar soluciones aproximadas eficientemente.
La fórmula para calcular el número de maneras de elegir 100 estudiantes de un total de 400 es el coeficiente binomial.
Este valor es extremadamente grande. Podemos calcularlo para obtener una idea de su magnitud.
El número entero de formas de elegir 100 estudiantes de un total de 400 es:
2241854791554337561923210387201698554845411177476295990399942258896013007429693894018935107174320
En el mundo actual, este problema podría tener una solución viable gracias al registro detallado de los estudiantes en las universidades. Estos registros incluyen una gran cantidad de datos personales y profesionales, como gustos, intereses y comportamientos. Con esta información, es posible seleccionar a los estudiantes de manera que se alineen mejor con sus preferencias y comportamientos compatibles. Sin embargo, incluso con estos datos disponibles, si el volumen de estudiantes es muy alto, el algoritmo utilizado sigue enfrentando problemas de eficiencia.
Datos y Propuesta de Solución para el Problema de Alojamiento de Estudiantes:
Lista del Decano:
Esta lista es crucial ya que proporciona pares de estudiantes que son incompatibles. Aunque sabemos que proviene de los 100 estudiantes totales, no tenemos los detalles específicos de estos pares incompatibles.
¿Cómo obtener la lista del decano?
Mostrar el primer DataFrame con los estudiantes
Segmentar el DataFrame dinámicamente
Asignar puntos de compatibilidad
Ordenar los estudiantes de mayor a menor compatibilidad
Encontrar a los más compatibles entre sí
Segmentar los estudiantes restantes menos compatibles (lista del decano)
Propuesta:
Algoritmo de Comparación:
Se propone que el algoritmo realice una comparación inicial entre los estudiantes para evaluar sus gustos y preferencias, asignando un puntaje de compatibilidad. Este puntaje será ordenado de mayor a menor para facilitar la selección.
Parámetros Adicionales para la Solución
Para que el algoritmo pueda analizar y comparar a los estudiantes de manera efectiva, se utilizará un archivo CSV con las siguientes columnas que serán sus características:
Identificador del Estudiante
Nombre del Estudiante
Edad
Género
Nacionalidad
Religión
Año de Estudio
Gustos Musicales
Actividades Extracurriculares
Hobbies
Comparación y Umbral de Compatibilidad
Comparación de Preferencias:
De las 10 columnas mencionadas, se compararán 8 que corresponden a las preferencias de los estudiantes. Las columnas de Identificador y Nombre del Estudiante no se tomarán en cuenta.
Umbral Dinámico:
Para estas 8 columnas, se establecerá un umbral dinámico de compatibilidad. El umbral será de 2, lo que significa que los estudiantes deben coincidir en al menos 2 de sus preferencias para ser considerados compatibles.
Con este algoritmo, procesé más de 60 millones de combinaciones en 1 hora y 11 minutos utilizando un equipo computacional básico (Chip M1 de Apple con 8 GB de RAM y un disco SSD de 250 GB). Imagino el potencial de este algoritmo en una supercomputadora con capacidades avanzadas. De hecho, consulté a ChatGPT para comparar mi equipo actual con una supercomputadora, y los resultados fueron prometedores.
Para acceder al documento y la investigación completa