Suficientemente bueno en vez de perfecto
Lo viste la vez pasada: en algunos problemas los casos explotan, así que perseguir la respuesta perfecta hasta el final llevaría toda una vida. ¿Entonces nos rendimos? No del todo. Aunque no consigas la respuesta perfecta, una "suficientemente buena" suele encontrarse rápido. Cedes un poco y ganas mucho tiempo.
Deja lo perfecto a un lado por ahora
Aquí hay un problema difícil.
Para hallar la respuesta perfecta
tendrías que sopesar cada caso,
y son un numero enorme.
Llega hasta el final
y obtendras lo mejor de lo mejor.
Pero ¿cuándo
terminaría eso?
Pulsa para contarlo.
Persigue la respuesta perfecta hasta el final. (Los casos crecen y el tiempo explota → sin fin a la vista)
El número crece demasiado rápido.
Agrega solo unos pocos más
y hay muchas veces más que revisar.
Así que esperar la respuesta perfecta
hasta el final
a veces no es realista.
Aun así, no podemos
simplemente bajar los brazos.
Una respuesta suficientemente buena, rápido
Aquí va una idea.
¿Y si no tiene que ser
lo mejor de lo mejor?
En vez de apuntar a lo perfecto,
simplemente saca rápido
una respuesta
"bastante buena."
Como hicimos con lo voraz,
eligiendo lo bueno
que tienes delante, con soltura.
Una respuesta rápida y aproximada vs la perfecta. (La aproximada llega al instante, la diferencia es poca)
Mira.
La respuesta aproximada salió en un parpadeo,
y no está lejos
de la perfecta.
Un poco corta,
pero del todo útil.
Para muchos casos
con esto basta y sobra.
Garantiza qué tan buena es
Pero hay una preocupación.
¿Podemos confiar en esa
respuesta "bastante buena"?
¿Y si en secreto
es pésima?
Por eso los métodos listos
vienen con una promesa.
Dicen: "esta respuesta
no será mucho peor
que la mejor de todas."
Garantizado dentro de 1.5x de lo mejor. (Salga la respuesta que salga, queda dentro de esta línea, lo peor está limitado)
Esta es la parte de verdad ingeniosa.
Traza una línea como
"dentro de 1.5x de lo mejor,"
y por mala que sea la respuesta,
no puede cruzar esa línea.
No es perfecta,
pero sabemos exactamente
cuánto podría desviarse.
Eso es del todo distinto
de una corazonada vaga.
Intercambia exactitud por tiempo
Al final es una balanza.
Dedica más tiempo
y la respuesta es más exacta;
ahorra tiempo
y se vuelve un poco más tosca.
Ninguno de los lados
es sin más el correcto.
Si hay prisa, el lado rápido;
si hace falta precisión, el exacto.
Mueve el control
y elige un punto entre ambos.
Más tiempo, más exacto; menos tiempo, menos exacto. (Dónde parar lo elegimos nosotros)
Esta balanza
es el corazón de todos los algoritmos.
El camino rápido y el exacto,
el simple y el cuidadoso.
Cada vez hemos estado
eligiendo qué ceder
y qué ganar.
Conocer un buen método
es saber leer bien esta balanza.
El camino que nos trajo aquí
Hemos recorrido un largo camino.
Desde resolver en orden,
ordenar, buscar,
medir el costo,
dividir, enlazar, elegir.
Vimos que algunos problemas son de verdad difíciles,
y que aun así
existe una respuesta suficientemente buena.
Pulsa para mirar atrás
ese camino de una vez.
Cuatro cosas que nos dio esta área. (Buenos métodos, velocidad, estrategia, conocer los límites y negociar con criterio)
No podemos resolver
cada problema a la perfección.
Pero eso no significa
que estemos indefensos.
Con métodos rápidos,
con estrategias inteligentes,
conociendo los límites y negociando con criterio,
aun frente a un problema difícil
puedes sostener
una respuesta útil en la mano.
Ese es el poder
que los algoritmos nos dan.