% Solution optimale: 63 %%%%%%%%%%%% Ressources %%%%%%%%%%%%%%%%%%%% % Le nombre de ressources n_res = 4; % La capacité des ressources. res_cap = [ 10, 12, 16, 10 ]; %%%%%%%%%%%% Tâches %%%%%%%%%%%%%%%%%%%% % Le nombre de tâches. n_tasks = 30; % Les durées des tâches. duration = [ 10, 4, 1, 3, 5, 10, 1, 4, 6, 8, 7, 7, 4, 3, 10, 3, 4, 3, 7, 5, 1, 10, 8, 1, 6, 4, 7, 6, 9, 4 ]; % Les besoins en ressources pour chaque tâche res_req = array2d(1..n_res, 1..n_tasks, [5, 10, 5, 0, 3, 0, 0, 5, 1, 2, 0, 10, 0, 9, 3, 10, 0, 6, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 10, 0, 6, 0, 5, 4, 1, 6, 6, 0, 8, 0, 0, 0, 3, 0, 9, 7, 0, 0, 0, 5, 1, 10, 0, 5, 0, 0, 4, 0, 7, 0, 0, 3, 0, 3, 0, 0, 0, 5, 2, 0, 8, 0, 0, 4, 0, 0, 4, 1, 8, 0, 0, 5, 0, 0, 0, 7, 8, 1, 6, 5, 0, 10, 0, 10, 1, 1, 0, 0, 1, 1, 2, 8, 8, 0, 0, 0, 4, 7]); % Les successeurs de la tâche (pour la tâche i, suc[i] est la liste des tâches qui ne peuvent commencer qu'après la fin de la tâche i) suc = [ { 10, 24 }, { 4, 7, 16 }, { 5, 18, 23 }, { 6, 9, 25 }, { 15, 21, 29 }, { 8 }, { 10 }, { 23 }, { 12, 22 }, { 14, 25 }, { 25 }, { 13 }, { 19, 27 }, { 23 }, { 20 }, { 17 }, { 26 }, { 19, 20, 29 }, { 28 }, { 22 }, { 24, 29 }, { 26 }, { 26 }, { 30 }, { 28 }, { 28 }, { 30 }, { }, { }, { } ];