{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# OPTaaS Multi-Objective\n", "\n", "### Note: To run this notebook, you need an API Key. You can get one here.\n", "\n", "OPTaaS can optimize multiple objectives within a single Task. Your scoring function should return a named list of scores for each objective." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define your parameters and objectives\n", "We will use [this multi-objective optimization example](https://sop.tik.ee.ethz.ch/download/supplementary/testproblems/dtlz2/index.php#Formulation):" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": false }, "outputs": [], "source": [ "library(optaas.client)\n", "\n", "parameters <- list(\n", " FloatParameter('x1', minimum=0, maximum=1),\n", " FloatParameter('x2', minimum=0, maximum=1)\n", ")\n", "\n", "# goal can be \"max\" or \"min\"\n", "objectives <- list(\n", " Objective(id=\"f1\", goal=\"max\", min_known_score=0, max_known_score=1.5),\n", " Objective(id=\"f2\", goal=\"max\", min_known_score=0, max_known_score=1.5)\n", ")\n", "\n", "scoring_function <- function(x1, x2) {\n", " g <- ((x1 - 0.5) ** 2) + ((x2 - 0.5) ** 2)\n", " x1_pi2 <- x1 * pi / 2\n", " f1 = (1 + g) * cos(x1_pi2)\n", " f2 = (1 + g) * sin(x1_pi2)\n", " list(f1=f1, f2=f2)\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Connect to OPTaaS using your API Key" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "client <- OPTaaSClient$new(\"https://optaas.mindfoundry.ai\", \"Your OPTaaS API Key\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create your Task" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "task <- client$create_task(\n", " title=\"Multi-objective Example\",\n", " parameters=parameters,\n", " objectives=objectives,\n", " initial_configurations=4\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run your Task\n", "We can specify a score threshold for each objective. If not specified, this will default to the min/max known score.\n", "\n", "At the end we will retrieve the set of Pareto front Results. These are the Results where, for each objective, the score cannot be improved without reducing the score for another objective." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] \"Running Multi-objective Example for 20 iterations\"\n", "[1] \"(or until score is f1=1.1, f2=1.5 or better)\"\n", "[1] \"Iteration: 1 Score: f1=0.707106781186548, f2=0.707106781186547\"\n", "[1] \"Iteration: 2 Score: f1=0.430518861410726, f2=1.0393644740752\"\n", "[1] \"Iteration: 3 Score: f1=1.0393644740752, f2=0.430518861410726\"\n", "[1] \"Iteration: 4 Score: f1=0.857453037687, f2=0.572931802801465\"\n", "[1] \"Iteration: 5 Score: f1=4.71238886255462e-08, f2=1.49999996\"\n", "[1] \"Iteration: 6 Score: f1=0.693347672022075, f2=1.06078589681993\"\n", "[1] \"Iteration: 7 Score: f1=1.5, f2=0\"\n", "[1] \"Iteration: 8 Score: f1=1.00275606139537, f2=0.759065036710275\"\n", "[1] \"Iteration: 9 Score: f1=0.83230727769625, f2=0.934421561576494\"\n", "[1] \"Iteration: 10 Score: f1=4.71238892538648e-08, f2=1.49999998\"\n", "[1] \"Iteration: 11 Score: f1=0.627367026589036, f2=1.11601654068843\"\n", "[1] \"Iteration: 12 Score: f1=0.122705117600629, f2=1.26915337665617\"\n", "[1] \"Iteration: 13 Score: f1=1.22629476576581, f2=0.483340222031968\"\n", "[1] \"Iteration: 14 Score: f1=0.0904538947889019, f2=1.45934354003015\"\n", "[1] \"Iteration: 15 Score: f1=0.833306917307626, f2=0.93346145966354\"\n", "[1] \"Iteration: 16 Score: f1=1.09827204717115, f2=0.648959977642791\"\n", "[1] \"Iteration: 17 Score: f1=0.996944864856093, f2=0.765460586860277\"\n", "[1] \"Iteration: 18 Score: f1=1.04972495764162, f2=0.706143968267313\"\n", "[1] \"Iteration: 19 Score: f1=0.853934784187775, f2=0.913479450499351\"\n", "[1] \"Iteration: 20 Score: f1=0.610062034921532, f2=1.13000702482049\"\n", "[1] \"Task Completed\"\n" ] } ], "source": [ "score_threshold <- list(f1=1.1)\n", "pareto_set <- task$run(scoring_function=scoring_function, number_of_iterations=20, score_threshold=score_threshold)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot the Pareto front\n", "Points in blue represent all the evaluated Results. The red line represents the Pareto front." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nLsQyxW7w4MGLFi368+O8efP69Olz+vTptm3bRkdHh4WFrVu3rn79+klJSQZDAgDwl1de0SOP\nqE0b7d1rOgpchWWK3TX69+/v5+e3fv36WbNmffbZZytXrpw5c+Yff/zxJkf1AQCchMOhzz9X\nxYqKjNSJE6bTwCVYstgdPXr0119/ffrpp4OCgv682K5du9atW3/77bcGgwEA8Deenpo5Uw6H\nOnXShQum08D+LFnszp49K+nqVpehcuXKR44cMZEIAIAb8PPTV19pwwb16WM6CuzPksWuSJEi\nfn5++/fvv+b6gQMHfH19jUQCAOCGSpfW119ryhQNH246CmzOSsVu7969CQkJO3bsSE5O7tu3\n75gxY06fPv3n3W3btk2bNi0sLMxgQgAArq9GDf3f/2nQIE2ZYjoK7MxK+9hNmTJlyt9/HhYs\nWNC+fXtJkydPjoqKOnPmzODBgw2lAwDgph55RG++qV69VKqUatc2nQb2ZJliN27cuJSrnDhx\nIiUlJW/evBl3U1JS/P39p06dWqNGDbM5AQC4oZgY7d2rVq20erXKljWdBjZkmWLXo0ePm9zt\n3r17nz593NysNLMMAHBFI0dq7161bKlVq3RleALILDZpQj4+PrQ6AIAFuLtr8mR5e6tNG507\nZzoN7MYyI3ZZJzU19cJN9xa6eokGAAD3ytdX8+frwQfVo4cmT5bDYToQ7MM+xS4pKSk6OlpS\nXFzcHX1VYGBgenr6LZ+8nWcAALgtRYpo7lzVq6fXX9eQIabTwD7sU+xSU1OXLFlyp19VpkyZ\nTZs2Zex4fCOzZs166623HPyNCgCQiapV07Rpat1apUurWzdJyclKTlapUuLdItw1+xS7ChUq\nbNq06S6+sFKlSjd/ICEh4a4SAQBwU5GR+vhj9e4984eiA+Y33L1bknLlUrNmevddlS5tOB2s\nyD5/KciRI0flypUrV65sOggAALcr/cmohaWfavhph1ce3b5+vfbu1fTpOn5coaH6+WfT4WBB\n1huxS09P37Vr186dO1NTUyX5+fkFBgYWL17cdC4AAO7YzJl6fM97Bxvs6TGtmfr/oAIFihdX\ns2Zq21ZPPqn4eNP5YDVWKnbJyclvvvnmF198ceTIkWtulShRonfv3gMGDMiZM6eRbAAA3IXx\n49W1u1ueEZPVoIFatNCyZcqVy81Nw4YpKEi//KJy5UxHhKVYptgdPHgwLCxs165dgYGBkZGR\n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", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "all_results <- task$get_results()\n", "f1 <- lapply(all_results, function(result) {result$score$f1})\n", "f2 <- lapply(all_results, function(result) {result$score$f2})\n", "plot(f1, f2, col=\"blue\")\n", "\n", "ordered_pareto_set <- pareto_set[order(sapply(pareto_set, function(result) {result$score$f1}))]\n", "pareto_f1 <- lapply(ordered_pareto_set, function(result) {result$score$f1})\n", "pareto_f2 <- lapply(ordered_pareto_set, function(result) {result$score$f2})\n", "lines(pareto_f1, pareto_f2, col=\"red\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot the Pareto front on the domain space\n", "Blue circles represent all the evaluated Results. Red crosses represent the Pareto set." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAIAAAByhViMAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nOzdeUDVdb7/8fdhR5BFdFQSUJHcyBQNMyJTpzG1vKSJ5WQ1ROklnV8YLmMu\n6ETmjJlmNkNTt9IWL4qOXTUbJTVFckVEcgPJJQEnIT2AgMDn9wfmlClucL58Pzwff+XZeGl2\neHa+58uxKKUEAAAA5mdn9AAAAADUDcIOAABAE4QdAACAJgg7AAAATRB2AAAAmiDsAAAANEHY\nAQAAaIKwAwAA0ARhBwAAoAnCDgAAQBOEHQAAgCYIOwAAAE0QdgAAAJog7AAAADRB2AEAAGiC\nsAMAANAEYQcAAKAJwg4AAEAThB0AAIAmCDsAAABNEHYAAACaIOwAAAA0QdgBAABogrADAADQ\nBGEHAACgCcIOAABAE4QdAACAJgg7AAAATRB2AAAAmiDsAAAANEHYAQAAaIKwAwAA0ARhBwAA\noAnCDgAAQBOEHQAAgCYIOwAAAE0QdgAAAJog7AAAADRB2AEAAGiCsAMAANAEYQcAAKAJwg4A\nAEAThB0AAIAmCDsAAABNEHYAAACaIOwAAAA0QdgBAABogrADAADQBGEHAACgCcIOAABAE4Qd\nAACAJgg7AAAATRB2AAAAmiDsAAAANEHYAQAAaIKwAwAA0ARhBwAAoAnCDgAAQBOEHQAAgCYI\nOwAAAE0QdgAAAJog7AAAADRB2AEAAGiCsAMAANAEYQcAAKAJwg4AAEAThB0AAIAmCDsAAABN\nEHYAAACaIOwAAAA0QdgBAABogrADAADQBGEHAACgCcIOAABAE4QdAACAJgg7AAAATRB2AAAA\nmiDsAAAANEHYAQAAaIKwAwAA0ARhBwAAoAnCDgAAQBOEHQAAgCYIOwAAAE0QdgAAAJog7AAA\nADRB2AEAAGiCsAMAANAEYQcAAKAJwg4AAEAThB0AAIAmCDsAAABNEHYAAACaIOwAAAA0QdgB\nAABogrADAADQhIPRA8whIyOjsrLS6BUAAKBBcHBwuPvuu41ecRWE3fXt3r37nnvuMXoFAABo\nQHbt2tWrVy+jV1yJsLu+iooKESkvL3dycjJ6CwAAMFhFRYWzs3NNHjQ0vMcOAABAE4QdAACA\nJgg7AAAATRB2AAAAmiDsAAAANEHYAQAAaIKwAwAA0IT5fo6dUio3N/fYsWNWq1VEPD09g4KC\n/Pz8jN4FAABgMDOFXVFRUUJCwtKlS8+cOXPFVf7+/tHR0XFxca6uroZsAwAAMJxpwi4vLy8s\nLCw3NzcoKGjw4MEBAQFubm4icv78+ZycnC1btsyYMSM5OXnTpk3e3t5GjwUAADCAacJu+vTp\np06dSkpKGjFixK+vraqqSkxMHDdu3KxZsxYsWGD7eQAAAIYzzckTa9euHT169FWrTkTs7e1j\nYmIiIyNXrlxp42EAAAANhGnC7uzZs4GBgbXfpnPnzgUFBbbZAwAA0NCYJux8fX0zMjJqv016\nerqvr69t9gAAADQ0pgm7iIiI5cuXz5s3r7y8/NfXlpSUzJw5c/Xq1SNHjrT9NgAAgIbAopQy\nesMN+fHHHwcMGLB3796mTZuGhob6+fm5u7srpYqLi48fP75z587S0tLw8PB169a5u7vX7Zfe\nvn17WFhYeXm5k5NT3T4yAAAwnYqKCmdn59TU1Pvuu8/oLVcyzVmxXl5eaWlpixcvXrJkyebN\nm6uqqi5f5ejo2LNnz6ioqKioKHt7ewNHAg3dggVSUVHy4qQlS+Sbb+T4cenQQcLD5cknlNP0\nydK9u4waZaMlJSUycqS88cb+8o6ffiqZmSIid90lo0ZJN5cj8vLLsmyZuLnZaEyd2L5d/vY3\nlfjumhTXL76Qw4eleXPp2VP+8AdpsXm5/OMfcs895dNf/eRTS2qq5ORI27Zy330yerS4zk8Q\nb2+JiTH6N2AT06ZJ+/ZFj0V9+KHs2iX5+XLnnTJggAwfetFu/Ivy+OPyu98ZPREa2r9frnye\n6Wb0pnpjmkOxIuLk5BQbG5uenl5cXHzkyJE9e/bs2bPn6NGjxcXFaWlpzz//PFUHXEenTmr6\njPf9Z82eLQ4O8uCDUl4uE2LVmjZjVeK70rGj7Za4uIiDQ3Fo/ydDDqelSdeu0rWrpKXJkyGH\ni+/pJ/b2YrofNh4QoLal7g949JnIC2fOyP33S7Nm8v77MjXwf9WTo+Suu9TCt5Lb/L/Jk1Rl\npTz4oFgsMn26LPWbql5NkM6djV5vKx07qudfeK3tu2+9JU2bygMPSFGRvPCHi9vbRKr/WyPX\nO0MOuAWvvy4hIfLz55mQEHn9daNn1R+F60lNTRWR8vJyo4cAt6usTD13xxfldi7lU+MvXVRd\nfSEqxmrv+UK3tOpqm45JXlax2i6izKulysq6dNHhwxea+X5hN3jlZ2U2nVJHJo868Z1DYOk9\n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\nUGCbPQAAAA2NacLO19c3IyOj9tukp6f7+vraZg8AAEBDY5qwi4iIWL58+bx588rLy399bUlJ\nycyZM1evXj1y5EjbbwMAAGgITHPyRHx8/NatWydOnDh79uzQ0FA/Pz93d3elVHFx8fHjx3fu\n3FlaWhoeHj5t2jSjl/5KdbV8/LE88US1g1N6uhw4ICISHCw9eohdZYUsWyZPPSV2pinsRq2y\nUj79VEaNqrZz2LtXMjPF3l7uuku6dxdLRbkkJclTT4nFYvRKm1i3Trp1kzZtjh2TvXvl7Fnp\n2FFCQ6VJE5HPP5fQUGnV6kYfqrBQvvpKHn+8rEx27ZKDB8XLS7p3lzvvFDlzRrZvl4iI+vyd\n2MrHH8uwYdKkSUaGZGZKebncdZf07Cn2UiWffiojR4qTk9ETr2bZMhk0SDw9s7Jk/34pLpbg\nYOnVSxwdlHz2mfzXf4mbWx18lS+/lI4dpW3b48dlzx45c+bSXyc3t//8TauDrwKzOHtWNm+W\n4cPLymTnTjl4UJo1k+7dJShIpKBAvvlG/uu/bvShGuf3X2Ue5eXl8+fP7969u729/c9/C46O\njvfee++7775bWVlZH1/373//u4hYrdZbvH9xsfL1/bHv0B5dy0VU27aqbVslonp0Lf+x71Dl\n66uKi+t0L+rNjz+qli3P9n88uNNFi0W1a6cCApSIuqdb2fn7Byl/f3XhgtETbWX48MqA9s8P\nPG6xKB8f1amTcnRUPj5q15NvKAcHlZp6Ew+1b59ydv42cmbLlsrBQXXsqFq0UCLqyf75F+/s\noh56qN5+DzZUWakCA0t697s/pEREtWmj2rdXFovq2KGyYOBo5eOjzpwxeuI13H13WffeA+/9\nUUS1bq06dFB2dirAv/rEozGqaVP13Xd181WeeqrqDr/xQ3IsFtWsmercWTk6Km9vlfr7xcrB\nQX31Vd18FZjF3r3KyelA5Kzf/OYXzwlP/TbvYodO6uGHb+Kh6u37b83Bw9Sbeq6zFTOF3WUX\nLlw4cuTInj179uzZc/To0fLy8nr9crcbdkod+/LIabs79vkOyj9eVnNJ/onyXW0iCiwtc9dm\n1dFM2MLRNYfyLK13BQwvOFVRc8np78p3+z56ys7vxKZsY7fZUnlRyY6mA047BWR+fqzmkgsX\n1FePzr8oDlv/+5ObfbTtM9dfEJfU8MmXn2MPfV2Q7Rp8wKVn6feFdTjbQKd3nMi1D8zyCT/x\n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\nTk6uqG/hYWlp6eLFi/fs2TN69Ojmrw0AAKAlaDWrYu/duxcdHX3ixAkXF5fevXt7eXk5Ozsb\njcaSkpKrV68eO3asrKwsKirq66+/djb1fZ1YFQsAAOqwKtYE2rVrl5WVtW7dui1btqSnp1dX\nV9f9ysbGJjQ0dNKkSZMmTbKysrJgkQAAABbUaoKdiNja2s6ZM2fOnDnl5eXXr1+vvfOEq6ur\nt7c3x9IAAABaU7CrY29v7+/vb+kqAAAAWpZWs3gCAAAAT0awAwAAUATBDgAAQBEEOwAAAEUQ\n7AAAABRBsAMAAFAEwQ4AAEARrfI6ds2s9urHdnZ2li4EAAC0FC3z5git5l6xlnX69GmDwWCS\np1qwYEFZWdnUqVNN8mxoqo0bN4oI/bcU+m9Z9N+y6L9lbdy40dHR8f333zfJs1lbWwcHB5vk\nqUyLI3aNYsJ/PE9PTxEZO3asqZ4QTZKWlib033Lov2XRf8ui/5ZV2//Q0FBLF2JenGMHAACg\nCIIdAACAIgh2AAAAiiDYAQAAKIJgBwAAoAiCHQAAgCIIdgAAAIog2AEAACiCYAcAAKAI7jzR\n3FrmreXaDvpvWfTfsui/ZdF/y2oj/edesc2tqKhIRNzd3S1dSBtF/y2L/lsW/bcs+m9ZbaT/\nBDsAAABFcI4dAACAIgh2AAAAiiDYAQAAKIJgBwAAoAiCHQAAgCIIdgAAAIog2AEAACiCYAcA\nAKAIgh0AAIAiCHYAAACKINgBAAAogmAHAACgCIIdAACAIgh2AAAAiiDYAQAAKIJgZ2L37t2b\nPXt2165dbW1tO3fuPGXKlNu3b5t8EzREQzOLiooSEhJ8fHzs7Ox8fX2HDRt25MiR5qlWPU+5\nM8+dO1en002ZMsV8FapNW/9TUlJeeuklFxeXdu3aDRgwID093fyVqklD/y9dujRu3LhOnTrZ\n2Nh4eHi88cYbx44da55qlVRVVZWYmGhlZRUWFtaYx6s5/xphOhUVFb169RKRESNGLF++fNKk\nSTY2Nr6+vnfv3jXhJmiIhmYWFhZ27dpVRIYOHbpw4cK33nrL2tra3t7+zJkzzVm5Gp5yZz5+\n/LiVlZWITJ482dylKklb/zdt2iQifn5+CxYsSEhI8PDwsLW1PXz4cLOVrQwN/T937pyLi0v7\n9u0XLVq0ZcuWZcuWeXp6Wltbp6WlNWflyrhw4UKvXr1cXFz0en1oaOjvPl7V+ZdgZ0qrV68W\n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\nSUVORK5CYII=", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x1 <- lapply(all_results, function(result) {result$configuration$values$x1})\n", "x2 <- lapply(all_results, function(result) {result$configuration$values$x2})\n", "plot(x1, x2, col=\"blue\")\n", "\n", "pareto_x1 <- lapply(pareto_set, function(result) {result$configuration$values$x1})\n", "pareto_x2 <- lapply(pareto_set, function(result) {result$configuration$values$x2})\n", "points(pareto_x1, pareto_x2, col=\"red\", pch=4)" ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.4.1" }, "nav_menu": {}, "toc": { "navigate_menu": true, "number_sections": false, "sideBar": true, "threshold": 6, "toc_cell": false, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }