Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from ag import AlgoritmoGenetico
- import random
- adversario = ['PEDRA', 'PAPEL', 'TESOURA', 'PAPEL', 'PAPEL', 'TESOURA']
- def funFitness(cromossomo, adversario):
- pontos = 0
- for i in range(len(cromossomo)):
- if (cromossomo[i] == 'PEDRA'):
- pontos += 1 if adversario[i] == 'TESOURA' else -1 if adversario[i] == 'PAPEL' else 0
- if (cromossomo[i] == 'TESOURA'):
- pontos += 1 if adversario[i] == 'PAPEL' else -1 if adversario[i] == 'PEDRA' else 0
- if (cromossomo[i] == 'PAPEL'):
- pontos += 1 if adversario[i] == 'PEDRA' else -1 if adversario[i] == 'TESOURA' else 0
- return pontos
- def criaIndividuo(adversario):
- # 0 1 2
- opcoes = ['PEDRA', 'PAPEL', 'TESOURA']
- genes = []
- for _ in range(len(adversario)):
- indiceSorteado = random.randint(0, 2)
- genes.append(opcoes[indiceSorteado])
- return genes
- def mutacao(genes):
- opcoes = ['PEDRA', 'PAPEL', 'TESOURA']
- #Seleciona os indices aleatorios
- indiceAleatorio = random.randint(0, len(genes)-1)
- indiceOpcoes = random.randint(0, 2)
- #Realiza mutação
- genes[indiceAleatorio] = opcoes[indiceOpcoes]
- return genes
- ag = AlgoritmoGenetico(adversario, funcaoFitness=funFitness)
- ag.funCriaIndividuo = criaIndividuo
- ag.funMutacao = mutacao
- ag.executa()
- print(ag.melhorResultado())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement