|
|
|
Pour ce projet, nous avons choisi une approche séquentielle au problème posé. Cela signifie que les étapes sont déroulées pas-à-pas au cours de l'éxécution de notre programme. Cette approche présente des avantages, mais aussi des inconvénients.
|
|
|
|
Par exemple, elle permet l'acquisition rapide d'une intuition sur le fonctionnement global du code, puisque la recherche d'une solution au problème passe par une simulation de celui-ci. Cependant, cette approche est également limitante : en effet, nous avons également essayé des approches que l'on peut qualifier de non-séquentielles, où la boucle principale s'effectuait sur la liste des tâches plutôt que sur les étapes. Ce fonctionnement permettait notamment de rendre les tâches avec un score plus élevé prioritaires (via un algorithme de merge sort par exemple), mais était beaucoup moins intuitive.
|
|
|
|
|
|
|
|
Le fonctionnement global de notre programme peut être séparé en 4 phases :
|
|
|
|
- Initialisation de l'environnement (*parsing*, construction des objets)
|
|
|
|
- Assignement des bras aux points de montages
|
|
|
|
- Boucle principale (itération sur le nombre d'étapes)
|
|
|
|
- Exportation de la solution (*parsing* inversé) |
|
|
|
\ No newline at end of file |