diff --git a/.gitignore b/.gitignore index eb6464f..c639303 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ choco* /tp/code/TP/Travail_de_session/nbproject/private/ +Travail_de_session/schedulingproject/target/ /out ## Core latex/pdflatex auxiliary files: *.aux diff --git a/Rapport_de_session/Annexe1.tex b/Rapport_de_session/Annexe1.tex index 1de6fb0..3509f7e 100644 --- a/Rapport_de_session/Annexe1.tex +++ b/Rapport_de_session/Annexe1.tex @@ -1,5 +1,4 @@ - -\section{Annexe 1 : Horaires initiales générées par le modèle} +\section*{Annexe 1 : Horaires initiales générées par le modèle} \label{sec:AnnexeHoraires} \pagebreak \begin{landscape} diff --git a/Rapport_de_session/Annexe2.tex b/Rapport_de_session/Annexe2.tex index ac3b18f..c9efab0 100644 --- a/Rapport_de_session/Annexe2.tex +++ b/Rapport_de_session/Annexe2.tex @@ -1,5 +1,4 @@ - -\section{Annexe 2 : Pseudo-Code de l'algorithme de recouvrement des horaires} +\section*{Annexe 2 : Pseudo-Code de l'algorithme de recouvrement des horaires} \label{sec:AnnexePseudo} \pagebreak \begin{landscape} diff --git a/Rapport_de_session/approche.tex b/Rapport_de_session/approche.tex index 9e74101..02ec05d 100644 --- a/Rapport_de_session/approche.tex +++ b/Rapport_de_session/approche.tex @@ -8,7 +8,7 @@ Ce problème sera modélisé à l'aide de la programmation par contraintes avec \centering \label{fig:etapes} \includegraphics[]{etapes} - \caption{Étapes de la production d'horaires optimaux et robustes. **** J'ai modié le .dot, il faudrait le regénérer. Aussi, J'enlèverais la première étape, car elle est incluse dans l'étape 2.*****} + \caption{Étapes de la production d'horaires optimaux et robustes} \end{figure} \subsection{Paramètres} diff --git a/Rapport_de_session/etapes.dot b/Rapport_de_session/etapes.dot index 12374db..668d5a4 100644 --- a/Rapport_de_session/etapes.dot +++ b/Rapport_de_session/etapes.dot @@ -9,7 +9,7 @@ digraph etapes { c1[label="Générer les horaires\nde recouvrement optimales"]; c2[label="Calculer le coût de recouvrement\n des horaires modifiés"]; d1[label="Calculer le coût de recouvrement\n moyen pour chaque horaire initial"]; - d2[label="Déterminer les horaires optimaux \n basé sur le coût de recouvrement moyen"]; + d2[label="Déterminer les horaires optimaux\n basé sur le coût de recouvrement moyen"]; {a -> b1}; diff --git a/Rapport_de_session/etapes.pdf b/Rapport_de_session/etapes.pdf index d874006..0a03691 100644 Binary files a/Rapport_de_session/etapes.pdf and b/Rapport_de_session/etapes.pdf differ diff --git a/Rapport_de_session/introduction.tex b/Rapport_de_session/introduction.tex index 2958ff4..09551a0 100644 --- a/Rapport_de_session/introduction.tex +++ b/Rapport_de_session/introduction.tex @@ -3,7 +3,7 @@ La planification d'horaires de travail est un enjeu important pour plusieurs industries et entités gouvernementales. Une mauvaise planification des ressources en fonction de la demande de travail d'une entreprise peut entraîner une diminution des profits en plus d'avoir des répercussions sur les dates de livraison de ses différents contrats. Parmi les raisons qui rendent cette tâche difficile, il y a les restrictions complexes provenant de la loi du travail, une variabilité de la demande de travail selon les période de l'année et une incertitude liée à l'absentéisme des employés. Il devient donc important de produire des horaires de travail permettant une flexibilité d'ajustement en fonction de la demande de travail et de l'absentéisme des employés, tout en minimisant le coût des salaires. -Le présent travail propose une approche stoechastique pour la génération d'horaires de travail robustes en fonction du taux d'absentéisme et du taux d'augmentation de la demande de travail. Une banque d'horaires valides est d'abord générée avec le solveur Choco de manière efficace et en prenant soin d'obtenir des horaires avec des différences importantes quant aux types d'employés (temps plein ou temps partiel) la caractérisant. Par la suite, ces différents horaires sont soumis à des simulations durant lesquelles sont générées des absences et des augmentations ponctuelles de la demande de travail. Un algorithme de recouvrement est ensuite utilisé pour combler les différentes plages horaires en déficit de main-d'oeuvre. Les coûts de recouvrement moyens de ces différents horaires modifiés serviront à évaluer la robustesse des horaires face aux probabilités d'absentéisme et d'augmentation de la demande. Enfin, des résultats montreront que cette méthode permet d'évaluer le ratio employés temps plein / employés temps partiel optimal en fonction des probabilités d'absentéisme et d'augmentation de la charge de travail. +Le présent travail propose une approche stoechastique pour la génération d'horaires de travail robustes en fonction du taux d'absentéisme et du taux d'augmentation de la demande de travail. Une banque d'horaires valides est d'abord générée avec le solveur Choco de manière efficace et en prenant soin d'obtenir des horaires avec des différences importantes quant aux types d'employés (temps plein ou temps partiel) la caractérisant. Par la suite, ces différents horaires sont soumis à des simulations durant lesquelles sont générées des absences et des augmentations ponctuelles de la demande de travail. Un algorithme de recouvrement est ensuite utilisé pour combler les différentes plages horaires en déficit de main-d'oeuvre. Les coûts de recouvrement moyens de ces différents horaires modifiés serviront à évaluer la robustesse des horaires face aux probabilités d'absentéisme et d'augmentation de la demande. Enfin, des résultats montreront que cette méthode permet d'évaluer le ratio \texttt{employés temps plein / employés temps partiel} optimal en fonction des probabilités d'absentéisme et d'augmentation de la charge de travail. %%% Local Variables: %%% mode: latex diff --git a/Rapport_de_session/rapport_de_recherche.pdf b/Rapport_de_session/rapport_de_recherche.pdf index aa04d50..8ba0b55 100644 Binary files a/Rapport_de_session/rapport_de_recherche.pdf and b/Rapport_de_session/rapport_de_recherche.pdf differ diff --git a/Rapport_de_session/rapport_de_recherche.tex b/Rapport_de_session/rapport_de_recherche.tex index cf4902b..3ef85a9 100644 --- a/Rapport_de_session/rapport_de_recherche.tex +++ b/Rapport_de_session/rapport_de_recherche.tex @@ -63,26 +63,20 @@ \begin{document} \input{pagetitre} % Inclut le code contenu dans un fichier comme s'il était entré ici +\thispagestyle{empty} \tableofcontents -\newpage -\listoffigures -\newpage -\listoftables -\newpage % Le package newclude mis en commentaire permet d'introduire une * pour éviter le saut de page entre les section - +\clearpage +\pagenumbering{arabic} \input{introduction} \input{description} \input{approche} \input{experimentation} \input{resultatsetdiscussion} \input{conclusion} - -\newpage \bibliography{bibliographie} \newpage \input{Annexe1} -\newpage \input{Annexe2} \end{document} diff --git a/Rapport_de_session/resultatsetdiscussion.tex b/Rapport_de_session/resultatsetdiscussion.tex index 457a0fb..778f913 100644 --- a/Rapport_de_session/resultatsetdiscussion.tex +++ b/Rapport_de_session/resultatsetdiscussion.tex @@ -10,7 +10,7 @@ \centering \caption{Effet des probabilités d'absentéisme et d'augmentation de la demande de travail sur le coût moyen de recouvrement des horaires.} \includegraphics[width=16cm]{Tables/TableaueffetsParametres.png} - \label{tableau:TableauEffetsParametres} + \label{table:TableauEffetsParametres} \end{table} Comme le montre ce tableau, pour une probabilité d'absentéisme nulle (sans absence), le coût des horaires augmente en fonction du nombre d'employé à temps partiel. Cela est dû au fait que ces employés ont un taux horaire régulier 10\% plus élevé que celui des employés à temps plein. De plus, pour tous les ratios de type employés, l'augmentation de la probabilité d'absentéisme et l'augmentation de la probabilité d'augmentation de la demande de travail sont associées à l'augmentation du coût de recouvrement des horaires. Cette augmentation de coûts est liée à l'augmentation des heures travaillées (hausse de la demande), au temps supplémentaire des employés à temps plein (+50\%) ainsi que du taux horaire régulier supérieur des employés à temps partiel, lesquels sont privilégiés pour effectuer les recouvrements. Enfin, ces résultats démontrent que le ratio de type d'employés qui conduit à l'horaire avec un coût de recouvrement minimal varie selon les deux paramètres testés. En effet, lorsque le nombre d'absence et/ou la demande de travail supplémentaire augmente de façon importante, un nombre d'employés à temps partiel supérieur par rapport au nombre d'employés à temps plein permet d'obtenir un horaire au coût de recouvrement le plus faible. La principale raison est une diminution du temps supplémentaire effectué par les employés à temps plein. La Figure \ref{fig:MappingRatioOptimal} montre les ratios de type d'employés à privilégier pour la construction des horaires en fonction des probabilités d'absence et d'augmentation de la demande de travail. diff --git a/Travail_de_session/choco-solver-4.0.6-with-dependencies.jar b/Travail_de_session/choco-solver-4.0.6-with-dependencies.jar deleted file mode 100644 index 0c8c6d9..0000000 Binary files a/Travail_de_session/choco-solver-4.0.6-with-dependencies.jar and /dev/null differ diff --git a/Travail_de_session/schedulingproject/README b/Travail_de_session/schedulingproject/README new file mode 100644 index 0000000..d66ac25 --- /dev/null +++ b/Travail_de_session/schedulingproject/README @@ -0,0 +1,12 @@ +Auteur: François Bérubé et François Pelletier +Titre: Plantification d'horaires robustes +Date: 20 avril 2018 + +Ce projet est construit avec Apache Maven +Exécuter les commandes suivantes pour construire le projet et exécuter le programme + +mvn install +mvn package +java -cp target/schedulingproject-1.0-SNAPSHOT-jar-with-dependencies.jar MainClass.MainClass + +Le projet peut aussi être exécuté depuis un IDE tel qu'IntelliJ IDEA ou NetBeans diff --git a/Travail_de_session/jdistlib-0.4.5-bin.jar b/Travail_de_session/schedulingproject/lib/jdistlib-0.4.5-bin.jar similarity index 100% rename from Travail_de_session/jdistlib-0.4.5-bin.jar rename to Travail_de_session/schedulingproject/lib/jdistlib-0.4.5-bin.jar diff --git a/Travail_de_session/schedulingproject/pom.xml b/Travail_de_session/schedulingproject/pom.xml new file mode 100644 index 0000000..8000512 --- /dev/null +++ b/Travail_de_session/schedulingproject/pom.xml @@ -0,0 +1,66 @@ + + + 4.0.0 + ca.ulaval.ift7008 + schedulingproject + 1.0-SNAPSHOT + http://maven.apache.org + + UTF-8 + UTF-8 + + + + net.sourceforge.jdistlib + jdistlib + 0.4.5 + + + org.choco-solver + choco-solver + 4.0.6 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + org.apache.maven.plugins + maven-jar-plugin + + + + MainClass.MainClass + + + + + + maven-assembly-plugin + + + package + + single + + + + + + jar-with-dependencies + + + + + + diff --git a/Travail_de_session/InitialSchedules/GenerationPossibleEmployeeSchedules.java b/Travail_de_session/schedulingproject/src/main/java/InitialSchedules/GenerationPossibleEmployeeSchedules.java similarity index 100% rename from Travail_de_session/InitialSchedules/GenerationPossibleEmployeeSchedules.java rename to Travail_de_session/schedulingproject/src/main/java/InitialSchedules/GenerationPossibleEmployeeSchedules.java diff --git a/Travail_de_session/InitialSchedules/ModelFullTimeEmployeesInitialSchedules.java b/Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ModelFullTimeEmployeesInitialSchedules.java similarity index 100% rename from Travail_de_session/InitialSchedules/ModelFullTimeEmployeesInitialSchedules.java rename to Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ModelFullTimeEmployeesInitialSchedules.java diff --git a/Travail_de_session/InitialSchedules/ModelPartTimeEmployeesInitialSchedules.java b/Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ModelPartTimeEmployeesInitialSchedules.java similarity index 100% rename from Travail_de_session/InitialSchedules/ModelPartTimeEmployeesInitialSchedules.java rename to Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ModelPartTimeEmployeesInitialSchedules.java diff --git a/Travail_de_session/InitialSchedules/ParametersSchedules.java b/Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ParametersSchedules.java similarity index 100% rename from Travail_de_session/InitialSchedules/ParametersSchedules.java rename to Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ParametersSchedules.java diff --git a/Travail_de_session/InitialSchedules/SolverInitialSchedules.java b/Travail_de_session/schedulingproject/src/main/java/InitialSchedules/SolverInitialSchedules.java similarity index 100% rename from Travail_de_session/InitialSchedules/SolverInitialSchedules.java rename to Travail_de_session/schedulingproject/src/main/java/InitialSchedules/SolverInitialSchedules.java diff --git a/Travail_de_session/InitialSchedules/ValidDailySchedules.java b/Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ValidDailySchedules.java similarity index 100% rename from Travail_de_session/InitialSchedules/ValidDailySchedules.java rename to Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ValidDailySchedules.java diff --git a/Travail_de_session/InitialSchedules/ValidPartTimeEmployeeShift.java b/Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ValidPartTimeEmployeeShift.java similarity index 100% rename from Travail_de_session/InitialSchedules/ValidPartTimeEmployeeShift.java rename to Travail_de_session/schedulingproject/src/main/java/InitialSchedules/ValidPartTimeEmployeeShift.java diff --git a/Travail_de_session/MainClass.java b/Travail_de_session/schedulingproject/src/main/java/MainClass/MainClass.java similarity index 98% rename from Travail_de_session/MainClass.java rename to Travail_de_session/schedulingproject/src/main/java/MainClass/MainClass.java index d147ba8..6f7bbe6 100644 --- a/Travail_de_session/MainClass.java +++ b/Travail_de_session/schedulingproject/src/main/java/MainClass/MainClass.java @@ -1,9 +1,11 @@ +package MainClass; + import InitialSchedules.*; import ScheduleUtil.*; import SchedulesRecovery.*; import ModifiedSchedules.*; -import jdistlib.rng.MersenneTwister; -import jdistlib.rng.RandomEngine; +import net.sourceforge.jdistlib.rng.MersenneTwister; +import net.sourceforge.jdistlib.rng.RandomEngine; import org.chocosolver.solver.Solution; import java.util.ArrayList; diff --git a/Travail_de_session/ModifiedSchedules/AbsencesVector.java b/Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/AbsencesVector.java similarity index 90% rename from Travail_de_session/ModifiedSchedules/AbsencesVector.java rename to Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/AbsencesVector.java index 02389af..7d2102a 100644 --- a/Travail_de_session/ModifiedSchedules/AbsencesVector.java +++ b/Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/AbsencesVector.java @@ -1,7 +1,7 @@ package ModifiedSchedules; -import jdistlib.Binomial; -import jdistlib.rng.RandomEngine; +import net.sourceforge.jdistlib.Binomial; +import net.sourceforge.jdistlib.rng.RandomEngine; public class AbsencesVector { public boolean[] AbsencesVector; diff --git a/Travail_de_session/ModifiedSchedules/BankModifiedSchedules.java b/Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/BankModifiedSchedules.java similarity index 100% rename from Travail_de_session/ModifiedSchedules/BankModifiedSchedules.java rename to Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/BankModifiedSchedules.java diff --git a/Travail_de_session/ModifiedSchedules/ModifiedSchedulesArray.java b/Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/ModifiedSchedulesArray.java similarity index 98% rename from Travail_de_session/ModifiedSchedules/ModifiedSchedulesArray.java rename to Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/ModifiedSchedulesArray.java index b42b601..f96559e 100644 --- a/Travail_de_session/ModifiedSchedules/ModifiedSchedulesArray.java +++ b/Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/ModifiedSchedulesArray.java @@ -2,7 +2,7 @@ package ModifiedSchedules; import InitialSchedules.*; import ScheduleUtil.*; -import jdistlib.rng.RandomEngine; +import net.sourceforge.jdistlib.rng.RandomEngine; public class ModifiedSchedulesArray extends SchedulesArray{ diff --git a/Travail_de_session/ModifiedSchedules/ParametersAbsencesSimulator.java b/Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/ParametersAbsencesSimulator.java similarity index 100% rename from Travail_de_session/ModifiedSchedules/ParametersAbsencesSimulator.java rename to Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/ParametersAbsencesSimulator.java diff --git a/Travail_de_session/ModifiedSchedules/ParametersVariableDemandSimulator.java b/Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/ParametersVariableDemandSimulator.java similarity index 100% rename from Travail_de_session/ModifiedSchedules/ParametersVariableDemandSimulator.java rename to Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/ParametersVariableDemandSimulator.java diff --git a/Travail_de_session/ModifiedSchedules/VariableDemandVector.java b/Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/VariableDemandVector.java similarity index 92% rename from Travail_de_session/ModifiedSchedules/VariableDemandVector.java rename to Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/VariableDemandVector.java index 21a7a1a..32395a4 100644 --- a/Travail_de_session/ModifiedSchedules/VariableDemandVector.java +++ b/Travail_de_session/schedulingproject/src/main/java/ModifiedSchedules/VariableDemandVector.java @@ -1,7 +1,7 @@ package ModifiedSchedules; -import jdistlib.Binomial; -import jdistlib.rng.RandomEngine; +import net.sourceforge.jdistlib.Binomial; +import net.sourceforge.jdistlib.rng.RandomEngine; public class VariableDemandVector { public int[] variableDemandVector; diff --git a/Travail_de_session/ScheduleUtil/EmployeeCostCalculator.java b/Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/EmployeeCostCalculator.java similarity index 100% rename from Travail_de_session/ScheduleUtil/EmployeeCostCalculator.java rename to Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/EmployeeCostCalculator.java diff --git a/Travail_de_session/ScheduleUtil/FullTimeEmployeeScheduleArray.java b/Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/FullTimeEmployeeScheduleArray.java similarity index 100% rename from Travail_de_session/ScheduleUtil/FullTimeEmployeeScheduleArray.java rename to Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/FullTimeEmployeeScheduleArray.java diff --git a/Travail_de_session/ScheduleUtil/PartTimeEmployeeScheduleArray.java b/Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/PartTimeEmployeeScheduleArray.java similarity index 100% rename from Travail_de_session/ScheduleUtil/PartTimeEmployeeScheduleArray.java rename to Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/PartTimeEmployeeScheduleArray.java diff --git a/Travail_de_session/ScheduleUtil/PrintSchedules.java b/Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/PrintSchedules.java similarity index 100% rename from Travail_de_session/ScheduleUtil/PrintSchedules.java rename to Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/PrintSchedules.java diff --git a/Travail_de_session/ScheduleUtil/SchedulesArray.java b/Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/SchedulesArray.java similarity index 100% rename from Travail_de_session/ScheduleUtil/SchedulesArray.java rename to Travail_de_session/schedulingproject/src/main/java/ScheduleUtil/SchedulesArray.java diff --git a/Travail_de_session/SchedulesRecovery/BankRecoveredSchedules.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/BankRecoveredSchedules.java similarity index 100% rename from Travail_de_session/SchedulesRecovery/BankRecoveredSchedules.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/BankRecoveredSchedules.java diff --git a/Travail_de_session/SchedulesRecovery/BankRecoveredSchedulesComparator.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/BankRecoveredSchedulesComparator.java similarity index 100% rename from Travail_de_session/SchedulesRecovery/BankRecoveredSchedulesComparator.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/BankRecoveredSchedulesComparator.java diff --git a/Travail_de_session/SchedulesRecovery/RecoveredSchedulesArray.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveredSchedulesArray.java similarity index 100% rename from Travail_de_session/SchedulesRecovery/RecoveredSchedulesArray.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveredSchedulesArray.java diff --git a/Travail_de_session/SchedulesRecovery/RecoveringAction.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveringAction.java similarity index 100% rename from Travail_de_session/SchedulesRecovery/RecoveringAction.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveringAction.java diff --git a/Travail_de_session/SchedulesRecovery/RecoveringActionComparator.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveringActionComparator.java similarity index 100% rename from Travail_de_session/SchedulesRecovery/RecoveringActionComparator.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveringActionComparator.java diff --git a/Travail_de_session/SchedulesRecovery/RecoveringActionFullTimeEmployee.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveringActionFullTimeEmployee.java similarity index 100% rename from Travail_de_session/SchedulesRecovery/RecoveringActionFullTimeEmployee.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveringActionFullTimeEmployee.java diff --git a/Travail_de_session/SchedulesRecovery/RecoveringActionPartTimeEmployee.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveringActionPartTimeEmployee.java similarity index 100% rename from Travail_de_session/SchedulesRecovery/RecoveringActionPartTimeEmployee.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/RecoveringActionPartTimeEmployee.java diff --git a/Travail_de_session/SchedulesRecovery/ValidationRecoveringAction.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/ValidationRecoveringAction.java similarity index 100% rename from Travail_de_session/SchedulesRecovery/ValidationRecoveringAction.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesRecovery/ValidationRecoveringAction.java diff --git a/Travail_de_session/SchedulesWindows/ShowSchedulesFrame.form b/Travail_de_session/schedulingproject/src/main/java/SchedulesWindows/ShowSchedulesFrame.form similarity index 100% rename from Travail_de_session/SchedulesWindows/ShowSchedulesFrame.form rename to Travail_de_session/schedulingproject/src/main/java/SchedulesWindows/ShowSchedulesFrame.form diff --git a/Travail_de_session/SchedulesWindows/ShowSchedulesFrame.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesWindows/ShowSchedulesFrame.java similarity index 100% rename from Travail_de_session/SchedulesWindows/ShowSchedulesFrame.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesWindows/ShowSchedulesFrame.java diff --git a/Travail_de_session/SchedulesWindows/ShowSolutionResultsFrame.form b/Travail_de_session/schedulingproject/src/main/java/SchedulesWindows/ShowSolutionResultsFrame.form similarity index 100% rename from Travail_de_session/SchedulesWindows/ShowSolutionResultsFrame.form rename to Travail_de_session/schedulingproject/src/main/java/SchedulesWindows/ShowSolutionResultsFrame.form diff --git a/Travail_de_session/SchedulesWindows/ShowSolutionResultsFrame.java b/Travail_de_session/schedulingproject/src/main/java/SchedulesWindows/ShowSolutionResultsFrame.java similarity index 100% rename from Travail_de_session/SchedulesWindows/ShowSolutionResultsFrame.java rename to Travail_de_session/schedulingproject/src/main/java/SchedulesWindows/ShowSolutionResultsFrame.java