Escolar Documentos
Profissional Documentos
Cultura Documentos
ipynb - Colaboratory
drive.mount('/content/gdrive')
Algoritmo Genético
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
return Filhos
def Mutacao(Pop,PropMutacao,Desvio):
N = np.size(Pop, 0)
Mutantes = Pop
for i in range(np.size(Mutantes,0)):
if np.random.rand(1)< PropMutacao:
Mutantes[i,0] = Mutantes[i,0] + Desvio*np.random.randn(1)
Mutantes[i,1] = Mutantes[i,1] + Desvio * np.random.randn(1)
return Mutantes
def Fitness(Pop):
Fitness = []
for i in range(len(Pop)):
X = Pop[i,0]
Y = Pop[i,1]
return Fitness
def Selecao(Pop,Num_Selecao,Num_por_Torneio):
N = np.size(Pop, 0)
Torneio = np.round(-0.5 + N * np.random.rand(Num_Selecao, Num_por_Torneio))
Torneio = Torneio.astype(int)
Campeoes = -100*np.ones((Num_Selecao,2))
Fitness_Pop = np.array(Fitness(Pop))
for i in range(len(Torneio)):
Fitness_Candidatos = Fitness_Pop[Torneio[i]]
Aux = np.where(Fitness_Candidatos == np.max(Fitness_Candidatos))
Campeao = Pop[Torneio[i,Aux[0][0]]]
Campeoes[i,0] = Campeao[0]
Campeoes[i,1] = Campeao[1]
return Campeoes
def Plotar(Pop):
from mpl_toolkits.mplot3d.axes3d import get_test_data
# This import registers the 3D projection, but is otherwise unused.
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
fig = plt.figure(figsize=(20,10))
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax1 = fig.add_subplot(1, 2, 2)
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 2/38
20/06/2019 Exercício_9.ipynb - Colaboratory
X, Y = np.meshgrid(x, x)
return image
#Caracteristicas do Genetico
Num_Pop = 1000
Dim = 2
Prob_Crossover = 0.5
Prob_Mutacao = 0.1
Desvio = 0.1
Num_Gerações = 10
Pop = -1 + 3*np.random.rand(Num_Pop,Dim)
fig = plt.figure(figsize=plt.figaspect(0.5))
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax1 = fig.add_subplot(1, 2, 2)
imagens = []
for i in range(Num_Gerações):
print('Geração:',i+1)
Imagem_plot = Plotar(Pop)
Filhos = Crossover(Pop,Prob_Crossover)
Pop_PaiseFilhos = np.concatenate((Pop,Filhos))
Pop_Mutante = Mutacao(Pop,Prob_Mutacao,Desvio)
Pop = Selecao(Pop_Mutante,Num_Pop,round(Num_Pop/10))
imagens.append(Imagem_plot)
print(len(imagens))
imageio.mimsave('gdrive/My Drive/Exercício_9/GIF_GA.gif', imagens, fps=1)
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 3/38
20/06/2019 Exercício_9.ipynb - Colaboratory
Geração: 1
Geração: 2
Geração: 3
Geração: 4
Geração: 5
Geração: 6
Geração: 7
Geração: 8
Geração: 9
Geração: 10
10
['GIF_GA.gif', 'GIF_zeros.gif', 'GIF_GA_altera.gif', 'GIF_zeros_altera.gif']
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 4/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 5/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 6/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 7/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 8/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 9/38
20/06/2019 Exercício_9.ipynb - Colaboratory
def Zeros(Pop):
Zeros = []
for i in range(len(Pop)):
X = Pop[i,0]
Y = Pop[i,1]
return Zeros
def Selecao(Pop,Num_Selecao,Num_por_Torneio):
N = np.size(Pop, 0)
Torneio = np.round(-0.5 + N * np.random.rand(Num_Selecao, Num_por_Torneio))
Torneio = Torneio.astype(int)
Campeoes = -100*np.ones((Num_Selecao,2))
Fitness_Pop = np.array(Zeros(Pop))
for i in range(len(Torneio)):
Fitness_Candidatos = Fitness_Pop[Torneio[i]]
Aux = np.where(Fitness_Candidatos == np.max(Fitness_Candidatos))
Campeao = Pop[Torneio[i,Aux[0][0]]]
Campeoes[i,0] = Campeao[0]
Campeoes[i,1] = Campeao[1]
return Campeoes
def Plotar(Pop):
from mpl_toolkits.mplot3d.axes3d import get_test_data
# This import registers the 3D projection, but is otherwise unused.
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
fig = plt.figure(figsize=(20,10))
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax1 = fig.add_subplot(1, 2, 2)
X, Y = np.meshgrid(x, x)
return image
Pop = -1 + 3*np.random.rand(Num_Pop,Dim)
fig = plt.figure(figsize=plt.figaspect(0.5))
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 10/38
20/06/2019 Exercício_9.ipynb - Colaboratory
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax1 = fig.add_subplot(1, 2, 2)
imagens = []
for i in range(Num_Gerações):
Imagem_plot = Plotar(Pop)
Filhos = Crossover(Pop,Prob_Crossover)
Pop_PaiseFilhos = np.concatenate((Pop,Filhos))
Pop_Mutante = Mutacao(Pop,Prob_Mutacao,Desvio)
Pop = Selecao(Pop_Mutante,Num_Pop,round(Num_Pop/10))
imagens.append(Imagem_plot)
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 11/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 12/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 13/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 14/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 15/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 16/38
20/06/2019 Exercício_9.ipynb - Colaboratory
return Filhos
def Mutacao(Pop,PropMutacao,Desvio):
N = np.size(Pop, 0)
Mutantes = Pop
for i in range(np.size(Mutantes,0)):
if np.random.rand(1)< PropMutacao:
Mutantes[i,0] = Mutantes[i,0] + Desvio*np.random.randn(1)
Mutantes[i,1] = Mutantes[i,1] + Desvio * np.random.randn(1)
return Mutantes
def Fitness(Pop):
Fitness = []
for i in range(len(Pop)):
X = Pop[i,0]
Y = Pop[i,1]
return Fitness
def Selecao(Pop,Num_Selecao,Num_por_Torneio):
N = np.size(Pop, 0)
Torneio = np.round(-0.5 + N * np.random.rand(Num_Selecao, Num_por_Torneio))
Torneio = Torneio.astype(int)
Campeoes = -100*np.ones((Num_Selecao,2))
Fitness_Pop = np.array(Fitness(Pop))
for i in range(len(Torneio)):
Fitness_Candidatos = Fitness_Pop[Torneio[i]]
Aux = np.where(Fitness_Candidatos == np.max(Fitness_Candidatos))
Campeao = Pop[Torneio[i,Aux[0][0]]]
Campeoes[i,0] = Campeao[0]
Campeoes[i,1] = Campeao[1]
return Campeoes
def Plotar(Pop):
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 17/38
20/06/2019 Exercício_9.ipynb - Colaboratory
from mpl_toolkits.mplot3d.axes3d import get_test_data
# This import registers the 3D projection, but is otherwise unused.
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
fig = plt.figure(figsize=(20,10))
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax1 = fig.add_subplot(1, 2, 2)
X, Y = np.meshgrid(x, x)
return image
# Caracteristicas do Genetico
Num_Pop = 10000
Dim = 2
Prob_Crossover = 0.75
Prob_Mutacao = 0.30
Desvio = 0.1
Num_Gerações = 15
Pop = -1 + 3*np.random.rand(Num_Pop,Dim)
fig = plt.figure(figsize=plt.figaspect(0.5))
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax1 = fig.add_subplot(1, 2, 2)
imagens = []
for i in range(Num_Gerações):
print('Geração:',i+1)
Imagem_plot = Plotar(Pop)
Filhos = Crossover(Pop,Prob_Crossover)
Pop_PaiseFilhos = np.concatenate((Pop,Filhos))
Pop_Mutante = Mutacao(Pop,Prob_Mutacao,Desvio)
Pop = Selecao(Pop_Mutante,Num_Pop,round(Num_Pop/10))
imagens.append(Imagem_plot)
print(len(imagens))
imageio.mimsave('gdrive/My Drive/Exercício_9/GIF_GA_altera.gif', imagens, fps=1)
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 18/38
20/06/2019 Exercício_9.ipynb - Colaboratory
print( os.listdir('gdrive/My Drive/Exercício_9') )
X = Pop[i,0]
Y = Pop[i,1]
return Zeros
def Selecao(Pop,Num_Selecao,Num_por_Torneio):
N = np.size(Pop, 0)
Torneio = np.round(-0.5 + N * np.random.rand(Num_Selecao, Num_por_Torneio))
Torneio = Torneio.astype(int)
Campeoes = -100*np.ones((Num_Selecao,2))
Fitness_Pop = np.array(Zeros(Pop))
for i in range(len(Torneio)):
Fitness_Candidatos = Fitness_Pop[Torneio[i]]
Aux = np.where(Fitness_Candidatos == np.max(Fitness_Candidatos))
Campeao = Pop[Torneio[i,Aux[0][0]]]
Campeoes[i,0] = Campeao[0]
Campeoes[i,1] = Campeao[1]
return Campeoes
def Plotar(Pop):
from mpl_toolkits.mplot3d.axes3d import get_test_data
# This import registers the 3D projection, but is otherwise unused.
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
fig = plt.figure(figsize=(20,10))
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax1 = fig.add_subplot(1, 2, 2)
X, Y = np.meshgrid(x, x)
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 19/38
20/06/2019 Exercício_9.ipynb - Colaboratory
return image
Pop = -1 + 3*np.random.rand(Num_Pop,Dim)
fig = plt.figure(figsize=plt.figaspect(0.5))
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax1 = fig.add_subplot(1, 2, 2)
imagens = []
for i in range(Num_Gerações):
Imagem_plot = Plotar(Pop)
Filhos = Crossover(Pop,Prob_Crossover)
Pop_PaiseFilhos = np.concatenate((Pop,Filhos))
Pop_Mutante = Mutacao(Pop,Prob_Mutacao,Desvio)
Pop = Selecao(Pop_Mutante,Num_Pop,round(Num_Pop/10))
imagens.append(Imagem_plot)
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 20/38
20/06/2019 Exercício_9.ipynb - Colaboratory
Geração: 1
Geração: 2
Geração: 3
Geração: 4
Geração: 5
Geração: 6
Geração: 7
Geração: 8
Geração: 9
Geração: 10
Geração: 11
Geração: 12
Geração: 13
Geração: 14
Geração: 15
15
['GIF_GA.gif', 'GIF_zeros.gif', 'GIF_GA_altera.gif', 'GIF_zeros_altera.gif']
/usr/local/lib/python3.6/dist-packages/matplotlib/pyplot.py:514: RuntimeWarning: M
max_open_warning, RuntimeWarning)
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 21/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 22/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 23/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 24/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 25/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 26/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 27/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 28/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 29/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 30/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 31/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 32/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 33/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 34/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 35/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 36/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 37/38
20/06/2019 Exercício_9.ipynb - Colaboratory
https://colab.research.google.com/drive/1i4ezWLNM3lNRPsHSlBhgWPJ3sarLwUPA#scrollTo=-2RG9AFn7o2t&printMode=true 38/38