He estado tratando de implementar este algoritmo en Python durante unos días. Sigo volviendo a eso y simplemente me rindo y frustrado. No sé qué está pasando. No tengo a nadie a quien preguntar ni a ningún lado para pedir ayuda, así que he venido aquí.algoritmo de mínimos cuadrados segmentados, no entiendo este concepto de programación dinámica en absoluto
PDF Advertencia: http://www.cs.uiuc.edu/class/sp08/cs473/Lectures/lec10.pdf
no creo que es un explicarse claramente, estoy seguro que no entiendo.
Mi comprensión de lo que sucede es lo siguiente:
Tenemos un conjunto de los puntos (x1, y1), (x2, y2) .. y queremos encontrar algunas líneas que mejor se adapten a estos datos. Podemos tener múltiples líneas rectas, y estas líneas provienen de los foros para a y b (y = ax + b).
Ahora el algoritmo comienza en el final (?) Y asume que un punto p (x_i, y_i) es parte del segmento de línea. Entonces las notas dicen que la solución óptima es 'es la solución óptima para {p1,. . . pi-1} más (mejor) línea a través de {pi,. . . pn} '. Lo cual solo significa para mí, que vayamos al punto p (x_i, y_i) y retrocedamos y busquemos otro segmento de línea a través del resto de los puntos. Ahora la solución óptima son estos dos segmentos de línea.
Luego toma un salto lógico que no puedo seguir y dice "Supongamos que el último punto pn es parte de un segmento que comienza en p_i. Si Opt (j) indica el costo de los primeros j puntos y e (j, k) el error de la mejor línea a través de los puntos j a k luego Opt (n) = e (i, n) + C + Opt (i - 1) "
Luego está el pseudocódigo para el algoritmo que no entiendo Entiendo que queremos iterar a través de la lista de puntos y encontrar los puntos que minimizan la fórmula OPT (n), pero simplemente no la sigo. Me está haciendo sentir estúpido.
Sé que esta pregunta es un dolor en el trasero y que no es fácil de responder, pero estoy buscando alguna guía para entender este algoritmo. Me disculpo por el PDF, pero no tengo una manera más clara de obtener la información crucial para el lector.
Gracias por su tiempo y leyendo esto, lo agradezco.
El documento vinculado contiene muchos algoritmos. ¿A cuál estás mirando? – pyfunc
@pyfunc: mínimos cuadrados segmentados. Página 49/80. Creo que puedes hacer clic en la barra lateral derecha debajo de "cuadrados menos segmentados" y te llevará allí también. – gurk
Trivia, este algoritmo se debe a Bellman y tiene unos 50 años, probablemente sea el primer ejemplo publicado de DP. – piccolbo