예제 #1
0
파일: main.py 프로젝트: fredyramix/AE-P6
def main(start_time):
    outfile = open("Resultados/salida.txt", 'w')
    mejor = []
    mejor.append(-1)
    mejor.append(-1)
    print "============Practica 6 Multiplicacion de matrices========"
    opcion, dic = leerArchivos()
    TAM_INDIVIDUO, mA, mB = openFileDat(opcion, dic)

    poblacion = crearPoblacion(TAM_POBLACION, TAM_INDIVIDUO)
    #for p in poblacion:
    #	print ps
    #raw_input("aaaaaaaaa")

    aptitudes = calcularAptitudPoblacion(poblacion, mA, mB, TAM_INDIVIDUO)

    aptitudes = penalizar(poblacion, aptitudes)

    mejor, b = elitismo(poblacion, aptitudes, mejor)
    a = "El mejor hasta ahora:"
    escribir(outfile, a)
    a = "Generacion: " + str(0)
    escribir(outfile, a)
    a = "Vector: " + str(mejor[0])
    escribir(outfile, a)
    a = "Aptitud: " + str(mejor[1])
    escribir(outfile, a)
    a = "Tiempo: " + str(time.time() - start_time) + " segundos"
    escribir(outfile, a)
    g = 0
    #while g != NUM_GENERACIONES:
    while True:
        #funcion de seleccion.
        #seleccionados=seleccionar(poblacion,aptitudes)
        #Cruzar a los seleccionados
        #cruza = cruzar(seleccionados)

        cruzados = cruzar(poblacion)

        #apti = calcularAptitudPoblacion(cruza, mA, mB, TAM_INDIVIDUO)

        #cruzados = seleccionarMejorCruza(apti,cruza)

        #cruzados = 0

        #hacer una mutacion
        poblacion = mutar(cruzados, TAM_INDIVIDUO)
        #calcular nueva aptitud
        aptitudes = calcularAptitudPoblacion(poblacion, mA, mB, TAM_INDIVIDUO)

        aptitudes = penalizar(poblacion, aptitudes)

        mejor, bandera = elitismo(poblacion, aptitudes, mejor)
        if mejor[1] == 0:
            break
        else:
            if bandera == True:
                a = "El mejor hasta ahora:"
                escribir(outfile, a)
                a = "Generacion: " + str(g)
                escribir(outfile, a)
                a = "Vector: " + str(mejor[0])
                escribir(outfile, a)
                a = "Aptitud: " + str(mejor[1])
                escribir(outfile, a)
                a = "Tiempo: " + str(time.time() - start_time) + " segundos"
                escribir(outfile, a)
        '''if g%100==0:
			a="El mejor hasta ahora:"
			escribir(outfile,a)
			a= "Generacion: " +str(g)
			escribir(outfile,a)
			a= "Vector: "+str(mejor[0])
			escribir(outfile,a)
			a="Aptitud: "+str(mejor[1])
			escribir(outfile,a)
			a="Tiempo: " +str(time.time()-start_time)+" segundos"
			escribir(outfile,a)
			a="=========================================================ss"
			escribir(outfile,a)'''
        g += 1
    a = "Termino en la generacion: " + str(g)
    escribir(outfile, a)
    a = "Vector: " + str(mejor[0])
    escribir(outfile, a)
    a = "Aptitud: " + str(mejor[1])
    escribir(outfile, a)
    a = "Tiempo: " + str(time.time() - start_time) + " segundos"
    escribir(outfile, a)
    outfile.close()
    return 0
