{"id":662,"date":"2010-01-19T00:36:42","date_gmt":"2010-01-18T23:36:42","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=662"},"modified":"2010-01-19T00:36:42","modified_gmt":"2010-01-18T23:36:42","slug":"galib-available-now","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/","title":{"rendered":"GALib available now!"},"content":{"rendered":"<p>Over the past 2 weeks I&#8217;ve been putting time in creating a general purpose Genetic Algorithm (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Genetic_algorithm\">GA<\/a>) library in C#. It provides the scaffolding for any GA based functionality. Although it&#8217;s not fully finished yet, it is <a href=\"http:\/\/download-lib.svn.sourceforge.net\/viewvc\/csgalib\/\">now available<\/a> under the GPL licence at <a href=\"http:\/\/sourceforge.net\/\">SourceForge<\/a>.<\/p>\n<p><strong>What does it provide and can it do ATM?<\/strong><\/p>\n<ul>\n<li>An abstract Individual class that can be inherited from to make your own individual type, with it&#8217;s own <a href=\"http:\/\/en.wikipedia.org\/wiki\/Mutation\">mutation<\/a>, <a href=\"http:\/\/en.wikipedia.org\/wiki\/Crossover_%28genetic_algorithm%29\">crossover<\/a>, initialization and <a href=\"http:\/\/en.wikipedia.org\/wiki\/Fitness_function\">fitness functions<\/a> and <a href=\"http:\/\/en.wikipedia.org\/wiki\/Genotype\">genotype<\/a>.<\/li>\n<li>A <a href=\"http:\/\/download-lib.svn.sourceforge.net\/viewvc\/csgalib\/Population.cs?view=markup\">population class<\/a>, which is basically a List&lt;IndividualType&gt;, which enables you to do the actual GA evolution. The evolution is done on a background thread, and events keep you up to date by reporting every time a generation has evolved, a new fittest individual is found, or the evolution is complete due to reaching the maximum amount of generations, reaching the stagnation limit or being cancelled. For the evolution you can choose between rank based <a href=\"http:\/\/en.wikipedia.org\/wiki\/Selection_%28genetic_algorithm%29\">selection<\/a>, truncated rank based selection, and roulette wheel selection. You can also set properties like the mutation ratio, and elitism percentage.<\/li>\n<\/ul>\n<p><strong>What still needs to be finished\/added?<\/strong><\/p>\n<ul>\n<li>The library contains a IslandGroup class, allowing you to do simultaneous evolution on multiple &#8216;islands&#8217;. This class still needs to be finished though.<\/li>\n<li>The Population class contains a method for <a href=\"http:\/\/en.wikipedia.org\/wiki\/Tournament_selection\">tournament based selection<\/a>, but the code is not complete yet.<\/li>\n<li>The performance of the library could probably be improved.<\/li>\n<li>A lot of other neat things could be added, like multiple reproduction methods and varying genotype size support.<\/li>\n<\/ul>\n<p>This is a class diagram of the library as it is at the moment.<\/p>\n<p><a href=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-664\" title=\"Class diagram of GALib by Jeroen De Dauw\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.gif\" alt=\"Class diagram of GALib by Jeroen De Dauw\" width=\"600\" height=\"580\" \/><\/a><\/p>\n<p>I&#8217;m going to release the <a href=\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/10\/galib-with-tsp-implementation\/\">TSP implementation<\/a> I made with this lib on-line in a similar fashion, after the interface is fully finished. Also, once the library itself is finished, I&#8217;m going to create an article explaining how it works and should be used, and put it both on The Code Project and my wiki \ud83d\ude42<\/p>\n<p><strong>Resources<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/download-lib.svn.sourceforge.net\/viewvc\/csgalib\/\">Project home @ SourceForge<\/a><\/li>\n<li><a href=\"http:\/\/download-lib.svn.sourceforge.net\/viewvc\/csgalib\/\" target=\"_blank\">SVN repository @ SourceForge<\/a><\/li>\n<li><a href=\"https:\/\/www.entropywins.wtf\/blog\/tag\/galib\/\">Related posts<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Over the past 2 weeks I&#8217;ve been putting time in creating a general purpose Genetic Algorithm (GA) library in C#.&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[9,11,19,33,55,62,100,101,103,113,149,181,239],"class_list":["post-662","post","type-post","status-publish","format-standard","hentry","category-programming","tag-net","tag-net-4-0","tag-ai","tag-artificial-intelligence","tag-c","tag-class-lirary","tag-ga","tag-galib","tag-genetic-algorithm","tag-gpl","tag-library","tag-open-source","tag-sourceforge"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GALib available now! - Blog of Jeroen De Dauw<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GALib available now! - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"Over the past 2 weeks I&#8217;ve been putting time in creating a general purpose Genetic Algorithm (GA) library in C#.&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2010-01-18T23:36:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.gif\" \/>\n<meta name=\"author\" content=\"Jeroen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/JeroenDeDauw\" \/>\n<meta name=\"twitter:site\" content=\"@JeroenDeDauw\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeroen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"GALib available now!\",\"datePublished\":\"2010-01-18T23:36:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/\"},\"wordCount\":338,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/01\\\/GALib-cd.gif\",\"keywords\":[\".Net\",\".Net 4.0\",\"AI\",\"Artificial intelligence\",\"C#\",\"Class lirary\",\"GA\",\"GALib\",\"Genetic Algorithm\",\"GPL\",\"Library\",\"Open Source\",\"SourceForge\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/\",\"name\":\"GALib available now! - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/01\\\/GALib-cd.gif\",\"datePublished\":\"2010-01-18T23:36:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/01\\\/GALib-cd.gif\",\"contentUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/01\\\/GALib-cd.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2010\\\/01\\\/19\\\/galib-available-now\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GALib available now!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\",\"name\":\"Entropy Wins\",\"description\":\"A blog on Software Architecture, Design and Craftsmanship\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\",\"name\":\"Jeroen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"caption\":\"Jeroen\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/jeroendedauw\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/JeroenDeDauw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GALib available now! - Blog of Jeroen De Dauw","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/","og_locale":"en_US","og_type":"article","og_title":"GALib available now! - Blog of Jeroen De Dauw","og_description":"Over the past 2 weeks I&#8217;ve been putting time in creating a general purpose Genetic Algorithm (GA) library in C#.&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2010-01-18T23:36:42+00:00","og_image":[{"url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.gif","type":"","width":"","height":""}],"author":"Jeroen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/JeroenDeDauw","twitter_site":"@JeroenDeDauw","twitter_misc":{"Written by":"Jeroen","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"GALib available now!","datePublished":"2010-01-18T23:36:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/"},"wordCount":338,"commentCount":0,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.gif","keywords":[".Net",".Net 4.0","AI","Artificial intelligence","C#","Class lirary","GA","GALib","Genetic Algorithm","GPL","Library","Open Source","SourceForge"],"articleSection":["Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/","url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/","name":"GALib available now! - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/#primaryimage"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.gif","datePublished":"2010-01-18T23:36:42+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/#primaryimage","url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.gif","contentUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"GALib available now!"}]},{"@type":"WebSite","@id":"https:\/\/www.entropywins.wtf\/blog\/#website","url":"https:\/\/www.entropywins.wtf\/blog\/","name":"Entropy Wins","description":"A blog on Software Architecture, Design and Craftsmanship","publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.entropywins.wtf\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7","name":"Jeroen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","caption":"Jeroen"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g"},"sameAs":["https:\/\/www.linkedin.com\/in\/jeroendedauw\/","https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p74TBF-aG","jetpack-related-posts":[{"id":677,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/24\/galib-0-1-released\/","url_meta":{"origin":662,"position":0},"title":"GALib 0.1 released","author":"Jeroen","date":"2010-01-24","format":false,"excerpt":"Yesterday I released GALib version 0.1, a small C# Library that provides the scaffolding for Genetic Algorithm based functionality. It's completely open source and available under the GNU General Public License. (See other blog posts about GALib) You can download both the source and compiled .dll from SourceForge. I've done\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":686,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/","url_meta":{"origin":662,"position":1},"title":"Skynet released!","author":"Jeroen","date":"2010-01-30","format":false,"excerpt":"Today I released the first public beta of Skynet, which is now at version 0.1.3. Skynet is an implementation of GALib with WPF GUI that solves the Travelling Salesman Problem (TSP) using Genetic Algorithms (GA). It's completely open source and available under the GNU General Public License. Downloads Skynet 0.1.3.zip\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":644,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/03\/my-first-genetic-algorithm\/","url_meta":{"origin":662,"position":2},"title":"My first genetic algorithm","author":"Jeroen","date":"2010-01-03","format":false,"excerpt":"To practice some AI methods I've been reading about, I created a genetic algorithm (GA) implementation to tackle the travelling salesman problem (TSP). I decided to do this in C#, to practice myself in some more advanced aspects of the language, and mess some more around with the new stuff\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/tsp-genetic-algorithm-cities.gif?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":650,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/10\/galib-with-tsp-implementation\/","url_meta":{"origin":662,"position":3},"title":"GALib with TSP implementation","author":"Jeroen","date":"2010-01-10","format":false,"excerpt":"Over the last week, I've been rewriting my Genetic Algorithm (GA) implementation of the Travelling Salesman Problem (TSP). I've rewritten pretty much everything, but the two most notable changes are: 1. I split the code into 2 projects: one holding the general GA code, which is now called GALib, and\u2026","rel":"","context":"In \".Net\"","block_context":{"text":".Net","link":"https:\/\/www.entropywins.wtf\/blog\/tag\/net\/"},"img":{"alt_text":"Dependency diagram of a Visual Studio solution containing the GALib and TSP app (Skynet)","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-TSP-dependencyDiagram.png.gif?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-TSP-dependencyDiagram.png.gif?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-TSP-dependencyDiagram.png.gif?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":809,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/05\/01\/bn-converter-pro-1-1-0-released\/","url_meta":{"origin":662,"position":4},"title":"BN+ Converter Pro 1.1.0 released","author":"Jeroen","date":"2010-05-01","format":false,"excerpt":"Two months back I dug up the project files of BN+ Converter Pro, a .Net application I created when I was in secondary school, and did some high level refactoring to optimize it for .Net 4.0 and version 3 of my .Net class library. This was soon after I released\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"BN+ Converter Pro 1.0.6","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/05\/Bnc1.0.6.gif?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":1527,"url":"https:\/\/www.entropywins.wtf\/blog\/2016\/01\/08\/old-project-documentation-restored\/","url_meta":{"origin":662,"position":5},"title":"Old project pages restored","author":"Jeroen","date":"2016-01-08","format":false,"excerpt":"During the past week I've been restoring the documentation and project pages of some of my old (2007 - 2010) projects. This documentation used to reside on my wiki at wiki.bn2vs.com. This wiki however has been down for two years, as I could not be bothered to fix it. Step\u2026","rel":"","context":"In &quot;Life&quot;","block_context":{"text":"Life","link":"https:\/\/www.entropywins.wtf\/blog\/category\/life\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/662","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/comments?post=662"}],"version-history":[{"count":0,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/662\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}