Ich beziehe mich hier auf die Frage: Leistungsstarke Algorithmen, die zu komplex sind, um sie zu implementieren .
Wenn ein Algorithmus leistungsfähig, aber zu komplex für die Implementierung ist, wie können Sie sicher sein, dass der Algorithmus korrekt ist? Ohne Implementierung können Sie den Algorithmus nicht in einem realen Szenario testen, und ein derart komplexer Algorithmus kann Fehler enthalten, die den Algorithmus ungültig machen können.
Das verstehe ich nicht; Wenn Sie die Techniken haben, um die Richtigkeit eines Algorithmus zu beweisen, dann hätten Sie den Algorithmus, um ihn bereits zu implementieren, nicht wahr? Oder wie können wir sicher sein, dass die Prüftechnik korrekt ist?
Es tut mir leid, wenn ich elementar klinge!
Update von Kaveh (hier wiedergegeben, weil das Argument besser ist!):
Wenn Sie die Richtigkeit eines Algorithmus in einem formalen System wie Coq formal beweisen können, können Sie den Algorithmus auch extrahieren (da Sie den Algorithmus im Wesentlichen implementiert haben). Entscheidend ist jedoch, dass wir für die meisten Algorithmen keine formalen Beweise liefern Korrektheit für den Algorithmus verwenden wir informelle Korrektheitsnachweise. Die Beweise können falsch sein, was von Zeit zu Zeit vorkommt, und selbst ein formaler Beweis der Korrektheit wird uns nicht absolut sicher machen, dass der Algorithmus korrekt ist.