Estas lecturas son opcionales: no constituyen un requisito para las próximas clases ni
serán evaluadas directamente. Se incluyen para quienes quieran profundizar en la formulación de problemas
de optimización, la evaluación de caja negra y el uso de tipos para representar conceptos e invariantes
del dominio.
No es necesario leerlas todas. La ruta corta recomendada reúne tres
recursos que complementan las ideas principales de la clase desde el modelado matemático, la optimización
de caja negra y el diseño de software.
Ruta corta recomendada
1. Del problema informal al modelo de optimización
ReferenciaLibro
Talbi, E.-G.(2009). Metaheuristics: From design to implementation. Wiley.
Puede requerir acceso institucional
Qué revisar
Capítulo 1, en particular las secciones 1.1–1.3 sobre modelos y métodos de optimización.
Pregunta guía
¿Qué partes de una implementación deberían permanecer iguales al sustituir un algoritmo de búsqueda por otro?
¿De qué trata?
Presenta los elementos utilizados para describir formalmente un problema de optimización y distingue esa descripción de los métodos usados para buscar soluciones.
¿Por qué es pertinente para el curso?
Complementa la distinción entre el problema y el algoritmo de búsqueda: representación, espacio, objetivo, restricciones y preferencia describen el primero; la generación y selección de candidatas pertenecen al segundo.
Audet, C., & Hare, W.(2026). Introduction: Tools and challenges in derivative-free and blackbox optimization. En Derivative-free and blackbox optimization (2.ª ed., pp. 3–18). Springer.
Puede requerir acceso institucional
Qué revisar
Capítulo introductorio, con énfasis en la definición del problema y la información disponible para el algoritmo.
Pregunta guía
¿Qué métodos dejan de ser directamente aplicables cuando la interfaz solo permite consultar valores de la función?
¿De qué trata?
Introduce problemas en los que la función objetivo puede consultarse, pero sus derivadas u otros detalles internos no están disponibles, no son confiables o son imprácticos.
¿Por qué es pertinente para el curso?
Fundamenta el contrato observable de la clase: el algoritmo propone una candidata y recibe un valor; el método de búsqueda depende de la interfaz, no de la implementación interna del evaluador.
3. Representar conceptos e invariantes mediante tipos
ReferenciaLibro
Wlaschin, S.(2018). Domain modeling made functional: Tackle software complexity with domain-driven design and F#. Pragmatic Bookshelf.
Puede requerir acceso institucional
Qué revisar
Las secciones sobre tipos, modelado del dominio e integridad de los valores. La presentación del autor es una alternativa accesible.
Pregunta guía
¿Qué estados no deseados puede impedir el tipo Point antes de evaluar siquiera una solución candidata?
¿De qué trata?
Explica cómo un modelo de software puede usar nombres y tipos específicos del dominio e incorporar reglas e invariantes en la construcción de valores.
¿Por qué es pertinente para el curso?
Ayuda a comprender la transición desde List<Double> hacia Point, que expresa intención y controla su construcción. Aunque utiliza F#, el principio se aplica a Kotlin y otros lenguajes estáticos.
4. Mecanismos del lenguaje utilizados en el modelo
La implementación de la clase utiliza mecanismos generales de Kotlin para expresar conceptos del dominio, restringir la construcción de valores y definir contratos reutilizables.
Inline value classes
Explica cómo crear un tipo específico del dominio que envuelve un valor y se mantiene distinto de su representación subyacente.
La introducción de la suite y la sección 1.1 dedicada a Sphere.
Pregunta guía
¿Qué propiedad verificamos con Sphere: la calidad general del algoritmo o la coherencia básica del modelo y su implementación?
¿De qué trata?
Define una suite de funciones para estudiar optimizadores continuos en condiciones controladas. Sphere permite observar el comportamiento básico sin multimodalidad u otras dificultades.
¿Por qué es pertinente para el curso?
En el curso usamos Sphere para verificar que representación, espacio de búsqueda y evaluador estén conectados correctamente; su simplicidad no demuestra rendimiento general sobre otros paisajes.
Larson, J., Menickelly, M., & Wild, S. M.(2019). Derivative-free optimization methods. Acta Numerica, 28, 287–404.
Acceso abierto
Qué revisar
Para esta clase basta con el resumen y la introducción; el resto puede retomarse después de estudiar familias de métodos.
Pregunta guía
¿Qué supuestos adicionales permiten diseñar métodos más especializados que proponer y evaluar candidatas?
¿De qué trata?
Revisa métodos para problemas cuyas funciones se observan mediante simulación o un evaluador que no entrega derivadas.
¿Por qué es pertinente para el curso?
Amplía la idea de que caja negra no describe una sola clase de funciones: el evaluador puede ser determinista o estocástico, suave o no suave, económico o costoso.