web-dev-qa-db-fra.com

Comment prouver une stratégie de programmation dynamique fonctionnera pour un algorithme?

Comment puis-je prouver qu'une stratégie de programmation dynamique (DP) pour un problème fonctionnera ou non? Pour les algorithmes gourmands, nous pouvons prouver en montrant que les sous-positions présentent des biens matroïde. Y a-t-il de telles méthodes pour les algorithmes DP?

4
pkvprakash

En général, la solution de programmation dynamique peut être prouvée en montrant que votre solution présente la propriété de sous-structure optimale.

Fondamentalement, vous formulez le problème réel que composé de sous-émérules plus petits, puis combinez les solutions pour obtenir votre réponse finale. En combinant, si la taille du problème augmente, la solution pour le sous-programme plus petit doit toujours être optimale pour que la combinaison fonctionne réellement.

Par exemple, si dans un graphique, vous essayez de trouver un chemin le plus court entre A et C, et vous savez déjà (d'une manière ou d'une autre manière que ce chemin passe à travers un point intermédiaire B, et que vous connaissez déjà le moyen le plus court pour obtenir de A à B, alors vous n'avez besoin que de trouver un moyen le plus court pour vous rendre à C de B. Vous n'avez pas à vous soucier de trouver une nouvelle voie à partir de A à C, c'est ce que signifie la propriété optimale de la sous-structure. Pour une preuve de projection de programmation dynamique, prouvant que cette propriété suffit à montrer que votre approche est correcte.

Ils vous prouvent un algorithme gourmand en montrant qu'il présente une structure matroid est correct, mais cela ne fonctionne pas toujours. Certains algorithmes gourmands ne montreront pas la structure matroid, mais ils sont des algorithmes gourmands corrects. Par exemple, le schéma de codage Huffman est une approche gourmande, mais elle n'expose pas une structure matroid.

Pour prouver un algorithme gourmand, en général, vous devez montrer que votre solution présente -1) une propriété optimale de sous-structure comme dans DP et 2) Le choix fabriqué par une approche gourmande n'est pas sous-optimal (montrant essentiellement qu'il est optimal ou un des choix optimaux pouvant être faits à ce moment-là)

1
Parth Kothari