{"id":686,"date":"2010-01-30T23:43:10","date_gmt":"2010-01-30T22:43:10","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=686"},"modified":"2010-01-30T23:43:10","modified_gmt":"2010-01-30T22:43:10","slug":"skynet-released","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/","title":{"rendered":"Skynet released!"},"content":{"rendered":"<p>Today I released the first public beta of Skynet, which is now at version 0.1.3. Skynet is an implementation of <a title=\"GALib\" href=\"http:\/\/wiki.bn2vs.com\/GALib\">GALib<\/a> with WPF GUI that solves the Travelling Salesman  Problem (<a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Travelling_salesman_problem\">TSP<\/a>) using Genetic Algorithms (<a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Genetic_algorithm\">GA<\/a>). It&#8217;s completely open source and available  under the GNU General Public License.<\/p>\n<p><strong>Downloads<\/strong><\/p>\n<ul>\n<li> <a rel=\"nofollow\" href=\"https:\/\/sourceforge.net\/projects\/csgalib-tsp\/files\/Skynet%200.1.3\/Skynet%200.1.3.zip\/download\">Skynet 0.1.3.zip<\/a> 99.4 KB<\/li>\n<li> <a rel=\"nofollow\" href=\"https:\/\/sourceforge.net\/projects\/csgalib-tsp\/files\/Skynet%200.1.3\/Skynet%200.1.3%20setup.zip\/download\">Skynet 0.1.3 setup.zip<\/a> 331.3 KB<\/li>\n<li> <a rel=\"nofollow\" href=\"http:\/\/csgalib-tsp.svn.sourceforge.net\/viewvc\/csgalib-tsp.tar.gz?view=tar\">Download GNU tarball<\/a> (latest  version of the source project, straight from SVN)<\/li>\n<\/ul>\n<p>You can also download the project code directly via SVN from the   SourceForge source code repository, at <a rel=\"nofollow\" href=\"https:\/\/csgalib-tsp.svn.sourceforge.net\/svnroot\/csgalib-tsp\">https:\/\/csgalib-tsp.svn.sourceforge.net\/svnroot\/csgalib-tsp<\/a>.   From a command line, you can call the following:  svn checkout  https:\/\/csgalib-tsp.svn.sourceforge.net\/svnroot\/csgalib-tsp<\/p>\n<p><strong>Application features<\/strong><\/p>\n<ul>\n<li>Graphical WPF interface<\/li>\n<li>Multiple selection algorithms<\/li>\n<li>Pause, resume and cancellation support<\/li>\n<li>Control over mutation ratio&#8217;s and elitism percentage<\/li>\n<li>Optional removal of identical twins or individuals<\/li>\n<li>&#8220;Take over the world&#8221; button<\/li>\n<\/ul>\n<p><strong>Background<\/strong><\/p>\n<p>The idea for creating this application came to me after reading the  first part of <a rel=\"nofollow\" href=\"http:\/\/mitpress.mit.edu\/catalog\/item\/default.asp?ttype=2&amp;tid=11657\">Bio-Inspired Artificial  Intelligence<\/a> by Dario Floreano and Claudio Mattiussi. I figured I  needed to do an implementation of what I&#8217;ve read to test myself. I split  up the general GA code from the application itself and created <a title=\"GALib\" href=\"http:\/\/wiki.bn2vs.com\/GALib\">GALib<\/a>, a small C#  Library that provides the scaffolding for Genetic Algorithm based  functionality. All work was done in my free time.<\/p>\n<p><a href=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-687\" title=\"Skynet application interface\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif\" alt=\"\" width=\"600\" height=\"574\" \/><\/a><\/p>\n<p>See <a title=\"Skynet\/Screenshots\" href=\"http:\/\/wiki.bn2vs.com\/Skynet\/Screenshots\">this page<\/a> for more screenshots.<\/p>\n<p><strong>Using the application<\/strong><\/p>\n<p>Although the application interface should be pretty straight forward to use, I&#8217;ve written some documentation, which can be found <a href=\"http:\/\/wiki.bn2vs.com\/Skynet#Using_the_application\">here<\/a>. If you have any questions, let me know \ud83d\ude42<\/p>\n<p><strong>How it works<\/strong><\/p>\n<p><a href=\"http:\/\/wiki.bn2vs.com\/Skynet#How_it_works\">This section on my wiki<\/a> explains how Skynet works as an implementation of <a title=\"GALib\" href=\"http:\/\/wiki.bn2vs.com\/GALib\">GALib<\/a>. If you are  not familiar with how genetic algorithms work, you are advised to first  have a good look at <a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Genetic_algorithm\">this Wikipedia article<\/a> and related pages. This  section will introduce you to how GA logic specific to the TSP works in a  bottom-up fashion. For more information on the actual evolution, see <a title=\"GALib\" href=\"http:\/\/wiki.bn2vs.com\/GALib\">GALib<\/a>. I&#8217;m also planning to write a Code Project article about this implementation of GALib.<\/p>\n<p>This is a full dependency digram generated in a Visual Studio solution containing both the GALib and Skynet projects.<\/p>\n<p><a href=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-and-Skynet-dependency-graph.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-688\" title=\"[Click to enlarge] Skynet and GALib dependency diagram\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-and-Skynet-dependency-graph.gif\" alt=\"Skynet and GALib dependency diagram\" width=\"599\" height=\"602\" \/><\/a><\/p>\n<p><strong>Points of interest<\/strong><\/p>\n<p>Since my main motivation for creating this application was exercise, I  learned a lot from building it. It&#8217;s my first decent C# application, as  well as the first time I&#8217;ve created one using WPF and the first time  I&#8217;ve done any GA programming (or AI in general). It also gave me the  chance to familiarize myself with some of the new things of .Net 4.0,  some profiling tools (see screenshot below), and have some fun with navigation based windows.  The biggest challenge in the application itself (so not counting <a title=\"GALib\" href=\"http:\/\/wiki.bn2vs.com\/GALib\">GALib<\/a>), was  definitely creating the crossover algorithm for the Route individual  type. At first I simply took half of the connections of one parent, and  then the other half from the other parent, but I rewrote this to take  all common connections. Although the crossover algorithm works fine now,  it&#8217;s pretty heavy on the cpu, and limiting the maximum speed of the  application severely. If anyone finds a way to speed it up, be sure to  let me know \ud83d\ude42<\/p>\n<p><a href=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/ants-performance-profiler.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-689\" title=\"[Click to enlarge] Profiling of Skynet\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/ants-performance-profiler.gif\" alt=\"Profiling of Skynet\" width=\"603\" height=\"411\" \/><\/a><\/p>\n<p>I&#8217;ve been working on this application on an off for a month now, and have implemented everything I&#8217;ve planned and more. Although a lot of cool stuff could still be added, I&#8217;m quitting active development of both this application and GALib, so I can focus on new projects that allow me to further expand my understanding of AI.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I released the first public beta of Skynet, which is now at version 0.1.3. Skynet is an implementation of&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,100,101,103,181,236,239,258,263,266],"class_list":["post-686","post","type-post","status-publish","format-standard","hentry","category-programming","tag-net","tag-net-4-0","tag-ai","tag-artificial-intelligence","tag-c","tag-ga","tag-galib","tag-genetic-algorithm","tag-open-source","tag-skynet","tag-sourceforge","tag-the-code-project","tag-travelling-salesman-problem","tag-tsp"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Skynet released! - 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\/30\/skynet-released\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Skynet released! - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"Today I released the first public beta of Skynet, which is now at version 0.1.3. Skynet is an implementation of&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2010-01-30T22:43:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.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=\"3 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\/30\/skynet-released\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"Skynet released!\",\"datePublished\":\"2010-01-30T22:43:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/\"},\"wordCount\":597,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"image\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif\",\"keywords\":[\".Net\",\".Net 4.0\",\"AI\",\"Artificial intelligence\",\"C#\",\"GA\",\"GALib\",\"Genetic Algorithm\",\"Open Source\",\"Skynet\",\"SourceForge\",\"The Code Project\",\"Travelling Salesman Problem\",\"TSP\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/\",\"url\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/\",\"name\":\"Skynet released! - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif\",\"datePublished\":\"2010-01-30T22:43:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#primaryimage\",\"url\":\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif\",\"contentUrl\":\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.entropywins.wtf\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Skynet released!\"}]},{\"@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:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/image\/\",\"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:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeroendedauw\/\",\"https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Skynet released! - 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\/30\/skynet-released\/","og_locale":"en_US","og_type":"article","og_title":"Skynet released! - Blog of Jeroen De Dauw","og_description":"Today I released the first public beta of Skynet, which is now at version 0.1.3. Skynet is an implementation of&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2010-01-30T22:43:10+00:00","og_image":[{"url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"Skynet released!","datePublished":"2010-01-30T22:43:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/"},"wordCount":597,"commentCount":0,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif","keywords":[".Net",".Net 4.0","AI","Artificial intelligence","C#","GA","GALib","Genetic Algorithm","Open Source","Skynet","SourceForge","The Code Project","Travelling Salesman Problem","TSP"],"articleSection":["Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/","url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/","name":"Skynet released! - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#primaryimage"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif","datePublished":"2010-01-30T22:43:10+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#primaryimage","url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif","contentUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/Skynet-application-interface.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/30\/skynet-released\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"Skynet released!"}]},{"@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:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/image\/","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:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/image\/"},"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-b4","jetpack-related-posts":[{"id":650,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/10\/galib-with-tsp-implementation\/","url_meta":{"origin":686,"position":0},"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":677,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/24\/galib-0-1-released\/","url_meta":{"origin":686,"position":1},"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":1527,"url":"https:\/\/www.entropywins.wtf\/blog\/2016\/01\/08\/old-project-documentation-restored\/","url_meta":{"origin":686,"position":2},"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":[]},{"id":2049,"url":"https:\/\/www.entropywins.wtf\/blog\/2017\/06\/06\/review-of-ayreon-the-source\/","url_meta":{"origin":686,"position":3},"title":"Review of Ayreon: The Source","author":"Jeroen","date":"2017-06-06","format":false,"excerpt":"In this post I review the source code of the Ayreon software. Well, actually not. This is a review of The Source, a progressive rock\/metal album from the band Ayreon. Yes really. Much wow omg. Overall rating This album is awesome. Like every Ayreon album, The Source features a crapton\u2026","rel":"","context":"In \"Ayreon\"","block_context":{"text":"Ayreon","link":"https:\/\/www.entropywins.wtf\/blog\/tag\/ayreon\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":644,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/03\/my-first-genetic-algorithm\/","url_meta":{"origin":686,"position":4},"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":662,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/01\/19\/galib-available-now\/","url_meta":{"origin":686,"position":5},"title":"GALib available now!","author":"Jeroen","date":"2010-01-19","format":false,"excerpt":"Over the past 2 weeks I've been putting time in creating a general purpose Genetic Algorithm (GA) library in C#. It provides the scaffolding for any GA based functionality. Although it's not fully finished yet, it is now available under the GPL licence at SourceForge. What does it provide and\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Class diagram of GALib by Jeroen De Dauw","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.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-cd.gif?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/01\/GALib-cd.gif?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/686","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=686"}],"version-history":[{"count":0,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/686\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}