Tengo una función,función de aproximación
P (x0, x1, ..., xn)
que toma 100 enteros como entrada y da como salida un número entero. P es una función lenta de evaluar (puede oscilar entre 30 segundos y un par de minutos).
Necesito saber qué valores de los puntos maximizará el valor dado de P.
¿Qué técnicas puedo utilizar para lograr esto? Sé que, en general, las personas usan algoritmos genéticos para esto, pero me temo que tomará años calcularlo con ellos, ya que incluso con una población pequeña y pocas generaciones (digamos, población = 50, generaciones = 50), P es tan lento tomará más de 40 horas para calcularlo.
¿Hay algún método más barato de hacerlo? Tal vez un proceso iterativo? No necesito que sea realmente óptimo, pero no tengo ninguna idea de cómo se comporta (he intentado lineal/cuadrático/exponencial pero no parece dar buenos valores. Sé que P puede devolver valores al menos 5-10 veces mejor que lo que estoy obteniendo).
Debería ser algo más fácil de implementar (es decir, debo implementarlo yo mismo).
Gracias
edit: P es un proceso estocástico.
¿Quiere decir P (x0, x1, ..., x99)? –
¿Cómo son los vectores de entrada típicos? ¿Algunas de las entradas a menudo toman los mismos valores (quizás haciendo posible una evaluación parcial)? –
No lo sé. Por lo que yo sé, es una caja negra. –