Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>> Algorithms are _meaningless_ without accompanying proofs.

Most of what we write as coders (and in fact, most of what the world runs on) are algorithms without proofs which "mostly" work.

In fact, you could call almost all of our strategies in social interactions "heuristic algorithms"!



To whomever rated me down -- why do you think that human-written software has so many bugs? It's because we don't take the time (and don't have good strategies yet) to effectively "prove" that our code/algorithms exactly meet the program specs. To write code, we need to make certain idealizations (e.g. thinking about "doubles" as actual real numbers) which actually have tricky corner cases.

So many areas of life cannot easily be mathematically analyzed. Hence, our brain resorts to algorithms which work "most" of the time, which is luckily usually sufficient for survival.


It's typically because we don't even write a spec :-)


I'm half-way into "Simple Heuristics That Make Us Smart", and it's very revelatory on the subject. Turns out with the "recognition heuristic" alone you can go about halfway. The rest goes again halfway with another just a bit more complex heuristic. Also interesting is that very simple heuristics tend to be about as good or more as very complicated algorithms, and sensibly more robust.

I found an abstract (http://www-abc.mpib-berlin.mpg.de/users/ptodd/SimpleHeuristi...) but it's a bit dry. The actual book is a lot more readable.


Almost all our strategies ain't worth much, and since proving things takes a lot of effort, it makes no sense to prove most of our strategies.

But if I were writing flight control software, I'd take the time to formally prove tings, I'd even write the speck in Z.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: