Esempio n. 1
0
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)))
    """                    
Esempio n. 2
0
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))
Esempio n. 3
0
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
Esempio n. 4
0
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))
Esempio n. 5
0
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))
Esempio n. 6
0
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)
Esempio n. 7
0
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()