Ver Mensaje Individual
  #19 (permalink)  
Antiguo 09/09/2015, 07:09
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Fuerza bruta lógica, ejemplos.

Buenas,

No existe la 'optimizacion del algoritmo por fuerza bruta'. El algoritmo es siempre tan sencillo e ineficiente como este:
Cita:
c <- gets first(P)
while' c != Λ do
if' valid(P,c) then output(P, c)
c <- gets next(P,c)
end while
Es decir, un bucle que recorre todos los casos posibles y retorna cuando encuentra un resultado.

Si la muestra es enorme, tardara un tiempo enorme, ya sea en Java, C, Assembler o binario.

Solo hay dos formas de reducir este tiempo:

-Funcionamente: reduciendo la muestra a buscar eliminando de entrada aquellos valores que consideremos absurdos. Esta reduccion dependera de cada caso y problematica. No hay reglas generales y nada que discutir aqui, si no hablamos de un caso concreto.
-Tecnicamente: utilizando tecnicas map/reduce que permitan paralelizar y procesar en distintos core/procesadores. Una tecnica bastante usada (por ejemplo para hacer Bitcoin mining por fuerza bruta) es la de utilizar los cores de las tarjetas graficas para estas tareas, aunque estos solo permiten hacer operaciones muy limitadas. En este caso obviamente SI es importante utilizar un lenguaje/plataforma que permita comunicarse con el hardware.

Un saludo
__________________
If to err is human, then programmers are the most human of us