예제 #1
0
def computeOptization(func, iter):
    S = topologyOptimisation("pile", nb=250, visible=False, time=500, model=[])
    w = S.extract_genotype()
    S.Swarm.controller.withVisiblite(True)
    res = cma.CMAEvolutionStrategy(w, 1).optimize(func, maxfun=iter).result
    S.put_genotype(res[0])
    S.Swarm.controller.write_params(S.Swarm.controller.read_params())
예제 #2
0
import os
import random

from deap import creator, tools, base, algorithms, cma
import numpy as np

from Src.simulationController.topologyOptimizer import topologyOptimisation

print(
    "Début du test de l'extracteur des propriétés de l'essaim sur le chemin : ",
    os.getcwd())
os.chdir("../..")
S = topologyOptimisation("pile", nb=150, visible=False, time=1500)

best_fitness = 0


def fitnessShapeIndex(w):
    S.put_genotype(w)
    S.computeSimulation()
    S.Swarm.setRange(80)
    S.Swarm.shapeIndex()
    return S.Swarm.SumshapeIndex()


def fitnessRectanglitude(w):
    S.put_genotype(w)
    S.computeSimulation()
    S.Swarm.setRange(80)
    S.Swarm.shapeIndex()
    return np.array(S.Swarm.rectanglitude()).mean()
import os
import numpy as np
import cma

from Src.simulationController.topologyOptimizer import topologyOptimisation

print(
    "Début du test de l'extracteur des propriétés de l'essaim sur le chemin : ",
    os.getcwd())
os.chdir("../..")
S = topologyOptimisation("line", nb=50, visible=False, time=2000)


def fitnessShapeIndex(w):
    S.put_genotype(w)
    S.computeSimulation()
    S.Swarm.setRange(80)
    S.Swarm.shapeIndex()
    print("Pénalité de ", -S.Swarm.SumshapeIndex())
    return -S.Swarm.SumshapeIndex()


def fitnessAggregation(w):
    S.put_genotype(w)
    S.computeSimulation()
    S.Swarm.setRange(80)
    S.Swarm.shapeIndex()
    #print("Nombre de turing de ",-S.Swarm.nb_turing_spots)
    S.Swarm.calculerTuringSpots(seuil=4)
    #print("Précision : ",S.getPrecision())
    #print("Shape de ", -S.Swarm.SumshapeIndex())
예제 #4
0
"""
Ces methodes sont utilises afin de ne pas surcharger les notebooks.
"""
import os

import cma
import numpy as np
from Src.simulationController.topologyOptimizer import topologyOptimisation
import matplotlib.pyplot as plt

best_fitness = np.inf

print(
    "Debut du test de l'extracteur des proprietes de l'essaim sur le chemin : ",
    os.getcwd())
S = topologyOptimisation("random", nb=200, visible=False, time=2500)
#S.computeSimulation()


def renduFitness(nom_fitness, nb_iterations, sigma=0.2):
    S.Swarm.setTime(1500)
    S.Swarm.controller.rez_params()
    if (nom_fitness == "Turing Spot"):
        computeOptization(fitnessTuringSpot, nb_iterations, sigma)
    elif (nom_fitness == "Shape Index"):
        computeOptization(fitnessShapeIndex, nb_iterations, sigma)
    elif (nom_fitness == "Aggregation Multiplication"):
        computeOptization(fitnessAggregation, nb_iterations)
    elif (nom_fitness == "Rectanglitude"):
        computeOptization(fitnessRectanglitude, nb_iterations)
    S.Swarm.readDatas()
예제 #5
0
import os
import numpy as np
import cma

from Src.simulationController.topologyOptimizer import topologyOptimisation

print(
    "Début du test de l'extracteur des propriétés de l'essaim sur le chemin : ",
    os.getcwd())
os.chdir("../..")
S = topologyOptimisation("pile", nb=300, visible=True, time=2000)


def fitnessShapeIndex(w):
    S.put_genotype(w)
    S.computeSimulation()
    S.Swarm.setRange(80)
    S.Swarm.shapeIndex()
    print("Pénalité de ", -S.Swarm.SumshapeIndex())
    return -S.Swarm.SumshapeIndex()


def fitnessRectanglitude(w):
    S.put_genotype(w)
    S.computeSimulation()
    S.Swarm.setRange(80)
    S.Swarm.shapeIndex()
    print("Pénalité de ", -S.Swarm.SumshapeIndex())
    return -np.array(S.Swarm.rectanglitude()).sum()