Código Python:
Ver originalfrom random import randint
def getRandomString(size):
#Regresa una lista de tamanio size con 0's y 1's
return [randint(0, 1) for i in xrange(size)]
def evalCoeffs(coeffs, randlist):
#Asumo que randlist y coeffs tienen el mismo tamanio
size = len(randlist)
#Si no llegan a tener el mismo tamanio lanzara una excepcion
aux = [coeffs[i] * randlist[i] for i in xrange(size)]
#Regreso la suma de multiplicar los items de coeffs y randlist
#Y ademas regreso aux, que es multiplicacion de las listas
return sum(aux), aux
def evalFactibility(coeffs, randlist):
#No tengo idea de que haga evalFactibility
#Se quede regresar True si cumple con algo
#Y false si no cumple ese algo
suma, rlist = evalCoeffs(coeffs, randlist)
#Supuse que si la suma es mayor o igual a 0 entonces es factible
#Corrigeme si estoy mal por que no se que es lo hace esta funcion
if suma >= 0:
return True
return False
def foundInitialSolutions(lcoeffs):
initialSolutions = []
for coeffs in lcoeffs:
size = len(coeffs)
vs = getRandomString(size)
while not evalFactibility(coeffs, vs):
vs = getRandomString(size)
initialSolutions.append(vs)
return initialSolutions
list_of_coeffs = [
[1, 1, 1, 2, 1],
[7, 0, 3, -4, 3],
[11, -6, 0, 3, -3]
]
inits = foundInitialSolutions(list_of_coeffs)
print list_of_coeffs
print inits
Sigo sin saber BIEN que es lo que hace evalFactibility.