def test(): """ Q5 """ g2 = grille() list_bat = [] list_bat.append(bateau(5, 1)) list_bat.append(bateau(4, 2)) list_bat.append(bateau(3, 3)) list_bat.append(bateau(3, 4)) list_bat.append(bateau(2, 5)) grille_vide = grille() for i in list_bat: g2.vider() prob_place = denombre_places_bateau(grille_vide, i) g2.place_alea(i) for j in list_bat: prob_2_place = prob_place * denombre_places_bateau(g2, j) g2.place_alea(j) for k in list_bat: prob_3_place = prob_2_place * denombre_places_bateau(g2, k) g2.place_alea(k) for l in list_bat: prob_4_place = prob_3_place * denombre_places_bateau(g2, l) g2.place_alea(l) for m in list_bat: print( "Taille des bateaux : {} et {} et {} et {} et {}, façon de le placer : {}" .format( i.getTaille(), j.getTaille(), k.getTaille(), l.getTaille(), m.getTaille(), prob_4_place * denombre_places_bateau(g2, m))) """
def denombre_placer_2_bateaux(): """ PARTIE COMBINATOIRE Q3 Fonction qui permet de dénombrer le nombre de façons de placer 2bateaux sur une grille vide """ bateaux_différents = [] bateaux_différents.append(bateau(5, 1)) bateaux_différents.append(bateau(4, 2)) bateaux_différents.append(bateau(3, 3)) bateaux_différents.append(bateau(2, 5)) g = grille() for b in bateaux_différents: for b2 in bateaux_différents: cpt = 0 for i in range(10): for j in range(10): if (g.place(b, (i, j), 1)): cpt = cpt + denombre_places_bateau(g, b2) g.enlever_bateau((i, j), 1, b.taille) for i in range(10): for j in range(10): if (g.place(b, (i, j), 2)): cpt = cpt + denombre_places_bateau(g, b2) g.enlever_bateau((i, j), 2, b.taille) print("Taille des bateaux : {} et {}, façon de le placer : {}". format(b.getTaille(), b2.getTaille(), cpt))
def genere_grille(): g = grille() list_bat = [] list_bat.append(bateau(5, 1)) list_bat.append(bateau(4, 2)) list_bat.append(bateau(3, 3)) list_bat.append(bateau(3, 4)) list_bat.append(bateau(2, 5)) [g.place_alea(i) for i in list_bat] return g
def denombre_placer_3_bateaux(): bateaux_différents = [] bateaux_différents.append(bateau(5, 1)) bateaux_différents.append(bateau(4, 2)) bateaux_différents.append(bateau(3, 3)) bateaux_différents.append(bateau(2, 5)) g = grille() for b in bateaux_différents: for b2 in bateaux_différents: for b3 in bateaux_différents: cpt = 0 for i in range(10): for j in range(10): if (g.place(b, (i, j), 1)): for i2 in range(10): for j2 in range(10): if (g.place(b2, (i2, j2), 1)): cpt = cpt + denombre_places_bateau( g, b3) g.enlever_bateau((i2, j2), 1, b2.taille) for i2 in range(10): for j2 in range(10): if (g.place(b2, (i2, j2), 2)): cpt = cpt + denombre_places_bateau( g, b3) g.enlever_bateau((i2, j2), 2, b2.taille) g.enlever_bateau((i, j), 1, b.taille) for i in range(10): for j in range(10): if (g.place(b, (i, j), 2)): for i2 in range(10): for j2 in range(10): if (g.place(b2, (i2, j2), 1)): cpt = cpt + denombre_places_bateau( g, b3) g.enlever_bateau((i2, j2), 1, b2.taille) for i2 in range(10): for j2 in range(10): if (g.place(b2, (i2, j2), 2)): cpt = cpt + denombre_places_bateau( g, b3) g.enlever_bateau((i2, j2), 2, b2.taille) g.enlever_bateau((i, j), 2, b.taille) print( "Taille des bateaux : {} et {} et {}, façon de le placer : {}" .format(b.getTaille(), b2.getTaille(), b3.getTaille(), cpt))
def mainCombinatoire(): print( "Entrez 1 pour dénombrer le nombre de façons de placer un bateau donné sur une grille vide;\nEntrez 2 pour le dénombrement d'une grille a 2 bateaux;\nEntrez 3 pour le dénombrement de 3 bateaux;\nEntrez 4 pour le dénombrement liste de bateaux;\nEntrez 5 pour essayer de trouver une grille aléatoire donnée;" ) nb = input() a = int(nb) g = grille() if a == 1: #DENOMBREMENT 1 BATEAU start_time = time.time() list_bat = [] list_bat.append(bateau(5, 1)) list_bat.append(bateau(4, 2)) list_bat.append(bateau(3, 3)) list_bat.append(bateau(3, 4)) list_bat.append(bateau(2, 5)) for b in list_bat: res = denombre_places_bateau(g, b) print("Résultat pour un bateau de taille {} : {}.".format( b.getTaille(), res)) print("Temps d execution : %s secondes ---" % (time.time() - start_time)) if a == 2: start_time = time.time() denombre_placer_2_bateaux() print("Temps d execution : %s secondes ---" % (time.time() - start_time)) if a == 3: start_time = time.time() denombre_placer_3_bateaux() print("Temps d execution : %s secondes ---" % (time.time() - start_time)) if a == 4: start_time = time.time() test() print("Temps d execution : %s secondes ---" % (time.time() - start_time)) if a == 5: start_time = time.time() trouve_bonne_grille() print("Temps d execution : %s secondes ---" % (time.time() - start_time))
from fonctions import * from env import * from grille import * import sys import matplotlib.pyplot as plt gamma = 1 N = 15 if __name__ == "__main__": env = Env(10, 15, 0.8, 0.2, [0.3, 0.3, 0.2, 0.2]) cases = env.reset() new_reward = [0, -1, -10, -100, -1000] env.reset_reward(new_reward) g = grille(env, problem='risque') g.initialiser(gamma) nb_iteration, value_table, policy = value_iteration(env, gamma, problem='risque') dict_action = {0: 'U', 1: 'D', 2: 'L', 3: 'R'} visu_policy(value_table, policy, dict_action, cases) #print(env.reward) ''' policy,v_obj=dual_pl_mono(env,gamma,problem="equilibre") p = get_a_policy(policy) visu_policy_plt(p,env) #print(policy)
from fonctions import * from env import * from grille import * import sys if __name__ == "__main__": nblig = int(sys.argv[1]) nbcol = int(sys.argv[2]) p = float(sys.argv[3]) pr = sys.argv[4] gamma = float(sys.argv[5]) if len(sys.argv) != 6: raise Exception( "veuillez verifier les parametres: test-value-iteration.py -nblig -nbcol -p -gamma" ) env = Env(nblig, nbcol, p, 0.2, [0.3, 0.3, 0.2, 0.2]) cases = env.reset() g = grille(env, problem=pr) g.initialiser(gamma) nb_iteration, value_table, policy = value_iteration(env, gamma, problem=pr) dict_action = {0: 'U', 1: 'D', 2: 'L', 3: 'R'} visu_policy(value_table, policy, dict_action, cases) #simuler()