[pyar] Buscar máximo

fisa fisadev en gmail.com
Vie Ene 17 19:43:36 ART 2014


El día 17 de enero de 2014, 18:42, Angel Java Lopez
<ajlopez2000 en gmail.com> escribió:
> se puede garantizar el maximo global, no hace falta el aleatorio por las
> condiciones del problema, si entendi bien.
>
> se toma el punto medio entre a y b, digamos a1
>
> se calcula f(a1) (por lo que veo del problema, deberia dar f(a) <= f(a1) >=
> f(b) (bien podria ser que f(a) o f(b) fueran el maximo
>
> se toma el punto entre a y a1, digamos a2
> se toma el punto entre a1 y b, digamos b2
>
> si f(a2) > f(b2), repetimos todo de nuevo, con los puntos a,a2,a1
> Si f(a2) < f(b2), repetimos todo de nuevo, con los puntos a1,b2,b
>
> Esta bien?
>
> Ah! me parece que al primer intento f(a) < f(a1) < f(b), el maximo es b. Y
> al reves (esto asumiendo que hay UN SOLO PUNTO donde esta el maximo, bien
> podria ser f(x) = 3, en todo el intervalo, pero creo entender que no es el
> caso)
>
> Esto debe ser asi desde Newton y ... arg... no me acuerdo :-)... estoy lejos
> del Rey Pastor ahora, #soytanviejo :-)
>
> Nos leemos!
>
> Angel "Java" Lopez
> @ajlopez
>
>
>
> 2014/1/17 fisa <fisadev en gmail.com>
>>
>> Yo (por gusto y por que es lo que más conozco) intentaría un hill
>> climbing con reinicios aleatorios.
>> No te garantizo encontrar el máximo global, pero con suficientes
>> corridas te puedo dar uno con un 99% de probabilidad de serlo, y es ré
>> fácil de implementar :)
>>
>> El día 17 de enero de 2014, 18:20, Damián Avila
>> <damianavila en gmail.com> escribió:
>> >
>> > http://docs.scipy.org/doc/scipy/reference/optimize.html#module-scipy.optimize
>> >
>> > ;-)
>> >
>> >
>> > El 17 de enero de 2014, 18:10, Alejandro Santos <listas en alejolp.com>
>> > escribió:
>> >
>> >> Sea f una función continua en [a, b], tal que f presenta un único
>> >> máximo en [a, b]. Por ejemplo f puede ser una parábola con los cuernos
>> >> hacia abajo, y f no puede ser de la forma de los cuernos de Sauron
>> >> (varios picos mas pequeños).
>> >>
>> >>   http://rumblefeature.files.wordpress.com/2013/08/eye-of-sauron_0.jpg
>> >>
>> >> Escribir un programa que encuentre el x entre [a, b] tal que f(x) sea
>> >> el máximo de la función.
>> >>
>> >> def buscarmax(f, a, b):
>> >>   # ...
>> >>
>> >> (tip: hay al menos dos formas eficientes de implementar esto)
>> >>
>> >> --
>> >> Alejandro Santos

Ah! leí mal. Si no puede tener varios máximos locales, entonces hago
un hill climbing normal, que es suficiente :)

-- 
fisa  -  Juan Pedro Fisanotti


More information about the pyar mailing list