{"id":14774,"date":"2014-05-06T17:43:08","date_gmt":"2014-05-06T22:43:08","guid":{"rendered":"http:\/\/blog.kenperlin.com\/?p=14774"},"modified":"2014-05-06T17:43:08","modified_gmt":"2014-05-06T22:43:08","slug":"human-compressed-algorithms","status":"publish","type":"post","link":"http:\/\/blog.kenperlin.com\/?p=14774","title":{"rendered":"Human-compressed algorithms"},"content":{"rendered":"<p>During a discussion today about artificial intelligence, I had an odd thought.<\/p>\n<p>People who study computer science know that any algorithm takes a certain minimum amount of space to write.  Beyond that, you just can&#8217;t make the algorithm any smaller.  Some algorithms are very simple and take up little space, whereas others are huge and complex, yet the description of any given algorithm can only be compressed so much, and no more.<\/p>\n<p>But what if you used people to compress algorithms?  Instead of writing out the algorithm in a formal program, so that a computer can execute it step by step, suppose you just describe the algorithm to another person, and then let <i>them<\/i> write the computer code?<\/p>\n<p>The resulting description might be a lot smaller.  Of course it&#8217;s not the same &#8212; we are now relying on human brains to fill in the missing bits.  Fortunately, there are about seven billion human brains in the world, and many of them are quite good at this sort of thing.<\/p>\n<p>For example, here is how I might describe a bubble sort to a friend:  &#8220;Repeatedly go down a list, swapping pairs of items that are not in order.  Stop when nothing is swapped.&#8221;<\/p>\n<p>If my friend knows how to program, she can turn that description into code.  She would need to add in lots of bothersome details (loop constructs, iterating variables, conditionals, array declaration, etc) &#8212; none of which were in my original description.  But any decent programmer would know how to do that.<\/p>\n<p>Wouldn&#8217;t it be cool if this leads to a simpler way to describe algorithms?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>During a discussion today about artificial intelligence, I had an odd thought. People who study computer science know that any algorithm takes a certain minimum amount of space to write. Beyond that, you just can&#8217;t make the algorithm any smaller. Some algorithms are very simple and take up little space, whereas others are huge and &hellip; <a href=\"http:\/\/blog.kenperlin.com\/?p=14774\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Human-compressed algorithms&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/14774"}],"collection":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14774"}],"version-history":[{"count":1,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/14774\/revisions"}],"predecessor-version":[{"id":14775,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/14774\/revisions\/14775"}],"wp:attachment":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14774"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}