Je me réfère à la question ici: des algorithmes puissants trop complexes à mettre en œuvre .
Si un algorithme est puissant, mais trop complexe à implémenter, comment pouvez-vous être sûr que l'algorithme est correct? Sans implémentation, vous ne pourrez pas tester l'algorithme dans un scénario réel, et un algorithme aussi complexe peut contenir des bogues, ce qui peut invalider l'algorithme.
Voilà ce que je ne comprends pas; si vous avez les techniques pour prouver l'exactitude d'un algorithme, alors vous auriez déjà l'algorithme pour l'implémenter, n'est-ce pas? Ou bien comment pouvons-nous être sûrs que la technique de vérification est correcte?
Je suis désolé si j'ai l'air élémentaire!
Mise à jour de Kaveh (reproduite ici car l'argument est meilleur!):
Si vous pouvez prouver formellement l'exactitude d'un algorithme dans un système formel comme Coq, vous pouvez également extraire l'algorithme (car vous avez essentiellement implémenté l'algorithme), mais le fait clé est que pour la plupart des algorithmes, nous ne donnons pas de preuves formelles de l'exactitude de l'algorithme, nous utilisons des preuves informelles d'exactitude. Les preuves peuvent être fausses, ce qui arrive de temps en temps, et même une preuve formelle de correction ne nous garantira pas absolument que l'algorithme est correct.