Je suis en train de créer un site web pour un projet parallèle à l'école où les étudiants entrent les cours qu'ils doivent prendre, les jours où ils veulent ou ne veulent pas de cours, et quand ils ne peuvent pas avoir ou ne veulent pas de cours. Les bases sont les suivantes : il y a des classes, et chaque classe a plusieurs sections à différents moments avec différents professeurs parmi lesquels un étudiant peut choisir. Avec les classes de première année, il peut y avoir plus de 30 sections différentes pour chaque classe. J'ai les classes et les sections dans une base de données mysql et j'ai codé en php.
Pour l'instant, il fonctionne mais je veux qu'il soit plus rapide. J'ai lu des articles sur d'autres problèmes de programmation, mais je cherche des informations spécifiques à ce que je fais. Il ne s'agit pas de créer des planifications à partir de rien. Il s'agit de créer des horaires à partir des sections disponibles et de les classer en fonction des entrées des étudiants. Actuellement, pour quelques sections possibles, il fonctionne rapidement. Mais lorsque le nombre d'emplois du temps possibles atteint environ 300 000, il faut environ 30 secondes pour tout comparer et classer. Je l'ai amélioré en changeant la façon dont les horaires sont générés, mais je veux aller plus vite. Je suis passé de la génération par force brute à l'utilisation d'une méthode basée sur les arbres.
Je ne demande pas une aide aux devoirs ou que quelqu'un fasse ça pour moi. Je veux simplement qu'on m'oriente dans la bonne direction en me proposant des problèmes et des algorithmes déjà existants sur lesquels je peux m'instruire.