{"id":39,"date":"2009-08-25T05:00:00","date_gmt":"2009-08-25T05:00:00","guid":{"rendered":"http:\/\/graham-kendall.com\/blog\/?p=39"},"modified":"2020-09-22T02:02:03","modified_gmt":"2020-09-22T02:02:03","slug":"how-general-is-your-algorithm","status":"publish","type":"post","link":"https:\/\/graham-kendall.com\/blog\/how-general-is-your-algorithm\/","title":{"rendered":"How General is Your Algorithm?"},"content":{"rendered":"<p>One of the research issues that has been tackled for at least 50 years is attempting to develop algorithms that are better than other algorithms on a certain type of problem (for example, vehicle routing, traveling salesman problem etc.). And it is easy to judge if you have a better algorithm. You run it on a benchmark problem from the literature and if yours is better you write a paper claiming as much. Of course, you should also show statistical significance, robustness of your approach, provide some discussion etc.<\/p>\n<p>There has been some recent work where the goal is to develop an algorithm that works well on many different problem domains. This is a challenging objective as even small changes to a problem instance can make an algorithm that used to perform well, now perform poorly. See a <a href=\"http:\/\/research-reflections.blogspot.com\/2009\/07\/bin-packing-made-easier.html\">previous blog<\/a> where I gave a simple example.<\/p>\n<p>So, if we have an algorithm that works well on a particular problem instance, but a small change to the problem renders it useless (or at least worse than it was) then imagine the challenge in trying to get an algorithm to work on a totally different domain without any changes being made to the algorithm. To make it clearer what we are trying to achieve, let&#8217;s say you have an algorithm that works well on a Vehicle Routing Problem. Is it possible, without any changes to that algorithm, to get it to work well on a (say) a staff rostering problem?<\/p>\n<p>This is one (if not THE) goal of <a href=\"http:\/\/en.wikipedia.org\/wiki\/Hyper-heuristic\">hyper-heuristics<\/a>. In a future blog, I&#8217;ll give some more concrete examples, but the challenge of developing more general search algorithms is an area that is attracting quite a lot of interest at the moment.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the research issues that has been tackled for at least 50 years is attempting to develop algorithms that are better than other algorithms on a certain type of problem (for example, vehicle routing, traveling salesman problem etc.). And it is easy to judge if you have a better algorithm. You run it on [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[177,45,13,40,16,17],"tags":[],"class_list":["post-39","post","type-post","status-publish","format-standard","hentry","category-archive","category-evaluation-function","category-genetic-algorithms","category-heuristics","category-hyper-heuristics","category-meta-heuristics"],"_links":{"self":[{"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/posts\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/comments?post=39"}],"version-history":[{"count":1,"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/posts\/39\/revisions"}],"predecessor-version":[{"id":1695,"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/posts\/39\/revisions\/1695"}],"wp:attachment":[{"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/media?parent=39"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/categories?post=39"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/graham-kendall.com\/blog\/wp-json\/wp\/v2\/tags?post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}