예제 #2
0
def main(start_time):
    g = 0
    outfile = open("Resultados/salida.txt", "w")
    # bandera = False #bandera para saber cuando se va mejorando la raza
    mejor = []  # nuestro mejor individuo.
    mejor.append(-1)
    mejor.append(-1)
    # leerfechas()
    # graficar()
    muestras = leerDatos()
    n = len(muestras)
    # print "numero de muestras: " +str(n)
    """Los datos estan compuestos por Tiempo,latitud,longitud,magnitud """
    padres = crearPoblacion(TAM_INDIVIDUO, TAM_POBLACION)
    # una vez creado los valores de Teta aleatorios sigue evaluar.
    aptitud_padres = calcularAptitud(padres, n, muestras)
    # nos devuelve una lista de aptitudes.
    mejor, bandera = elitismo(padres, aptitud_padres, mejor)

    selecionados = seleccionar(padres, aptitud_padres)

    a = "El mejor hasta ahora:"
    escribir(outfile, a)
    a = "Generacion: " + str(g)
    escribir(outfile, a)
    a = "Vector: " + str(mejor[0])
    escribir(outfile, a)
    a = "Aptitud: " + str(mejor[1])
    escribir(outfile, a)
    a = "Tiempo: " + str(time.time() - start_time) + " segundos"
    escribir(outfile, a)
    # x,y=generarPuntosMejor(mejor,muestras)
    # graficar(x,y)

    """Proceso de cruza"""
    hijos = cruzar(selecionados)
    aptitud_hijos = calcularAptitud(hijos, n, muestras)
    """Seleccionar mejores entre padres e hijos"""
    mejores = seleccionarMejores(padres, hijos, aptitud_padres, aptitud_hijos)
    mutados = mutar(mejores)
    aptitud_padres = calcularAptitud(mutados, n, muestras)

    mejor, bandera = elitismo(mutados, aptitud_padres, mejor)
    padres = mutados[:]
    g = 1
    while True:
        selecionados = seleccionar(padres, aptitud_padres)
        hijos = cruzar(selecionados)
        aptitud_hijos = calcularAptitud(hijos, n, muestras)
        """Seleccionar mejores entre padres e hijos"""
        mejores = seleccionarMejores(padres, hijos, aptitud_padres, aptitud_hijos)
        mutados = mutar(mejores)
        aptitud_padres = calcularAptitud(mutados, n, muestras)
        mejor, bandera = elitismo(mutados, aptitud_padres, mejor)
        padres = mutados[:]
        # print aptitud
        if bandera == True:
            a = "El mejor hasta ahora:"
            escribir(outfile, a)
            a = "Generacion: " + str(g)
            escribir(outfile, a)
            a = "Vector: " + str(mejor[0])
            escribir(outfile, a)
            a = "Aptitud: " + str(mejor[1])
            escribir(outfile, a)
            a = "Tiempo: " + str(time.time() - start_time) + " segundos"
            escribir(outfile, a)
            x, y = generarPuntosMejor(mejor, muestras)
            graficar(x, y)
        g += 1
예제 #3
0
파일: main.py 프로젝트: fredyramix/AE-P6
def main(start_time):
	outfile=open("Resultados/salida.txt",'w')
	mejor = []
	mejor.append(-1)
	mejor.append(-1)
	print "============Practica 6 Multiplicacion de matrices========"
	opcion,dic = leerArchivos()
	TAM_INDIVIDUO,mA,mB = openFileDat(opcion, dic)

	poblacion = crearPoblacion(TAM_POBLACION, TAM_INDIVIDUO)
	#for p in poblacion:
	#	print ps
	#raw_input("aaaaaaaaa")

	aptitudes = calcularAptitudPoblacion(poblacion, mA, mB, TAM_INDIVIDUO)

	aptitudes=penalizar(poblacion,aptitudes)

	mejor,b = elitismo(poblacion, aptitudes,mejor)
	a="El mejor hasta ahora:"
	escribir(outfile,a)
	a= "Generacion: " +str(0)
	escribir(outfile,a)
	a= "Vector: "+str(mejor[0])
	escribir(outfile,a)
	a="Aptitud: "+str(mejor[1])
	escribir(outfile,a)
	a="Tiempo: " +str(time.time()-start_time)+" segundos"
	escribir(outfile,a)
	g=0
	#while g != NUM_GENERACIONES:
	while True:
		#funcion de seleccion.
		#seleccionados=seleccionar(poblacion,aptitudes)
		#Cruzar a los seleccionados
		#cruza = cruzar(seleccionados)

		cruzados = cruzar(poblacion)

		#apti = calcularAptitudPoblacion(cruza, mA, mB, TAM_INDIVIDUO)

		#cruzados = seleccionarMejorCruza(apti,cruza)


		#cruzados = 0

		#hacer una mutacion
		poblacion=mutar(cruzados,TAM_INDIVIDUO)
		#calcular nueva aptitud
		aptitudes = calcularAptitudPoblacion(poblacion, mA, mB, TAM_INDIVIDUO)

		aptitudes=penalizar(poblacion,aptitudes)

		mejor,bandera = elitismo(poblacion, aptitudes,mejor)
		if mejor[1]==0:
			break
		else:
			if bandera==True:
				a="El mejor hasta ahora:"
				escribir(outfile,a)
				a= "Generacion: " +str(g)
				escribir(outfile,a)
				a= "Vector: "+str(mejor[0])
				escribir(outfile,a)
				a="Aptitud: "+str(mejor[1])
				escribir(outfile,a)
				a="Tiempo: " +str(time.time()-start_time)+" segundos"
				escribir(outfile,a)
		'''if g%100==0:
			a="El mejor hasta ahora:"
			escribir(outfile,a)
			a= "Generacion: " +str(g)
			escribir(outfile,a)
			a= "Vector: "+str(mejor[0])
			escribir(outfile,a)
			a="Aptitud: "+str(mejor[1])
			escribir(outfile,a)
			a="Tiempo: " +str(time.time()-start_time)+" segundos"
			escribir(outfile,a)
			a="=========================================================ss"
			escribir(outfile,a)'''
		g+=1
	a= "Termino en la generacion: " +str(g)
	escribir(outfile,a)
	a= "Vector: "+str(mejor[0])
	escribir(outfile,a)
	a= "Aptitud: "+str(mejor[1])
	escribir(outfile,a)
	a="Tiempo: " +str(time.time()-start_time)+" segundos"
	escribir(outfile,a)
	outfile.close()
	return 0
예제 #4
0
def main(start_time):
    g = 0
    outfile = open("Resultados/salida.txt", 'w')
    #bandera = False #bandera para saber cuando se va mejorando la raza
    mejor = []  #nuestro mejor individuo.
    mejor.append(-1)
    mejor.append(-1)
    #leerfechas()
    #graficar()
    muestras = leerDatos()
    n = len(muestras)
    #print "numero de muestras: " +str(n)
    '''Los datos estan compuestos por Tiempo,latitud,longitud,magnitud '''
    padres = crearPoblacion(TAM_INDIVIDUO, TAM_POBLACION)
    #una vez creado los valores de Teta aleatorios sigue evaluar.
    aptitud_padres = calcularAptitud(padres, n, muestras)
    #nos devuelve una lista de aptitudes.
    mejor, bandera = elitismo(padres, aptitud_padres, mejor)

    selecionados = seleccionar(padres, aptitud_padres)

    a = "El mejor hasta ahora:"
    escribir(outfile, a)
    a = "Generacion: " + str(g)
    escribir(outfile, a)
    a = "Vector: " + str(mejor[0])
    escribir(outfile, a)
    a = "Aptitud: " + str(mejor[1])
    escribir(outfile, a)
    a = "Tiempo: " + str(time.time() - start_time) + " segundos"
    escribir(outfile, a)
    #x,y=generarPuntosMejor(mejor,muestras)
    #graficar(x,y)
    '''Proceso de cruza'''
    hijos = cruzar(selecionados)
    aptitud_hijos = calcularAptitud(hijos, n, muestras)
    '''Seleccionar mejores entre padres e hijos'''
    mejores = seleccionarMejores(padres, hijos, aptitud_padres, aptitud_hijos)
    mutados = mutar(mejores)
    aptitud_padres = calcularAptitud(mutados, n, muestras)

    mejor, bandera = elitismo(mutados, aptitud_padres, mejor)
    padres = mutados[:]
    g = 1
    while True:
        selecionados = seleccionar(padres, aptitud_padres)
        hijos = cruzar(selecionados)
        aptitud_hijos = calcularAptitud(hijos, n, muestras)
        '''Seleccionar mejores entre padres e hijos'''
        mejores = seleccionarMejores(padres, hijos, aptitud_padres,
                                     aptitud_hijos)
        mutados = mutar(mejores)
        aptitud_padres = calcularAptitud(mutados, n, muestras)
        mejor, bandera = elitismo(mutados, aptitud_padres, mejor)
        padres = mutados[:]
        #print aptitud
        if bandera == True:
            a = "El mejor hasta ahora:"
            escribir(outfile, a)
            a = "Generacion: " + str(g)
            escribir(outfile, a)
            a = "Vector: " + str(mejor[0])
            escribir(outfile, a)
            a = "Aptitud: " + str(mejor[1])
            escribir(outfile, a)
            a = "Tiempo: " + str(time.time() - start_time) + " segundos"
            escribir(outfile, a)
            x, y = generarPuntosMejor(mejor, muestras)
            graficar(x, y)
        g += 1