¿Cuál es el problema de optimización / mejora más difícil que haya conocido y cómo lo resolvió?

Para una clase de control óptima, la tarea consistía en encontrar una secuencia de controles (por ejemplo, fuerzas / aceleraciones) que hicieran que un brazo de 2 articulaciones pasara de cualquier estado inicial a un estado equilibrado ascendente. Básicamente, esto significa simular mover su brazo desde un estado de reposo (o cualquier otra posición en la que se encuentre) a una posición vertical (como cuando levanta la mano, por ejemplo).

Cuando puede mover ambas articulaciones, la tarea es realmente fácil. Pero, ¿qué tal si no puede mover una de sus articulaciones, específicamente la de su hombro? ¡El problema se vuelve difícil cuando solo puedes mover la articulación del codo! Si comienzas desde una posición que es casi vertical, nuevamente, no es tan malo. Pero comenzar desde la dirección opuesta hace que la tarea sea muy difícil. Imagínese balanceando su brazo con mucha fuerza con la articulación del codo para obtener la suficiente fuerza como para ponerse de pie.

Para resolver el problema, se anotó una función de energía / costo que se minimizó cuando la fuerza era 0 y el ángulo del brazo era 0, es decir, el brazo estaba en posición vertical. Para minimizar el costo, se nos recomendó utilizar el principio máximo de Pontryagin, que proporciona una forma eficiente de evaluar el gradiente del costo total con los controles y, por lo tanto, optimizar los controles numéricamente. Con la función de costo y una fórmula para su gradiente, se utiliza una rutina de optimización para encontrar una secuencia de controles que minimice el costo.

Encontrar buenas conjeturas iniciales es crucial, pero también usar algún tipo de método de continuación, es decir, tratar de resolver primero un problema más simple y luego hacer que el problema sea progresivamente más difícil hasta llegar al problema deseado. En este caso, primero podemos permitir que ambas articulaciones se muevan, pero gradualmente imponer un costo más alto al movimiento de la articulación del hombro; el costo se vuelve tan alto en algún momento que ya no se desea mover la articulación del hombro.

Encontré que este es un problema difícil de optimización. No tengo mucha experiencia y esta fue mi primera clase sobre control óptimo (¡y optimización en general!), Por lo que probablemente sea comprensible que trabajé lentamente y solo proporcioné una solución parcial. ¡Pero nadie en la clase lo descubrió tampoco! Lo que me lleva a escribir esta publicación y dejar que el lector decida si este es realmente un problema desafiante o no.

gracias por a2a
Encontrar el mejor filtro de respuesta de impulso finito sujeto a longitudes de palabra finitas. Este problema surge al diseñar ASICS personalizados para la compatibilidad con convertidores analógicos a digitales extremadamente rápidos. Utilicé la optimización de colonias de hormigas y la programación semidefinida positiva con relajación.

Los problemas más difíciles que conozco son los que son computablemente intratables, los que son NP-hard, PSPACE-hard o EXPTIME-hard. Y no he resuelto ninguno de ellos, o al menos no de manera eficiente , me temo.

More Interesting

¿Qué es lo más importante para las empresas de software: código abierto, proyectos extracurriculares o habilidades algorítmicas (habilidades de programación competitiva)?

¿Es razonable delegar decisiones importantes sobre algoritmos?

¿Podemos decir que el Aprendizaje automático es nuestro compromiso para los problemas para los que no pudimos encontrar algoritmos? Argumentos

¿Cuántas conjeturas necesitarías para determinar el número entre 1 y 100 en el peor de los casos usando una búsqueda lineal?

¿Cuál es la relación entre el análisis probabilístico y el algoritmo aleatorio?

Cómo planificar 1-2 años de programación para convertirse en un experto en algoritmos, suponiendo que tenga un conocimiento de C ++ en la escuela secundaria

Cómo comenzar a crear un modelo / pronóstico de ventas con dos años y medio de datos de ventas anteriores

Dado que solo quedan 2 meses para las regiones regionales de ACM ICPC, ¿cuántos problemas podría resolver allí si comenzara a practicar ahora, teniendo solo la idea más básica sobre algoritmos?

¿Aprender las estructuras de datos usando Python en lugar de C afectará mi comprensión de las estructuras de datos?

¿Por qué son buenos los algoritmos de código abierto?

¿Cuáles son algunas de las preguntas de cadena que se hacen comúnmente en una entrevista técnica?

¿Cuáles son algunos buenos nombres de variables / métodos junto con la descripción donde encajan?

¿Cuál sería un ejemplo de un problema de programación que sería difícil si no fuera posible sin el uso de array?

He pensado en un algoritmo simple y cómo algunas empresas podrían usarlo. ¿Cómo puedo ganar dinero con eso?

¿Es la codificación competitiva todo sobre estructuras de datos y algoritmos?