IIC2213 / Syllabus-2021-1-

19 stars 2 forks source link

[Tarea 5] Memory Error y cómo tratarlo #63

Open Saveliz opened 3 years ago

Saveliz commented 3 years ago

¿El que se obtenga Memory Error con el método de fuerza bruta en los tests de 50 proposiciones se debe considerar como una falla del algoritmo? ¿O se puede justificar este error en el análisis?

juanreutter commented 3 years ago

Tienes alguna idea de por que se puede estar dando este error?

Saveliz commented 3 years ago

Creo que por generar todas las combinaciones posibles entre los 50 parámetros porque no tengo ese problema con los 20

juanreutter commented 3 years ago

Creo que eso te responde tu pregunta (2^50 es un número con 15 ceros https://duckduckgo.com/?q=%3D2%5E50&ia=calculator)

FarDust commented 3 years ago

@Saveliz si tienes problemas de memoria para generar todas las valuaciones, puedes ir generando de a una con un generador en python.

def generador_generico(variables_muy_importantes):
  while condicion_hermosa:
    yield valor_que_quiero # Este es el valor que se devuelve en cada ciclo

cosas = generador_generico(variables_muy_importantes)

Luego puedes hacer

for cosa in cosas:
  # Código que hace algo

o si quieres sacar de a un elemento

cosa = next(cosas)

Esto va a evitar al 10000000% el uso de memoria pues generas cada vez un solo elemento de manera dinámica en vez de guardar todos en memoria.