{"id":1121,"date":"2025-02-21T18:40:22","date_gmt":"2025-02-21T18:40:22","guid":{"rendered":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/?p=1121"},"modified":"2025-02-21T18:40:23","modified_gmt":"2025-02-21T18:40:23","slug":"week-6-graph-neural-networks","status":"publish","type":"post","link":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/2025\/02\/21\/week-6-graph-neural-networks\/","title":{"rendered":"Week 6: Graph Neural Networks"},"content":{"rendered":"\n<p>This week, our team continued to work on building our AI agent. We considered the potential for newer methods of representing the game board.<\/p>\n\n\n\n<p>Training an AI to play a game requires some representation of the game&#8217;s state. For board games like Chess or Go, it&#8217;s easy to programmatically recreate the game board using a 2D vector or matrix. Each matrix element would contain information about the piece in the corresponding space. Adjacent spaces are easy to calculate: you would adjust the row or column index by 1 to get the space up, down, left, or right.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1022\" height=\"1024\" src=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-content\/uploads\/sites\/177\/2025\/02\/image-1022x1024.png\" alt=\"\" class=\"wp-image-1123\" style=\"width:485px;height:auto\" srcset=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-content\/uploads\/sites\/177\/2025\/02\/image-1022x1024.png 1022w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-content\/uploads\/sites\/177\/2025\/02\/image-300x300.png 300w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-content\/uploads\/sites\/177\/2025\/02\/image-150x150.png 150w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-content\/uploads\/sites\/177\/2025\/02\/image-768x769.png 768w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-content\/uploads\/sites\/177\/2025\/02\/image-1533x1536.png 1533w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-content\/uploads\/sites\/177\/2025\/02\/image-210x210.png 210w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-content\/uploads\/sites\/177\/2025\/02\/image.png 1597w\" sizes=\"(max-width: 1022px) 100vw, 1022px\" \/><figcaption class=\"wp-element-caption\">Diagram of the Catan board, drawn by Brian Magnuson.<\/figcaption><\/figure>\n\n\n\n<p>With <em>Catan<\/em>, however, the game is played on a hexagonal board rather than a square grid. Thus, it becomes difficult to represent the board using vectors. Even if one numbers each vertex (like in the diagram above), determining which vertices are adjacent is not intuitive. Because of this, it is easier to represent the board using a <em>graph data structure<\/em> instead.<\/p>\n\n\n\n<p>This gave us the idea of using an artificial neural network specialized for graphs: Graph Neural Networks (GNNs). There would be 54 nodes total, one for each vertex in the game, with 72 edges connecting them. Each node has an associated feature vector detailing the pieces on the corresponding vertex and the adjacent tiles. Each edge also has an associated feature vector for any road placed on that edge. We hope that GNNs will provide a new means of representing the game board and improve the overall model&#8217;s understanding of the game of <em>Catan<\/em>.<\/p>\n\n\n\n<p>Next week, we have our second Qualification Review Board (QRB) presentation, where we will once again present our project and hopefully get feedback on our new testing plan.<\/p>\n\n\n\n<p>That&#8217;s all for now! See you next week!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week, our team continued to work on building our AI agent. We considered the potential for newer methods of representing the game board. Training an AI to play a game requires some representation of the game&#8217;s state. For board&hellip; <a href=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/2025\/02\/21\/week-6-graph-neural-networks\/\" aria-label=\"Read \\\"Week 6: Graph Neural Networks\\\" class=\"read-more\">Read&nbsp;More<\/a><\/p>\n","protected":false},"author":617,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[12],"tags":[],"class_list":["post-1121","post","type-post","status-publish","format-standard","hentry","category-springsemester"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/posts\/1121"}],"collection":[{"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/users\/617"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/comments?post=1121"}],"version-history":[{"count":2,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/posts\/1121\/revisions"}],"predecessor-version":[{"id":1129,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/posts\/1121\/revisions\/1129"}],"wp:attachment":[{"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/media?parent=1121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/categories?post=1121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team03\/wp-json\/wp\/v2\/tags?post=1121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}