{"id":382,"date":"2026-04-06T17:16:38","date_gmt":"2026-04-06T17:16:38","guid":{"rendered":"https:\/\/www.rickykurosawa.com\/?page_id=382"},"modified":"2026-06-27T15:29:12","modified_gmt":"2026-06-27T15:29:12","slug":"modeling-collective-motion-with-optimal-control","status":"publish","type":"page","link":"https:\/\/www.rickykurosawa.com\/?page_id=382","title":{"rendered":"Modeling Collective Motion with Optimal Control"},"content":{"rendered":"<p><script><br \/>\nwindow.MathJax = {<br \/>\n  tex: {<br \/>\n    inlineMath: [['\\\\(','\\\\)']],<br \/>\n    displayMath: [['$$','$$']]<br \/>\n  },<br \/>\n  svg: {<br \/>\n    fontCache: 'global'<br \/>\n  }<br \/>\n};<br \/>\n<\/script><br \/>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/mathjax@3\/es5\/tex-svg.js\" async><\/script><\/p>\n\n\n<p class=\"wp-block-paragraph\">Collective motion describes the motion of a group. These members of the group are referred to as agents. Examples in nature of collective motion are schools of fish, flocks of birds, and colonies of bacteria. \n<br>\n<br>\nIn this research with Professor <a href=\"https:\/\/www.andyborum.com\" target=\"_blank\" rel=\"noopener\">Andy Borum<\/a>, we analyze collective motion through the lens of optimal control theory. We treat variables such as agent velocity or agent angle as control inputs to optimize our cost function. As we increase the number of agents in our system, we can incorporate synchronization of motion through coupling parameters. We explore the optimal trajectories with this setup.<\/p>\n\n\n\n<h2>Example Setup<\/h2>\n\n\n\n<p>\nVisually, each agent&#8217;s motion in 2D can be described with 3 variables shown below.\n<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"730\" src=\"https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1-1024x730.jpg\" alt=\"\" class=\"wp-image-396\" style=\"width:419px;height:auto\" srcset=\"https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1-1024x730.jpg 1024w, https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1-300x214.jpg 300w, https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1-768x547.jpg 768w, https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1.jpg 1344w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Visualization of an agent&#8217;s state.<\/figcaption><\/figure>\n\n\n\n<p>\nWith these variables, our optimal control problem looks like the following.\n<\/p>\n\n<p>\n$$\n\\begin{aligned}\n\\min_{x,u} \\quad &#038; \\int_{t_0}^{t_f} g(x(t),u(t))\\,dt \\\\\n\\text{subject to} \\quad &#038; \\dot{x}(t)=f(x(t),u(t)), \\\\\n&#038; x(0)=x_0,\\quad x(t_f)=x_f\n\\end{aligned}\n$$\n<\/p>\n\n<p>\nFor us, we impose an ice skate constraint, meaning the velocity of the robot is only in the heading direction (zero velocity in the perpendicular direction). This makes \\(\\dot{x}\\) look like the case below.\n<\/p>\n\n<p>\n$$\n\\begin{align}\n\\dot{x} &#038;= \\begin{pmatrix}\nv\\cos(\\theta)\\\\\nv\\sin(\\theta)\\\\\nu\n\\end{pmatrix}\n\\end{align}\n$$\n<\/p>\n\n\n\n<h3>\nUpdates coming soon!\n<\/h3>\n\n","protected":false},"excerpt":{"rendered":"<p>Collective motion describes the motion of a group. These members of the group are referred to as agents. Examples in nature of collective motion are schools of fish, flocks of birds, and colonies of bacteria. In this research with Professor Andy Borum, we analyze collective motion through the lens of optimal control theory. We treat [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-382","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Modeling Collective Motion with Optimal Control - Ricky Kurosawa<\/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.rickykurosawa.com\/?page_id=382\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modeling Collective Motion with Optimal Control - Ricky Kurosawa\" \/>\n<meta property=\"og:description\" content=\"Collective motion describes the motion of a group. These members of the group are referred to as agents. Examples in nature of collective motion are schools of fish, flocks of birds, and colonies of bacteria. In this research with Professor Andy Borum, we analyze collective motion through the lens of optimal control theory. We treat [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rickykurosawa.com\/?page_id=382\" \/>\n<meta property=\"og:site_name\" content=\"Ricky Kurosawa\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-27T15:29:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1344\" \/>\n\t<meta property=\"og:image:height\" content=\"958\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.rickykurosawa.com\\\/?page_id=382\",\"url\":\"https:\\\/\\\/www.rickykurosawa.com\\\/?page_id=382\",\"name\":\"Modeling Collective Motion with Optimal Control - Ricky Kurosawa\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rickykurosawa.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.rickykurosawa.com\\\/?page_id=382#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rickykurosawa.com\\\/?page_id=382#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rickykurosawa.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/variables-1-1024x730.jpg\",\"datePublished\":\"2026-04-06T17:16:38+00:00\",\"dateModified\":\"2026-06-27T15:29:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.rickykurosawa.com\\\/?page_id=382#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.rickykurosawa.com\\\/?page_id=382\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rickykurosawa.com\\\/?page_id=382#primaryimage\",\"url\":\"https:\\\/\\\/www.rickykurosawa.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/variables-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.rickykurosawa.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/variables-1.jpg\",\"width\":1344,\"height\":958,\"caption\":\"Screenshot\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.rickykurosawa.com\\\/?page_id=382#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.rickykurosawa.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Modeling Collective Motion with Optimal Control\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.rickykurosawa.com\\\/#website\",\"url\":\"https:\\\/\\\/www.rickykurosawa.com\\\/\",\"name\":\"Ricky Kurosawa\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.rickykurosawa.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Modeling Collective Motion with Optimal Control - Ricky Kurosawa","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.rickykurosawa.com\/?page_id=382","og_locale":"en_US","og_type":"article","og_title":"Modeling Collective Motion with Optimal Control - Ricky Kurosawa","og_description":"Collective motion describes the motion of a group. These members of the group are referred to as agents. Examples in nature of collective motion are schools of fish, flocks of birds, and colonies of bacteria. In this research with Professor Andy Borum, we analyze collective motion through the lens of optimal control theory. We treat [&hellip;]","og_url":"https:\/\/www.rickykurosawa.com\/?page_id=382","og_site_name":"Ricky Kurosawa","article_modified_time":"2026-06-27T15:29:12+00:00","og_image":[{"width":1344,"height":958,"url":"https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.rickykurosawa.com\/?page_id=382","url":"https:\/\/www.rickykurosawa.com\/?page_id=382","name":"Modeling Collective Motion with Optimal Control - Ricky Kurosawa","isPartOf":{"@id":"https:\/\/www.rickykurosawa.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.rickykurosawa.com\/?page_id=382#primaryimage"},"image":{"@id":"https:\/\/www.rickykurosawa.com\/?page_id=382#primaryimage"},"thumbnailUrl":"https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1-1024x730.jpg","datePublished":"2026-04-06T17:16:38+00:00","dateModified":"2026-06-27T15:29:12+00:00","breadcrumb":{"@id":"https:\/\/www.rickykurosawa.com\/?page_id=382#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.rickykurosawa.com\/?page_id=382"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rickykurosawa.com\/?page_id=382#primaryimage","url":"https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1.jpg","contentUrl":"https:\/\/www.rickykurosawa.com\/wordpress\/wp-content\/uploads\/2026\/04\/variables-1.jpg","width":1344,"height":958,"caption":"Screenshot"},{"@type":"BreadcrumbList","@id":"https:\/\/www.rickykurosawa.com\/?page_id=382#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.rickykurosawa.com\/"},{"@type":"ListItem","position":2,"name":"Modeling Collective Motion with Optimal Control"}]},{"@type":"WebSite","@id":"https:\/\/www.rickykurosawa.com\/#website","url":"https:\/\/www.rickykurosawa.com\/","name":"Ricky Kurosawa","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rickykurosawa.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.rickykurosawa.com\/index.php?rest_route=\/wp\/v2\/pages\/382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rickykurosawa.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.rickykurosawa.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.rickykurosawa.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rickykurosawa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=382"}],"version-history":[{"count":32,"href":"https:\/\/www.rickykurosawa.com\/index.php?rest_route=\/wp\/v2\/pages\/382\/revisions"}],"predecessor-version":[{"id":510,"href":"https:\/\/www.rickykurosawa.com\/index.php?rest_route=\/wp\/v2\/pages\/382\/revisions\/510"}],"wp:attachment":[{"href":"https:\/\/www.rickykurosawa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}