{"id":2120,"date":"2019-04-06T13:00:50","date_gmt":"2019-04-06T12:00:50","guid":{"rendered":"https:\/\/chewett.co.uk\/blog\/?p=2120"},"modified":"2019-04-06T17:07:40","modified_gmt":"2019-04-06T16:07:40","slug":"halite-ai-challenge-2018-results","status":"publish","type":"post","link":"https:\/\/chewett.co.uk\/blog\/2120\/halite-ai-challenge-2018-results\/","title":{"rendered":"Halite AI Challenge 2018 Results"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"678\" height=\"254\" data-attachment-id=\"2124\" data-permalink=\"https:\/\/chewett.co.uk\/blog\/2120\/halite-ai-challenge-2018-results\/halite_ai_challange_results\/\" data-orig-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/Halite_AI_Challange_results.jpg?fit=800%2C300&amp;ssl=1\" data-orig-size=\"800,300\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Halite_AI_Challange_results\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/Halite_AI_Challange_results.jpg?fit=300%2C113&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/Halite_AI_Challange_results.jpg?fit=678%2C254&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/Halite_AI_Challange_results.jpg?resize=678%2C254&#038;ssl=1\" alt=\"\" class=\"wp-image-2124\" srcset=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/Halite_AI_Challange_results.jpg?w=800&amp;ssl=1 800w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/Halite_AI_Challange_results.jpg?resize=300%2C113&amp;ssl=1 300w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/Halite_AI_Challange_results.jpg?resize=768%2C288&amp;ssl=1 768w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/Halite_AI_Challange_results.jpg?resize=50%2C19&amp;ssl=1 50w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/figure>\n\n\n\n<p>Today I am writing about my bot in the Halite 3 2018 competition<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Final Results<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"375\" height=\"645\" data-attachment-id=\"2122\" data-permalink=\"https:\/\/chewett.co.uk\/blog\/2120\/halite-ai-challenge-2018-results\/final_results_full\/\" data-orig-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/final_results_full.png?fit=375%2C645&amp;ssl=1\" data-orig-size=\"375,645\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"final_results_full\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/final_results_full.png?fit=174%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/final_results_full.png?fit=375%2C645&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/final_results_full.png?resize=375%2C645&#038;ssl=1\" alt=\"\" class=\"wp-image-2122\" srcset=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/final_results_full.png?w=375&amp;ssl=1 375w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/final_results_full.png?resize=174%2C300&amp;ssl=1 174w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/final_results_full.png?resize=29%2C50&amp;ssl=1 29w\" sizes=\"auto, (max-width: 375px) 100vw, 375px\" \/><\/figure><\/div>\n\n\n\n<p>I talked a little about the Halite 2018 competition <a href=\"https:\/\/chewett.co.uk\/blog\/1640\/halite-ai-challenge\/\">in an earlier blogpost<\/a>.<\/p>\n\n\n\n<p>This is an annual open source competitive AI challenge designed around a particular game. This year the objective was to collect &#8220;halite&#8221; and return it to your shipyard.<\/p>\n\n\n\n<p>Overall I came 831st out of over 4000 competitors. My company Imagination Technologies came 41st out of 460 different companies, universities, and schools.<\/p>\n\n\n\n<p>Overall my bot was relatively efficient in its halite use which is partially why I managed to get such a high score, roughly in the top 20%.<\/p>\n\n\n\n<p>My final bot was in PHP and I came third out of all PHP competitors which I am happy with.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A little about the bot<\/h2>\n\n\n\n<p>The initial focus with this challenge was improving the pathing algorithm. This was because you used halite as you moved across the map, relative to the amount of halite on the square. This mean that to optimise your movement you could perform complex pathfinding for more optimal solutions.<\/p>\n\n\n\n<p>Combined with this, bots could only occupy a single square at once without being destroyed. However they could swap squares. I spent a good amount of time changing the initial pathing so that bots were smart enough to swap positions without colliding.<\/p>\n\n\n\n<p>Since halite was randomly distributed on the map, at start of each match I analysed the map to decide where to target. This then apportioned a number of each ships to an area to collect halite.<\/p>\n\n\n\n<p>When the game neared its end I would ensure that all my ships moved back to the shipyard and deposited their halite. No points were given for halite not in the shipyard so they calculated how many turns it would take them to go back to their base and moved when close to the end.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What next?<\/h2>\n\n\n\n<p>Towards the end of the competition I ran out of time to improve my bot  so next year I hope to be able to spend more time on it.<\/p>\n\n\n\n<p>PHP seemed to be pretty fast for what I was doing but I am going to experiment with using c++  next year to see if I can do more in each turn.<\/p>\n\n\n\n<p>I hope to get a higher position next year than I did this year.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I am writing about my bot in the Halite 3 2018 competition<\/p>\n","protected":false},"author":1,"featured_media":2125,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"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":"Today I write about my final results in the #Halite #AI Challenge 2018","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[313,314,311,312,66,184],"class_list":["post-2120","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-ai","tag-artificial-intelligence","tag-c","tag-halite","tag-php","tag-python"],"wppr_data":{"cwp_meta_box_check":"No"},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/04\/halite_results_post_icon.jpg?fit=654%2C653&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p2toWX-yc","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1640,"url":"https:\/\/chewett.co.uk\/blog\/1640\/halite-ai-challenge\/","url_meta":{"origin":2120,"position":0},"title":"Halite AI Challenge","author":"Chewett","date":"October 20, 2018","format":false,"excerpt":"This blog post talks about the Halite AI Challenge that I and many of my colleagues are currently competing in. Halite AI Challenge The Halite AI challenge is an annual\u00a0open-source artificial intelligence challenge, created by the company Two Sigma. The challenge each year focusses around building a bot which will\u2026","rel":"","context":"In &quot;Informational&quot;","block_context":{"text":"Informational","link":"https:\/\/chewett.co.uk\/blog\/category\/informational\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/post_icon.jpg?fit=654%2C653&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/post_icon.jpg?fit=654%2C653&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/post_icon.jpg?fit=654%2C653&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":2207,"url":"https:\/\/chewett.co.uk\/blog\/2207\/distributed-automated-halite-3-bot-tester\/","url_meta":{"origin":2120,"position":1},"title":"Distributed Automated Halite 3 Bot Tester","author":"Chewett","date":"June 1, 2019","format":false,"excerpt":"In this post I talk about the work I did to improve the Halite 3 Bot testing gym to speed up iterations and compare various versions of my bot. Why I spent time Improving the Halite Gym During the competition of Halite 3 one piece of provided code was a\u2026","rel":"","context":"In &quot;Software&quot;","block_context":{"text":"Software","link":"https:\/\/chewett.co.uk\/blog\/category\/software\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/06\/halite_distributed_gym.jpg?fit=654%2C653&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/06\/halite_distributed_gym.jpg?fit=654%2C653&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/06\/halite_distributed_gym.jpg?fit=654%2C653&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":2328,"url":"https:\/\/chewett.co.uk\/blog\/2328\/participating-in-the-github-noops-challenge\/","url_meta":{"origin":2120,"position":2},"title":"Participating in the Github Noops Challenge","author":"Chewett","date":"August 17, 2019","format":false,"excerpt":"In this post I talk a little about the Github Noops challenge and what I plan to do. What is the Noops Challenge? Github have created a number of challenges that encourage you to create something. Each challenge exposes an API with some options that you can customise. One of\u2026","rel":"","context":"In &quot;Software&quot;","block_context":{"text":"Software","link":"https:\/\/chewett.co.uk\/blog\/category\/software\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/08\/github_noops_challenge-1.jpg?fit=800%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/08\/github_noops_challenge-1.jpg?fit=800%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/08\/github_noops_challenge-1.jpg?fit=800%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/08\/github_noops_challenge-1.jpg?fit=800%2C800&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":3073,"url":"https:\/\/chewett.co.uk\/blog\/3073\/celebrating-30-years-of-php-highlights-from-jetbrains-phpverse-2025\/","url_meta":{"origin":2120,"position":3},"title":"Celebrating 30 Years of PHP: Highlights from Jetbrains PHPVerse 2025","author":"Chewett","date":"July 6, 2025","format":false,"excerpt":"This year I (virtually) attended Jetbrains PHPVerse 2025 celebrating 30 years of PHP. I have written about two sessions which most interested me. 30 Years of PHP To celebrate 30 years of PHP, Jetbrains brought together a number of speakers to talk about PHP's past successes and the future of\u2026","rel":"","context":"In &quot;Informational&quot;","block_context":{"text":"Informational","link":"https:\/\/chewett.co.uk\/blog\/category\/informational\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2025\/07\/phpverse-4.webp?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2025\/07\/phpverse-4.webp?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2025\/07\/phpverse-4.webp?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2025\/07\/phpverse-4.webp?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2025\/07\/phpverse-4.webp?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2344,"url":"https:\/\/chewett.co.uk\/blog\/2344\/my-github-noops-hexbot\/","url_meta":{"origin":2120,"position":4},"title":"My Github Noops Hexbot","author":"Chewett","date":"September 7, 2019","format":false,"excerpt":"This blog post talks about my entry to the Github Noops Challenge for the Hexbot API. What the API does? This API lets you retrieve one or many random hex codes. This relatively simple API gives a lot of scope to try various different ways of using a hex code.\u2026","rel":"","context":"In &quot;Software&quot;","block_context":{"text":"Software","link":"https:\/\/chewett.co.uk\/blog\/category\/software\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/09\/github_hexbot.jpg?fit=800%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/09\/github_hexbot.jpg?fit=800%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/09\/github_hexbot.jpg?fit=800%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2019\/09\/github_hexbot.jpg?fit=800%2C800&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2670,"url":"https:\/\/chewett.co.uk\/blog\/2670\/pokemon-go-api-badges-api\/","url_meta":{"origin":2120,"position":5},"title":"Pokemon Go API &#8211; Badges API","author":"Chewett","date":"October 31, 2020","format":false,"excerpt":"This post talks about the latest API I have added to PoGoAPI.net, the Badges API. What is the Badges API While playing Pokemon Go, certain actions are tracked and your progress is logged in the form of badges. When you reach certain milestones you are given a badge to mark\u2026","rel":"","context":"In &quot;Software&quot;","block_context":{"text":"Software","link":"https:\/\/chewett.co.uk\/blog\/category\/software\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/10\/pogo_api_badges_posticon_OUTPUT.png?fit=1200%2C628&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/10\/pogo_api_badges_posticon_OUTPUT.png?fit=1200%2C628&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/10\/pogo_api_badges_posticon_OUTPUT.png?fit=1200%2C628&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/10\/pogo_api_badges_posticon_OUTPUT.png?fit=1200%2C628&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/10\/pogo_api_badges_posticon_OUTPUT.png?fit=1200%2C628&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/posts\/2120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=2120"}],"version-history":[{"count":2,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/posts\/2120\/revisions"}],"predecessor-version":[{"id":2126,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/posts\/2120\/revisions\/2126"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/media\/2125"}],"wp:attachment":[{"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=2120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=2120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=2120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}