{"id":199,"date":"2023-06-12T12:55:02","date_gmt":"2023-06-12T11:55:02","guid":{"rendered":"https:\/\/blogs.imperial.ac.uk\/computing\/?p=199"},"modified":"2023-06-13T14:25:57","modified_gmt":"2023-06-13T13:25:57","slug":"min-maxing-your-groceries-and-other-computing-problems","status":"publish","type":"post","link":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/","title":{"rendered":"Min-Maxing your Groceries and other Computing Problems"},"content":{"rendered":"<p>Hi, I\u2019m Hamish; I\u2019m from Watford, UK, and I\u2019m a first-year student in Computing at Imperial. I like programming, Linear Algebra and modern foreign languages. I play water polo for IC 2s and hope to represent Imperial in Competitive Programming next year. Let\u2019s connect on <a href=\"https:\/\/www.linkedin.com\/in\/hamish-starling-147859235\/\">LinkedIn<\/a>!<img loading=\"lazy\" decoding=\"async\" width=\"274\" height=\"300\" class=\"alignright wp-image-192 size-medium\" src=\"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2-274x300.jpg\" alt=\"Photo of Hamish\" \/><\/p>\n<hr \/>\n<p>Often while wandering around doing whatever students do, I discover a relationship to what I\u2019ve learnt in Algorithms or Competitive Programming, so I wanted to share some cases I\u2019ve thought about recently where computing is <a href=\"https:\/\/xkcd.com\/1831\/\">Here To Help<\/a> with student life.<\/p>\n<p><!--more--><\/p>\n<h3>O(N) Supermarket Sweep<\/h3>\n<p>There are many ways to go about shopping. I started with a \u201cstochastic\u201d algorithm ( \ud83d\ude1b ) &#8211; go to the supermarket and arbitrarily select groceries that seem useful.<\/p>\n<p>Unfortunately, this isn\u2019t effective; it has a low chance of yielding all correct items. A popular solution is a shopping list, which guarantees you get everything you need, but there\u2019s a problem: if you traverse the list item-by-item and find each one in the store, you visit the whole supermarket for every list item in the worst case. This is O(nm) [m = size of list and n = size of supermarket].<\/p>\n<p>We want an O(n) algorithm, so here\u2019s a new plan: go through the supermarket linearly from entrance to exit and check if each item you see is on the list. This way I only make one pass through the supermarket<span style=\"font-size: 50%;vertical-align: super\">1<\/span> &#8211; much faster. Alas, something tells me my algorithm isn\u2019t <a href=\"https:\/\/en.wikipedia.org\/wiki\/Supermarket_Sweep_(British_game_show)\">exactly original<\/a> so if we want any chance of a paper on this, we\u2019ll have to move on to another problem.<\/p>\n<h3>Getting the Maximum from the Minimum<\/h3>\n<p>The other day when cooking this problem arose: you have a set of ingredients and several recipes. You want to feed yourself as many times as possible with these recipes and ingredients, but you don\u2019t mind eating the same recipe several times. Thinking a bit, I concluded that the problem is similar to <a href=\"https:\/\/en.wikipedia.org\/wiki\/Change-making_problem\">Coin Change<\/a> and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Knapsack_problem\">0-1 knapsack<\/a>; we can solve by Dynamic Programming. Define max_recipes(X) taking the set of remaining ingredients and returning the maximum number of recipes we can cook. max_recipes(X) = maximum over recipes Ri of (1 + max_recipes(X \\ Ri)). The same X can arise via different recipe choices, so cache results. This is O(no. ingredient sets), which could be exponential ( \ud83d\ude41 ). This doesn\u2019t really matter since the number of ingredients is small. Also, if the problem is as difficult as CC or 0-1K it would be impossible to do substantially better. Leave a comment below if you have a better algorithm or a proof of NP-completeness.<\/p>\n<h3>Computing Can Help You Find Love<span style=\"font-size: 50%;vertical-align: super\">2<\/span><\/h3>\n<p>There are k locations on campus where you can meet potential suitors; some yield more promising candidates than others. On each of n iterations, choose a location and evaluate the first individual there. At the end you can date the seen candidate with the highest evaluation score. What is your strategy to have the best date at the end? This is a version of the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Multi-armed_bandit\">k-armed bandit<\/a> problem. Instead of total reward we\u2019re maximising maximum reward (you only have one date at the end). Various <a href=\"https:\/\/en.wikipedia.org\/wiki\/Multi-armed_bandit#Bandit_strategies\">methods<\/a> have been devised for this problem<span style=\"font-size: 50%;vertical-align: super\">3<\/span>; the gist is that you want to allocate some time to \u201cexploring\u201d (working out which locations offer higher rewards), and the rest to \u201cexploiting\u201d your knowledge of the best places, selecting them every time.<\/p>\n<h3>Concluding<\/h3>\n<p>Obviously, these analyses are simplified for the blog post format, but I enjoyed coming up with them, so hopefully you enjoyed reading them. I\u2019ll leave you with one of my all-time favourite topics<span style=\"font-size: 50%;vertical-align: super\">4<\/span>: IC 2s water polo team competes in a league. Teams get 2 points for winning and 1 point for drawing. Determine (efficiently), from the league table and matches remaining whether IC 2s can still win the league.<\/p>\n<hr \/>\n<p><span style=\"font-size: 50%;vertical-align: super\">1<\/span> Like in all good algorithms analysis, we neglect reading time of the shopping list as this is insignificant compared to walking time.<\/p>\n<p><span style=\"font-size: 50%;vertical-align: super\">2<\/span> To be honest, I had to engineer this a bit and it\u2019s not all that realistic, but I still think it\u2019s a fun one<\/p>\n<p><span style=\"font-size: 50%;vertical-align: super\">3<\/span> These will be affected by the maximum modification to the problem in this case.<\/p>\n<p><span style=\"font-size: 50%;vertical-align: super\">4<\/span> Network Flow \/ \u201cBaseball Elimination Problem\u201d.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi, I\u2019m Hamish; I\u2019m from Watford, UK, and I\u2019m a first-year student in Computing at Imperial. I like programming, Linear Algebra and modern foreign languages. I play water polo for IC 2s and hope to represent Imperial in Competitive Programming next year. Let\u2019s connect on LinkedIn! Often while wandering around doing whatever students do, I [&hellip;]<\/p>\n","protected":false},"author":1399,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48173],"tags":[],"class_list":["post-199","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Min-Maxing your Groceries and other Computing Problems - Imperial Computing<\/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:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Min-Maxing your Groceries and other Computing Problems - Imperial Computing\" \/>\n<meta property=\"og:description\" content=\"Hi, I\u2019m Hamish; I\u2019m from Watford, UK, and I\u2019m a first-year student in Computing at Imperial. I like programming, Linear Algebra and modern foreign languages. I play water polo for IC 2s and hope to represent Imperial in Competitive Programming next year. Let\u2019s connect on LinkedIn! Often while wandering around doing whatever students do, I [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/\" \/>\n<meta property=\"og:site_name\" content=\"Imperial Computing\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-12T11:55:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-13T13:25:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2-274x300.jpg\" \/>\n<meta name=\"author\" content=\"Blog Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Blog Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/\"},\"author\":{\"name\":\"Blog Admin\",\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/#\/schema\/person\/15503306d82b14d1cf6d846a33bce56c\"},\"headline\":\"Min-Maxing your Groceries and other Computing Problems\",\"datePublished\":\"2023-06-12T11:55:02+00:00\",\"dateModified\":\"2023-06-13T13:25:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/\"},\"wordCount\":721,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2-274x300.jpg\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/\",\"url\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/\",\"name\":\"Min-Maxing your Groceries and other Computing Problems - Imperial Computing\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2-274x300.jpg\",\"datePublished\":\"2023-06-12T11:55:02+00:00\",\"dateModified\":\"2023-06-13T13:25:57+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/#\/schema\/person\/15503306d82b14d1cf6d846a33bce56c\"},\"breadcrumb\":{\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#primaryimage\",\"url\":\"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2.jpg\",\"contentUrl\":\"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2.jpg\",\"width\":1377,\"height\":1508,\"caption\":\"Photo of Hamish\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.imperial.ac.uk\/computing\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Min-Maxing your Groceries and other Computing Problems\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/#website\",\"url\":\"https:\/\/blogs.imperial.ac.uk\/computing\/\",\"name\":\"Imperial Computing\",\"description\":\"Imperial Computing\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.imperial.ac.uk\/computing\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.imperial.ac.uk\/computing\/#\/schema\/person\/15503306d82b14d1cf6d846a33bce56c\",\"name\":\"Blog Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/4c32929fd2f8b5a45c39e0705971d10f1af53bd925457f72e7409551ee48b06a?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4c32929fd2f8b5a45c39e0705971d10f1af53bd925457f72e7409551ee48b06a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4c32929fd2f8b5a45c39e0705971d10f1af53bd925457f72e7409551ee48b06a?s=96&d=mm&r=g\",\"caption\":\"Blog Admin\"},\"url\":\"https:\/\/blogs.imperial.ac.uk\/computing\/author\/aidle\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Min-Maxing your Groceries and other Computing Problems - Imperial Computing","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:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/","og_locale":"en_GB","og_type":"article","og_title":"Min-Maxing your Groceries and other Computing Problems - Imperial Computing","og_description":"Hi, I\u2019m Hamish; I\u2019m from Watford, UK, and I\u2019m a first-year student in Computing at Imperial. I like programming, Linear Algebra and modern foreign languages. I play water polo for IC 2s and hope to represent Imperial in Competitive Programming next year. Let\u2019s connect on LinkedIn! Often while wandering around doing whatever students do, I [&hellip;]","og_url":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/","og_site_name":"Imperial Computing","article_published_time":"2023-06-12T11:55:02+00:00","article_modified_time":"2023-06-13T13:25:57+00:00","og_image":[{"url":"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2-274x300.jpg","type":"","width":"","height":""}],"author":"Blog Admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Blog Admin","Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#article","isPartOf":{"@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/"},"author":{"name":"Blog Admin","@id":"https:\/\/blogs.imperial.ac.uk\/computing\/#\/schema\/person\/15503306d82b14d1cf6d846a33bce56c"},"headline":"Min-Maxing your Groceries and other Computing Problems","datePublished":"2023-06-12T11:55:02+00:00","dateModified":"2023-06-13T13:25:57+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/"},"wordCount":721,"commentCount":0,"image":{"@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2-274x300.jpg","inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/","url":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/","name":"Min-Maxing your Groceries and other Computing Problems - Imperial Computing","isPartOf":{"@id":"https:\/\/blogs.imperial.ac.uk\/computing\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#primaryimage"},"image":{"@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2-274x300.jpg","datePublished":"2023-06-12T11:55:02+00:00","dateModified":"2023-06-13T13:25:57+00:00","author":{"@id":"https:\/\/blogs.imperial.ac.uk\/computing\/#\/schema\/person\/15503306d82b14d1cf6d846a33bce56c"},"breadcrumb":{"@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#primaryimage","url":"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2.jpg","contentUrl":"https:\/\/blogs.imperial.ac.uk\/computing\/files\/2023\/05\/Hamish2.jpg","width":1377,"height":1508,"caption":"Photo of Hamish"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.imperial.ac.uk\/computing\/2023\/06\/12\/min-maxing-your-groceries-and-other-computing-problems\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.imperial.ac.uk\/computing\/"},{"@type":"ListItem","position":2,"name":"Min-Maxing your Groceries and other Computing Problems"}]},{"@type":"WebSite","@id":"https:\/\/blogs.imperial.ac.uk\/computing\/#website","url":"https:\/\/blogs.imperial.ac.uk\/computing\/","name":"Imperial Computing","description":"Imperial Computing","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.imperial.ac.uk\/computing\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/blogs.imperial.ac.uk\/computing\/#\/schema\/person\/15503306d82b14d1cf6d846a33bce56c","name":"Blog Admin","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/4c32929fd2f8b5a45c39e0705971d10f1af53bd925457f72e7409551ee48b06a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4c32929fd2f8b5a45c39e0705971d10f1af53bd925457f72e7409551ee48b06a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4c32929fd2f8b5a45c39e0705971d10f1af53bd925457f72e7409551ee48b06a?s=96&d=mm&r=g","caption":"Blog Admin"},"url":"https:\/\/blogs.imperial.ac.uk\/computing\/author\/aidle\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/posts\/199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/users\/1399"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/comments?post=199"}],"version-history":[{"count":21,"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/posts\/199\/revisions"}],"predecessor-version":[{"id":221,"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/posts\/199\/revisions\/221"}],"wp:attachment":[{"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/media?parent=199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/categories?post=199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.imperial.ac.uk\/computing\/wp-json\/wp\/v2\/tags?post=199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}