| |
| """Optimized solver for AC inequality.""" |
|
|
| import time |
| import numpy as np |
| import zlib |
| import base64 |
| from scipy.signal import fftconvolve |
| from scipy.optimize import minimize |
|
|
|
|
| _TEMPLATE_B64 = ( |
| "eNrtu3k41l3XP5x5nmdCklBKktN8nvuzEBWphJSEUkKleR6QMZWhECEqlJTSHCKaJU2KMjRTqVRC" |
| "A6/bfdzX8bue+36e43l+7/u87/M73uuPdXz3d9p7f9de6/NZa+3z/OhRRCHKMXRppB8ZRLqRXYQl" |
| "tTwfTvklrjTVMJCWvltOAic2kPv6SeQ70YF2F8yjT1a+xDP3oTY5DwqSmUbyfTOpauEyouBlxOlc" |
| "TyVv51Na4yJ6fmo29Y1xpyUZU6lj4xQa/onIt4ZHfGtcSLjbke5rG9HQzeOoptqCIo9YUsEcLqnO" |
| "nkG784xp1olHONjGTwsWCdB6BUlaLShCmatFiHukB2uNv+IRpw8T7wnRJ+lh9CFRm3a9Uyezo/I0" |
| "3lOSpPf0YIHBb6wJ+o557z+jJVCQCiM6sVGyBQkdz9Fr3oP4dcIkkSxBTQ/aoX7zBKSUE1CtlQ7V" |
| "hZexzU+YZJc9R/uoDNwrS8GJq5dg7ytGuzdpkH65FlXoNOGg0QfEX3mLsat6sXyJKHHiZKj/Ej8p" |
| "Xm3HydF8tHJpK85FC5OP3EMEP74Bt01lGBI1MLZsP4oMFal4kihFHPkC53Ix+pHxHuMTBMnq6AM0" |
| "eadDbEsavnvdhmlHHEaalsGBtw+RTZ6Ym5SLi947oVS/F5e1fkI+qB5nfbRwbIQqMptXsL0J+9jn" |
| "71LsDctnrdYC0B5byj4+/Myq9l9nawOD2RXhfl6auzBkfQRx2eMXExvfy7vlJcvm8rnYvjoz2+ag" |
| "+RWuxRl13ppp07n9b56ONdWcazN0C5ja2YVo37kQE2Q8IV2XzLr2eTP9tlO2eT6VTDxGCwv89DF6" |
| "SSW7fWS0pVdgJVe2dSs7f1MHjbNXwna3Ibw+q0NHUhEaa9ZgfPdr5iq0gyWmO7O/jeGVUm7xt+ML" |
| "8e+86NWRNn9rf1lxxPZ81HRu34+YwfN/K2dMx/1x/cA4cZ6/jygbrr2UrbOXYIe8TZgxG8HMhtxl" |
| "C70espGdQ1GgNgQretazvK2/mEIlj03emsbmJcjxtqilsTt1iuy5cA8bEboT9uIzsMSFizTPjUhw" |
| "O429v68ja3Yv2nXeYKXbc7wOeYCo3ieQCRGhJ6/VqXuzDC0r+4nn5cLkyJMm38Th9D1vHDmGj6LA" |
| "nVo0qkaJihuUacplS1plZkKFhYaU+0CFEtYLk/LFoWQkJkdXenRpUtBI0j2gTDNTLOmL6nD6eG80" |
| "JQfZUVCgCcld0iV/dyNy3s6hJafH0/jGkZTIdGjPB3lyXy5FHstkKXusHB3REKdQa0k6nSdNU1y0" |
| "yfuHOEWPEqYK7lsULRIm2/P8dHCpKEXebMRVo1eYmtSKk56PITO+B1tjh5Cd1A/Mpq9ItnuEX7on" |
| "UT33HmL9r0Iw0RcTUrTRV5LOOp68Y8ufBGNlVhL4zmbjoPYhLP+SDHy4iMyp7eDzvw/lT68xT6Yd" |
| "o9kn+EjcQ9b0O/A3vYDkrSfRY1qDU8Ed6Gr+hpppQvQkX4iyt8nQ/VgZCq6Sp/hjEpS+UYXsX3/B" |
| "op1tWCVfj5y4x6iO/gEhhU+Qy36O267XMfvlVaz7dQ8R1Z+gFf4N10M+Iuv4C8wMfYLGRaXoWnYa" |
| "U64UwsHzEpZNLEe1TyWcdkXgXLEHgsX2oVE2HdFxuSjIOozug9n4khcNXy1nuKe4Y01uLHRGxuH5" |
| "rABcuWgHj1GScBk9BlHyrvgVsg3RTtugcFoCcu1FrEpwG2s8qo/f3YE4cFoGE0YKQrqIsXrBJGb0" |
| "TAHF5c5wFZICYgPw6IISfvJJwy5+PNZfGIOeJjs88Z6N1a/C0QN/HNfwgo1DOEYHeUNGcTyObvZC" |
| "fWIw3ozdgxPcELicN8WkLkHs6pqOyx+CcNw6GBfdFsD3gCgcQzSxZ3c/G/28kE27L4GgZ+Ph/FAd" |
| "Jb8Vkdb7gaV0c7F1/R7c8NkF2QPb8Ut/BbYuM8TFMy7I952KO0462OLoCdNcPTyTHY6Lo2WwLusB" |
| "W+E1Fcs7I8Grz8CVT+fw/MQeGN5cjewt23FRZRem9+xEc9F2XL22DJrDV6LOMArnH2fB6cFBHIss" |
| "RFX/JSi9uYCbixow37IRIgUf8fXHB3xc34ZI3auwWFWB85vyYX+gFys2X8Omj83oDPuAtmBhirom" |
| "SPWl8sTXJUV9nRKksXwY3TbXozhzbeI+kaIkSXESGrBriXYZ6r2iTGKHtUkkYSSNfGVIaSuH09YU" |
| "NXIeqk0nR8qSkZIiVe2UpDerhpBgYTv6PnyFuctjSJ1shEvNRexccB7H9z6FCV7D+8stDM1phPvy" |
| "e2jpugWj4gZsnbMfE9bF45UtYcW9uchQ3o3R7lno35WP8jZnJIp7YNlyO/DPmIi6gPnwuBuLOebL" |
| "Ee/ng2/DCdPsuMD6cLyKC8G9W9OROscFwSv8cWTfSTzj1KJE9CKmRV6EStsBJO/ahXy9u7A704xA" |
| "1RfQkL+N9BnnsVDsHvYk56MzcB+GLT0Fy4k1ULe6ick3jmNBZTlmz7qJBXdawbe8Gi83P8ONtOfQ" |
| "j34G4VNPEDi8GjZ3TiBH9iZidY9iWVoe2iqS8KXzIJo3lGCc4Sf0vCiEo9lRjDGPR/GTWFiXRiMi" |
| "/BCSXsdBO3ME0gPHITHwJpOOmIrMPfORf2kyLnaOxrSfnjBsisZx6Q248SkRY2qdUCSmBzxVxofo" |
| "Lyz3hyjsw+TAvfiYxQxwybNpl1j0wWEYsZgPJcYCyPW+yoa757DNEgpITRUDp+s8K8t1Y53ea3ny" |
| "oem8JpGTvAj/HNZ09g37uuwVuxx0jjkvzGGzAqRwLWECHANDoJMYCPVlQzBn+itG7xcx4+tXWItL" |
| "L1PMrmVTdhO+26ti3RpxzPugCk+1ReD7GomsBTF4YLQbUFmP9048WL+wwcOrs9A7Nx3fSvdA08AE" |
| "swyMYP6TsHX6Nlx9eAKplUXYcK8AJ9YFIsDUAmKuEnjisgy/GnYhq3oHxI5ORd2E4djn8YStu28K" |
| "/tsBuNeZi+q6CFSl6eFX8jyMEcxEdvNxcNMPIzM5HC8rd+HrijPwWnQSD21Po9+tBKvuXMaemSV4" |
| "ePEWFgjVwf1TPdz8v+HqvWf4dkaYru0SpIe/JSkpW4h2VfPT7W0fcGhpP6aOlKeGo+p0JUqX3s9Q" |
| "JD5XKdo6Q4mq9HXoe8Mw2u5nSEJqY8jZQovuT1WnzHo58rJWIb0UYSrUFCb+hiEUZz0gLT0w0X6B" |
| "51bv4FrER4ZPBai0iZ+mmH5DUEsLfpg9gYfNG5j6vYJi7Afkv7yGsrxsbNfOgsOTKgTRQ/D4REjU" |
| "+xfcdZ7jjfgj5J2txdwDbQjLaUaWewXUJ51CZOYxhHw5C6tPJSjfeAEuz4tR5nofgbENuBH1GO73" |
| "vmNGyXfcn9mIyNffUTrgEzYtd6CPN1irdBXu38uwsecWbgvewQaTb2ja8wshC1uR6vQOk/0+QE9M" |
| "kMT6+elk5mtoa7zBz42tuLG4HvS1Ceqpj1F+5jVmHOpCmqgwDXeVJL48dZKqlSZnPkk6milPe40V" |
| "qX6GHPnV9ePxNT6yP/IKPtw2fLdtx5m7P3FSfEBP4nfhV/kcjWOb4Hm/Hb3tTxBu/gRbPCtAmuk4" |
| "8LUA4psPwCTvEHqxH7MyQ5GyayG6k53Q8HUSmuUXI/G1Oy7dmoaX7fL4fb2WxUT1sHHLelj/drBr" |
| "41xYsEqx1ZpDyry/xTtbfAxYXuFEm5SMFtuyt7d5owMLmbqSNOiVFJ7JvGD901KZr/UVtiZxJPoM" |
| "rKDvq4LknuF4vcsOqlOMMW6tF3bUzYPh4ZXwPLUSD3lLcezQEiQ8DoRR+1YsOTgXsWPc4fR0Br4U" |
| "uaPrEgfpmdPQcMQd9osDUdoXh+m7snBsWRI0mregZkUYdjzdi4isE7DgnIT7oj0YvyYSxdyFGL/a" |
| "G0e8AvEscgXy+Z2xatp8PP+yD6XCubjWXIht0YXYH5CPtJM56HPZh0UnruDUgmsYHXAdYxSqsSC7" |
| "EO4+Z1FyqRGLlnZgeXU/HG5+BG/EewRN46cHGkPovfYQEhrXBbc7Dci/WIls7WYEhXQhxeAb8vf9" |
| "hvfQj1BNeovYyb/QMPIn2sdJkd1WaVL4JkPDJWSoNl6SLtl9gWH/J/xU/YIVdQKUVS9JnV0CZPmB" |
| "n7S8hSj4fD92N4qSFkedTk3RpF9RirSz7TeuDvjYMxlFahBUp2scFdJOEqPQF4K0uliEOtYP8I7+" |
| "UBJ4O5I+9WjR1qUqVPRJnkRHKxBvMh+lukuRcKAEKRUJksOGr8iJL0cy7yr2b72Dl1dLofioCpnn" |
| "P6L/xjM8PNCEc2lV4CaVQtvxNq5+ewS9igaMMqpE6+TLyPHaiTsrziE4rhEeUXdhOP4pOmOvQ8yj" |
| "Gqs8WmDw9feA7QmToas0vbTkJ+lRT3GmugHj/V+ju0eM+F5K0Ts3MXp4Upa6A8XpoKgojVdXp29t" |
| "4ymjzJQmxNiSPceAdnYY0sOxepRXN5Qe/DSgn8P1yfuqEZXk6pBQvyo9/qBO06L0aMFOXWrv0yHV" |
| "Sg2yrJGmSi9hktfmJ4nPAnRQ8jOUq3vRpVYD96AanLhTjbBtT7DuxzuIb72P9MUtOB3Rji71Wkze" |
| "XQ/XWXdR6FIGTeOrcCm+jeoBHN7wPQc39+5F7/TVsO7YjPr5uzDWqQCjhh1A1eFovPsQjfPTtkD6" |
| "3jbsMkjApLLNKN4fhwqjIEyyNAbfLR6eXwjAfoVQTBXIgLP3HgSVReBgXDqGNe9ARl8q+ofvQVPM" |
| "Dlzq8cduh8UQWjsT6e8s8FhlKW6eTYFT/h4kK6di0e+d8FZPxentV7Dv2APUxNSjl/cKrsq3cE28" |
| "HuVuLXCS6YJDgAC9f8lHRvUv0abPTzZFIhT2SJzc/FSpXFmd3jxRo85IRXJUlSBRp6E07Kc2/Vyo" |
| "RrsM5WiNqzyN1pGjlBItsoyQI2F+I/q4VZN2O4+g3kQDGtqjT/P5h1ETG04xC1TJs16RflUo0+wX" |
| "4vQiRoY0BIaQcZYsLb78G/7PxGnbDnl63CZPFxXV6LOTHB2dIkU1p4ZRcpI6CdWpUZOwFkXk6NE6" |
| "ZkjWp0bSNPFRlHVFi+JzrenhBlN6YMJIb70VHbEYRwNpOq31tKCJF6xoyRpTikkdS7+KxlCpnylV" |
| "/tYmuTwrav01nnp4WrRxqwFdWDaSpBKJvNpsiW80qKjEmPjFOeQhMoEKr4yhvAhj0urTpwupQ6lY" |
| "UYV+hSqTbNowGjN9FO3IUaBht4WpylKBNpuLkcN2RTJ9JEsV4kJ01FGAlunV47jWG/g4PsdMS2Gy" |
| "7JUivztipD7AXy7VYuQXIE9nNshTu/EwWigrQT0nJWnvMynKj+SnLT+lKV5diPK+voLD+nakUCdu" |
| "PP+EbbaS1MQnTCnWclRwQJWMnUSoz2ggH5n2ERvKBcktRoSUVsqTQ74o+dzrR+IMfro8WpaC5irQ" |
| "q1w5Spo7ggR+qtLqzdqUsl+b1FI1qZopUY+TLnXwREnVUZaqs1XoWZAabeqSJfMYIRJrkKRSW1ma" |
| "pzKGPoxUIL1V/Xj9W5g+N/ZjUv53aN+QJpnT/PTtwVvM+P4MOaeOoez5e7xKe4fgCU9g45KPUd8O" |
| "I9JvHkpHbMGCKnckpYZg89kwLMqPh5L7KRZxex1bGvSAq1DYwHLfDWVVIX28gNXzbP+RV2++MNPC" |
| "YXyN7eP1wn/KwRXc5QZ5yG/9dN4OznkWOiWZSY44yd45qjG3/ZIsuPkxcyyZhwU3DbDxtAHmXdbF" |
| "za/f2IVfa3BdNBcJfQXwyClEYkckjtgmIPpaHp6cLscFt1I0OZ7CN95ZrNjYjh86n/GluBXaIfVI" |
| "eNWIuR+aEe35CbIr7uCK5jVUTKpB6agyeBo8hFX5PXxfwU+7dN5hrVUNnhTzUdtlYSo9w0+uAzaT" |
| "+eEFRBc1QV/yA7gmQ4i9FqYwTwlaMWoAowMUqOLlG7RWf8Bvr37wH+QnvwJhEg2ToF0ZYmSs3Qtj" |
| "5ZdY4dcC2UfvwPdchMoH1vva6h78IgFaoyBA4aN7YfBsGEmeV6DWKyNo5Wst6lyrQraq/GSSpUl7" |
| "DhpRfqoZmUeNoXfzFMlHXYnObRYjM209UkqyJ81QY/qhLUBxUnq04aw0zRcdsA9pVTK6oErLJ+vR" |
| "oWeO9Pn1LLI87UDRa5zIvhm0Od+cxP1caMmLhZTwdRatOT+FFCcyulEzgSKjrKlWzIJSNEyoymM4" |
| "rbLgI8vpGjR7gRLJCoyiRy4q9CN3gH8E+iAjIk/HXw2np+tUKW28BgUnyFJOsypNHeAxuiVDNb7q" |
| "FL5Hg7Z+5KNKXRk68kKDWlv46WeCFGVx5ejRkp8waRWnkQPzfzy8A2kDeLF6gjSd09ageq4J1elM" |
| "pt+CY6jtjCWZnZAmK0ltsjTXot4vo0hzOGh4sRalc4zowxxN6n5nSc32LmQxYQmFRxvSlcPC5JQo" |
| "SEp8CrRhmC71yg+hSaFDaIOdPo3qGeAyUzUKbrAihS1S1Ob4Gy6ywmTvPh2Tfd/gKO8xCp0vs9Oa" |
| "vzHF9Qby4ofQZR114pRV4t16aabwOJb7b+tKa0IrLIKvXv6XNaf/t+Ry1SrLWLUtVn9rF9sTU5wP" |
| "VvxNDpnx4yFW/HiwZvaxahtk3sVitXg4QnRCMWTrLHy8aQvXl7sgYvEIrm+SoO59Bt8vXmePbs3H" |
| "14qHbPobS3yf+IWt+LCPJdry8fImVTD/in4me7eELdyeAS+N5czzThQTud426N/9idK4yr8aHrvd" |
| "MMJZDqd3JIE7oYZVnxiKi5bucNTNwfd3R3F9/glE1KZhXHcDzNdZwVLpFjfd3BSTht1k27dawfzw" |
| "HkTkP2C5b0Yw5rcO97ySwS1ejmXX9uBYzDC6J1IP0QI5mjqQx049VYuVCQOxx9duOMfW4ceOD5i6" |
| "pxLy32rRVTfA73mroNwShksLX6NU6g2+Xn4LueFdrHeeA/6hv5MbhViMpx/yFuewD8YiUBjNDyO3" |
| "EiaDLGY4ayQEGwtgTI5sXUIPC6VhWKHzlnfAMY0pC5Sxc6FHIbs8GQLDpoL/kB1uz4qGg849qH/t" |
| "wX5eNYLOPsd+/veI31qJ873BOBFajUs5T5BcK0yIPAhvXIT/MUGKPi9Hrrf5qLToCeb9sqJrRcMo" |
| "Ml+TDBa0IqZYn47IjKTbrRKk+y4JYr4VaHC9jrWZL3BcUpc+dI2h02WlcLo/EZM7zWnInXC2YCCO" |
| "sLUEe6pTwt3WdQKxxgt5KxZbYM4ODXzdsB7L5XWx2zWDd6xuEtfw+CWO57jtCHocDsEZ2eyFiw1k" |
| "q/VZo1oY69L/xWw2abFDyw6CvfDBTmc/bJyQiY03H8H07lTI7DiJAB8J2rZXn8aaD6eiAic6WjuG" |
| "nL4q0JLoEeT6bQRppBjTtAoevdSaQW4eXEoVdqQ5haAXhr5k8HU1PQteRcGK2yh3wzZKFIumGa4b" |
| "yaJ1OdnJBVFWoC89cFpMHceX0mqRWRTQFELVBvG08/BucjkUQ+d+hZFT5mTqM/GlnV+2knjZXhp7" |
| "K5FMZ0bTrKmhtPu1L7Uc30dT7SPog2sEneBOpjUb7KlbWJE+q/nSEAk98vU4z0bdmEY3XLzIuGES" |
| "LetZSbde6NJ6W0WKsg/lvfE9yDuomGrbo+NHN8zdaGizKYlesqC+9VPo4YPF5D0ulO7mXEanuzm7" |
| "5ruDN/ZACBJFH7Jwj+O8jLqbWLwd5BKkQ9e2jKDzuabsH3b3xmGMzd7PCWbn1bRpyx5Vyv/8GwW/" |
| "2nEqOh63DsfaHinT4zblL+GpS4jSAVM+CpOQpqUxIyig5DouhsnQKbtqTDmag5l517GTX5B6f7Qh" |
| "XeA6br/Lx6z4BEzdWI1h1cWIqj2E8icfIJVYiOG5iRimb4gPzYcg6TeQcx+MRZxKOzvfU4wMj17w" |
| "rjXC6N1vLK37griC2+jszkXa87OwuJsFatmKsunHEf2xBAdsPcFK1yEnNBKCIuvxbrohDo+YzFw1" |
| "AhHlwTH/xzdWlSxk50zTmcu8lSzgvTPGhw1BxGNPaNSr4Oy4ySx6vR3v3+KZQbIvr0U3klunO9L6" |
| "1FJRtAm7wuB8Pa9kewXnb/fHCiwYfKdCYw/nRnKK9T/eu6JZiKFz4xG3ci+GP2pk0u6b2Fvb+eAU" |
| "HGFnuhk3op3Lm7lQmHNjby5P6PZd8yAnabN/hacqi39b/a/nHmnnOELmcweveakd4Hxcpc9d6uDE" |
| "RHrt2O5biyDhXMd9WP2WZ/roDi94Tb75+4pkW5s94+lM/Aka5+iAiU3hdKc9jmQf+FNTRDf2FnfD" |
| "d+MN7JLIR6tzIy9Vy2QQixqv2rHfW+exlvJ3vMSUbg7n7Gz0G6pjn89N3rSfEUj54Db43Gv3k5ze" |
| "rGGDdpRVGWj7v871d+tw2xzfWu7cSlPreY51Vm4ve3hZraOgbDGRqntiSHvCcjr6bQE1y86jj2pO" |
| "5PTQnsQO9GCThwj8rJ1gGuDDyuYtMf/3uCY2/A3jFufxQocvZcaXswfHnq01n32XmIlF3XZskkuj" |
| "VUKMDbMJrGG6p/ZB4vgufB8XjbNnNqMofD9eZm5Fy8ZknEq6zb75S8EhXgmmbdLg0EU2NH41WxNz" |
| "nqfhY8J+hWxjZa7GWFGVy7gjlLHQeCpuZSrhzUkDduQal/EmJrAfug9YdX0qO7LcbnAer4Y0/Imf" |
| "fW5tHbSXi3pVVtkha1mi6xGeVmDsoO00aOzhqb0Ot+k2Hc0L1xNiJ4/ys0xuO9M5ugbqj9LwOz2Z" |
| "TR5N+BEVwQ4dnIdFtW5Yxc37E887hPLh8F4pBOwfgkhTe9htHoW2TGPsGGAOH0UubvwWh0tbmHUQ" |
| "X4it58jZNqEPw6x95ryx3OX3Y3BevRuqOP9Zjtc1y7bxmfTUdu+5XNu843utLy015cpwDrIp9jE2" |
| "AsPdmdv7W7wbHZXs1qfXNt8u2LDzX1ax0VcDbL0OOQ7ayWVPD2uVyCw4vNAbPFeq7+KI5dxjsm+3" |
| "s0LDkahJ2s7u3hfAovEpvJvq3gi868wc9RShzw1hfhX5TKZjB9toYAiTF4ZsvJoE23M/lP2reWqb" |
| "pNpEiLhY+rx048a5v2YThKRY/SEej/qP8WqnV9uOCDHkfbhcxY3onWSR0CBsHV56+w9b0/Y4avm3" |
| "4zaDck5RgZ7FkZY6jvgdHev/L2Or/ymy2opn+7/7bmyb0p/s9qDrMV5wZSbXRMTFWuPZrz/5TKD6" |
| "HF5PYYntuQdpXB/SZMv2Lre9EOKModdLB7HHWDQHs60OMQ/vGCS83MNEJaXQfaWG7SxRRW32PPgK" |
| "xLJjP7+wcp1RvICPldwPJ+ptPnkKW79WmIyzzjKDfST3ZLEtZWP+wNixz+sG53d0bp+1+gHGpGUb" |
| "2Lpjnrzu97vxQjeGdb8wQRhvCrTGr+YNXXQapfvmYUK4KXy227KdG7JgM+c4JKJvo7LdDTaaOrBJ" |
| "qERV+yKURG6DrshOIPs2xi3tx7NfWXi1yAird87BxP2pWLQvCcqVT5FrcASlmhMxQXAOwiSKsCzA" |
| "CElsM1KPpuNX3xzk37GAWmocDD/NwcNpRbispw2lLYvgZJeCJbJX8N3+GIJMDiPQIRW9G9Kx1NYe" |
| "odGrcLsyjfdhciB+FkxHtqwgc7hezTwqdJhL9yiEJochRtAGq9O3Q+l2DpKSqhESHoPJ946i8H46" |
| "qvbvxY1eSzh02WKR4mHoIxsPVFowyiwDF9ZWYaLTckipPMSP7ETwTUnGqNYmPI07hgnnVmGBxh5s" |
| "8VfBoWGrWKf+0kGd82SOofj1fHgtnI1U201MoPMYAj1morNeFv6Kj5hR82xw67ZAW2AO7LryYZO5" |
| "Er5TB+JLn/0Imc2wscQTanNSME8rAoYth7DnzDbsf+uMa/s8EO61A63qEUi88wRl5YmIMVmNvqPJ" |
| "KNXfhznS+/BzTSliTu7DJiFPxL9cgTsxMXA54oOFo1JQsHUvXjqug/9MWTj1b8PZvZtQy5bgycB6" |
| "KPlOhc9ZJ2wW4cDj2wi0669AwT03LJKNhpP1Cjx/tgv3VoaDr3kn3pyYh5I5F1BiuB+9P91wPykU" |
| "SQ2ZEC6PgP2FfHh1HMTYmCQc2BYL9eZd8Greh5ULTkPgVS2+uZ9HvWQ5dKVbEFT0EqK1jVgneRNn" |
| "gmOgk3QbtS3p6Nl0AemsGC0a0ZinkYlRG7KhtiYLhY8N4IG1WOgLJrEvAGH7k7DxezRK/SPQx5Nl" |
| "35xdIJf8kl0vLwF3mjb07ZuY0hpHHIxejevn+TGk8yBrc/XE60QvNErPxsVGecgYxqFrlx38cmPR" |
| "9xLYmP+Y1f4WhIjN6gEeisSjz3m4+SwN4yXisWzGOWgXXUDTq2ysihyKIsElaJ+XijUB3jjdHIPl" |
| "K4pZ/4KFsF0ji0dOHMy3HZgr/PHdYiPbfHga1oxMxpIpy/G2Vh0R7y3YcyURCH0LhmOwL9zLdzPN" |
| "CfJ4JLYNK19yMcd0OnoLHaFUORORqeo4NLuX/Ty2FZHcaPz4PBX7W06y9pizrOvACCjMPQV55QLE" |
| "znVE+sOh2OA5HyZ+4YhtOY7fs7fgleFDxhnWxLb98kN5XAre+8Xjjk8Osi4GYk1YPGTq9iDkVwHi" |
| "NEMRZRoJqd332ey2dJjdDcWtiX5QvRuGms1haJqUiQKjHeDEZuDFpVGIS4hA3V1/aK7/yBYb/2Aq" |
| "9nMwrjyTiW5UQZ+9HowSY9ndGQO6erkAkZE2KH2/EF67EzFedSwUhU5jiqoFhro5w+V2AM7/yIHW" |
| "nNv4ZspD3dA0yLavwBnpq5iW/wAmYkfw42Y2bja54KJjKbKOhsIpZApeCRpDcJM6tDd+ZB0KJdjy" |
| "eCfEGvPQMHsG9o7dA7VL0TjDRGElNRNbmlczxbEMs7pmIEPCD0MO8yPhiBKCH4vh5N54SLrmQcVj" |
| "J9Lt0gdy6S/s484QqIwRxX5HDYR2HGJmEnrY3qCC6OOdLEgoFh054QM4dwC/p8RAInAPJLqzcCXq" |
| "GIyGxCLBNg0bPcNxSCkE+xpm4sqweDyjZGzozAZH7jD8OrwxOjIbzeG5aL01G768tTAe8LtZuqro" |
| "NAjAlt9y6FPVQNUcB3i4BTL7kdcg/CwZ8/c0sr5OIThLiCDPNQa2wk7wVzPB21tH2NPiUWzBEEP4" |
| "BThjxQFLyD1jeDP9KuseD9TvzkOpbAKUw8zgHj0Fi5vfsZVfpsMscDs6M64wARlr5Jp0s3fmu7E1" |
| "ZCMMNsZgzPQgdN2diMWTpqFlXjDej5sEe01HbNqviji+cI78BgEo+s1ghV85uKqkyRw6b/Kikzex" |
| "2ZPEMEEgCJNmZ7GZpXfY9s6P5l8lVzCP8Ms8bnEGuzamj7cx6jzv+u457JL7EhbVaTsY25x90MWe" |
| "3Ijg1Q7YbuknO1ZeW8XOLXxjrSa8iTe1JpLn16bFe357H+OKT2EPT91kyZpHWWnTTjx8G8NyfwTh" |
| "tPvfY3TZAlGM9bhsG3ZEHJIORSzwZBj3td8I7sUDaqwwKoNX1bAAY1klC6TR7EmGIiQzj/GmaB9g" |
| "v3Z72ExpW8hd71f5H9aXbuvvsvxHm5MYyp0sfI+1yvFhltt7yy0LkninL4lYPP+55I947dkmgcHn" |
| "87Zw/6iBSCkaMiXJYPOtGgZY7VDGpm2tZYuUr/DaNa9z17Y94XqNVeclmy9mc6bVs64Vz9jJDkXW" |
| "+vEIE695z3t6RhMq/pPYk1nHWPSU1YPxdcKFcJb41cbmnoCEjZaVitVfMdxf8pf8Jf8d8r7snM0w" |
| "+PyX8iO7Vj9uyLk2m6CXfLbnN8y3CfVXsrYRY1bPw6TYghmmrPOtn9WpRzmWf+n3f5aEPXptve3m" |
| "tz+ttcEMaevji67ysj00B/lsVlUiaoOKkWc5GgX8Zng3uQrREzNg5XMRhbPSIdyQCucMEXqxU5D2" |
| "rHyDJrV8aEbyI2+hFSK0L0DzSROupdTh9PmDyN5whWWe84BySDwKBexhOiSUp7t8BTSkpmDtHgFe" |
| "YNZDVlC5G24GW1F1PAAac19wVB5kwramGh+FRMk8/D3uZItSOnXj0e+zeDyzH1J83XB7YU7tdhPI" |
| "b1cJ/BMUKWCYGj18N5TeDilHp5UYhcn24FH5eBKzHkojX8pR0iUj2m6nTR8zv+K3Zwvie6zp7Xcd" |
| "OsYH2vfZlXynSxAuDCH17Erc5chQEylQRPUXiLa+gqZLL47EiVDvbVc8fPeKyV+fjI37byLupQAJ" |
| "P5Mm/oyR1G1PdOfnLXQpNKEi7ST3c0U9VuXeQoOTIp3ar0eOzjfQXnwIrxerUX6MOP38aE1Wi9LI" |
| "ysqJSlMtaNqYFXTIikNaHSBXLTfa3SNBvI3KJN6lSNb3rEk5bAQdO2dA9WduYbeyLclOkaIC1SmU" |
| "Z6ZH4i3K1PxYlHyDB3RiO4fSNwuR5yI5muYtRryWVnQY/kCqwUzSZv5UZj6LPE12kUnqDDx3U6E3" |
| "AtMRNSoeE+a95/pvnEvX7mWwaHM7FpT6ijNzsy+bPuI4hCe8hJZeNR5IatCVlHVUr+BD4l6MkgqW" |
| "0LlPKXTMO5G21C6hN4ediZL20gXvJJL8mEj6Hz3ppMcEupc3gpa84dLeFj/6/jSDhG7JkEYMh2IE" |
| "lUmw8wz0L4JYoh49Lp9OH0+AWuNqcCPYhBSMJ1NCxRY6ub2ADh9yJuOiBEpS2Ur5GpH0TciJjLdr" |
| "U0SIHl3uViWrhuE05P5T24IEX9v2lS3c8Wb7uaGqqVyHjhQSFy+kjKATuOW3nO6/9CBxzTSyiDpA" |
| "2esSSX3Hcpo7OZ42DAsm1VI+KikOp62ZRB0WCrSy7xJ6Wn7hejOXdhm6kchkBzph60wCHRJw3PuK" |
| "6WXvhr/uMJo1ezszt1bl3j/uhxsXJ7FLo5PxI65uMF5cnieLu0OP/qdwcMdGW158Fo/nf2UmzXoR" |
| "RS/er6XR77JJQCWH7KZmUoTjYbp0+TSpdpeT3ohqqnJmdj8bzlBHsxQet+9Hon431+d0PDs+fBSv" |
| "c92CQR8f+7jJzERIk6VbhlNT+Vt27hEHr6ocSFjMjMS0A6nb1pcE2v3p5KoUOvRrDNXEJ5LlLw+K" |
| "s+jH0gMFoBBd0po74P9qJ7BHIZ7iDmymoY9T6dDPzfQ0oIqiNKeSVs9tGjKfiCfNKCXHi7SyjenI" |
| "rHzbVYuZxYjN33kekbEUdFrTPPi+ONVGhVOraQSNCdMyN5G+b9603Q4jDv1kyTeH0YJ1Qmxkw0Hu" |
| "ofAPbHP8Jd6L76VMW8uOFg1ZSqrRhXjlEcwU5nLZsFg1KO7rxdITRRBxqUWA9BBYWiRj8zYZckjM" |
| "wcuYmwh7Y0eB3rK01F8Xd6+KcAQk7vLyv5yCtf91TL60Ac60ifeJm8aVvDWM1y5WxzlejT/Vkr9d" |
| "izBPqj/yx7UzK1r/aJdK/b3dWHnX2ibh9WBsznltavurYIPtMIU8y/Vz+XjD5NK5SxsPmsdc68Km" |
| "FbpwkuRQ2wljKh5dwaYLDsXUBZkInj6W99FbzXzm2ePs8Aw5evmzAXuyNSHs3WF58qggHOoeMfXV" |
| "l3j+wYXcGwn7Bv+zIWivZz6x0sz8v4L5jReTLP6j+w9+CVt4GFn8/ZneWdZdqVP/yV4tWkXtyr7V" |
| "ETaI/6mvtzl+lp2hJXTi6xs6V3OSGm4dpxVPHtJ8YxnrMa2P2f7pe3F6uydpRO+mEXpjSO3mMe6o" |
| "x8a0PvAcqx4p+0818J2nIpjstTV/z/sOjUTt6ieI2+mCR4fO/ksfmns0nBIvqtGIMSXc9187sNTQ" |
| "Cq7dViy0cOjg8y8291ldeDAcumfcwadTwCwnRFhXnpoF40cJsIseD83YCDS4fWaOajd4vcv3/bHG" |
| "oVYXzZqsVtp6525E7anlLLZUmKsZWm9pr1diNfaoCue/g5sb+2YM9rs9nP3L/nXX5nCKyvcypSkj" |
| "ictsuT6vS6zLA7TptaA7+hp9KfP4BXa8Sdyaf2Ybpq6ewqnQCaPI4Eh0F4fRkpid5Bl/F3MWnaZH" |
| "TUXctIe7qeJSBsl8TWdGuj7YOuceVGeIY/SMEZT8cxedWTeG4h0KEPAyDjLzFlBgsg/N8VMh1bMz" |
| "qFapA/svR2HZgVpWWBeOtK9t+CE1gPN6m1ieUBD6LPXxKEsQ64qEMTXMjRtTagPfxj7Mr5DEqzku" |
| "0I99j9oGI6ocspwW8ixo31oR4msNoNauZTSRoujH9hzMkl9rI39kPOn+TLOq/CqMAdYne5FrkJ1+" |
| "A+vHDqHxpUNIYdJjNPeZ0LgNbtSyNoh4AmVQsZxNt/fX4vU3DegE66EDLZByOoXtP+RIS18NqyO/" |
| "ob/0E74FqVNLwBQ6wMmGfPJQyjMYTzebs3B0lQTd4A5FdPxMmr47gHy+X0X1uw5cyGqD3PQPKMjX" |
| "pCC8x7Q+depxD0e1diSyA82579s1/l2buJj90KZqwU7exyIZtEUXYY3cWIiKHmfyvl/gtdgYBzVe" |
| "Y9EkVRpWfJpZ/NInQ5dm+BWMo1Hmt7Byz22cXn0REx6+x977KmQ+sB5F/tuxxjwZ44XHULnfNBjV" |
| "dLDfq+pgrHkBLsJS1O/Ti9qf+ThVv43dmHUBo2+8gE8BHyZKGfGSMzpxouI+9ofF8H4/z+Tds1Jn" |
| "jrdc0RowjadramKzR3gz2/W1kdefwniKSVaDfnjNNI9dUV7D8Ve+wIa9CUaXVwZeHgrGhvF13NNt" |
| "czizX4Rzy9U7WExPCOzOFUHQKY7p/hg1uC/i/Mnr/5avjD772eqrRqzFpdN+g/5c07PrT/jjdyKf" |
| "xV1b/i/x8F7JWd7I4TdYgfRc+M4VZ+6lu9i6ost4oTIW3NPbWfstC1sKi+bJrXryL/fi0j+dstmw" |
| "pcj2/y+5wZJbgoNrJVhVObivb35JwqJ2lQ5nV8k2jptWhpX5IU/O//RvCPzoxVFYNm5wz7PL1Nvc" |
| "xnI15/K2f8ZrmRpbzoUXmub7DCw5JXX83BMuEwZt6LPu3+3VLK2Q1TSVMPk3JjbLmjeaX5gsgPTh" |
| "p7l3P9oN5kgVhTmoK50J8Ren2M9c4T/qgMHvbf+wxftdFubzQlM4BRJ11s5BkpYOnGv/NI/YMV/+" |
| "yzqtt1nCkYgb8e++N1puHOeYUq15QEYsxz6mgPNlbYP5mKIAzr6nCbxj8+fA8tYFy9MTNpg/Ge+M" |
| "wrZVFkeMlLgW5lpcp4N2rPX7EpvFS45xzglmcOwfHuO8vzWTK/M0krOEF8X5K3/+j8W4IG5QR3kF" |
| "ibyetfd4JrvCOPEB0jbdgvs4eXWm/67+TnUzm8rpGmZRa/StXz8z+0vPf8n/0RI71pRjOnEHJy4h" |
| "nnNeStX2koLdIB7vTO2xFQ3K5356P3qQU990i/3J1ofOrWAdgt+Z0J0MJsF3hTnUSbH9c+Nspb1G" |
| "c1ZJPbJiR2fbyl1O/9/2j+3quX/to/wl/zNiLSkd8/5T0pyYtl9md7oumP7t2hNX5wmDe4lhKWb/" |
| "2X68yqZab9l3b9CfuhWKrOMXDueuqBlnpm5WZGUUMnWwH+ff5Wb+b7tsanyqzIQWjOJdObqUed8V" |
| "J21lFVzMmoK50h7MvqfQTPnye7NhwrJmPe/TrJs2+lmFyN6xVu0ItK47lm9b9r2a531zP09naMbg" |
| "/uRDu2jrhjNZnGp7Ddtvdzq4uZ81LfLXNdtYXz1pPvXrNiZtPpQFWxciZNQlTPSQpX7PtxYbcx9Y" |
| "dHF2WH48ewwT5T/zOiuWWXyz3s5JV9T7d33aN0fYpnhumfWVklasTd1n3fBTwXohtxjtZinwTqzh" |
| "zaiPw2nZTCy9FERN21vQk5nKusWH49jsu+hPGE8diTsg/S4Qa82SkTor2WZc5sc/xfq1OQcHx+67" |
| "Q+ivnYuu8lGIKrdk249FIFEllfm4++HTy6Xge/6YPVLuQdOQx+yizkFuTdmcP/IQ82ux6LlrwQ5X" |
| "KWObwBNWETwOfFGpbMkzQ1Yh/xTizRXw8n6E65xuKK26zBOt+M1i3PXhfFeSHOsa8aQxG65fSrDQ" |
| "9jwcK4So7KMyWcXzkeT0buhaXILDii8832th7NszDjYoZjDRW+dY5+HZFlu8I5lev7pNyhGOdVeU" |
| "LpkuFiO1jLPYezUbfS+KLHVbfdlbxclkNtsTwl67/svYJ8Y/xGooYpnU+FQU+Gey689UqOaGEfEy" |
| "9anKR5qGhI4iVkTUIOVETosreG1Tl+NHtyazcLVkFg+W/VPelOEXZbO44iBbefgBmyYhha+JStxk" |
| "tz5sFbc029SYa11+3sIyWvfwH/Fzko6T2X+nDz44tdj8Lyz6S/6fFKe1UhP++H2zrQa3zOgQp8bo" |
| "C3rkL1Ma/wzqLSkjZUk9er2pCeGiaaR7IQ7tSRxa99KIdmxMpci880hbvpj63cJIJyKUdE660TGt" |
| "w/B0bELz0b2YmjGVfK8Ek3feavqnsf39rbeXqPOizKXxf5reAg7qDuLwuk61f6rzLhH7bL7k1XWr" |
| "qrX23DEjztr6X+NyHr19YdEhFmbZZrCA92tGFBKzAmxVbOZazjS5YzHpURxvTV0xTQ7qpD0hCnbL" |
| "+pTt1Hwu032FStLaepaavj4i1zfddHS1kJ1ubTU5L8ql0s92NKX6GE1ZsYT6kwTsZhyNpo6cXhL5" |
| "OdbOPfoMvj7nt8M+d2z7foIunEmEelskT0tSH2JLEmiT2zFaf3Mv/f7iQUd8r1B00gn67SxnF2IV" |
| "Qy8+PiSLAxmD2Hvn8ujBOPi+uzG7c3wWL274W6aswE9rDTbThHEdJGB/kla/dSAJoWy8cuIjo+01" |
| "LM9VAfeMjag/zo8Eqw6Q9GM+Kj6RSxoneyjw21C7x1OV7eb4X6DbbzTsXJV/UtiZRuJExQ2uf55B" |
| "Fi2b1Eu/pfZi/YTZlCp+mW7JPicFCVk70/ZYWuXRS9sTr5DKtAAquGZAW/330orGQBb6MI97N/fr" |
| "IDZmjHTkunta84x/8PFOT7Qk+W55u4uCr2itSDti9RNxqjiRDkm3sr1OpwfjgtBgS+bgbc4tuLeN" |
| "4+USSDtz1tuW57taXJRONw+dHk+rDERIpbmHfum0ke4yE9K0GkXuQ8ro4ARzuwVl5nYt11LIq7Wc" |
| "m6emw1KOhTDvHYd5rTbzefoKI7llSnNtzX1NbGbptHCP9PEzO28XW5MvT22XX436E46Lu0+3dqrV" |
| "tz7b2M6bXFlh3exXgaL3JnbmQep2xlbqdsvKde00chPtZDO/kPDjcbRdqoDWmCRSWeNKEmi9Q6IJ" |
| "bnbfL93GrneXeH0LLJhSWzkbJ3Fp8PuKNgfbCE4bhVWa8mzezSr4Pw3hcXlhg+uqJJJjsaDkM6dd" |
| "8aKtSnes7ecQRSu9rHs8pxQxuvBJ005s6AkbbuJRc+2proOxw/HpvnbiTnF274Iy7RSyy+22/vxq" |
| "N2vDevv/C8dd/gY=" |
| ) |
|
|
|
|
| def evaluate_sequence(sequence: list[float]) -> float: |
| if not isinstance(sequence, list): |
| return float(np.inf) |
| if not sequence: |
| return float(np.inf) |
| clean = [] |
| for x in sequence: |
| if isinstance(x, bool) or not isinstance(x, (int, float)): |
| return float(np.inf) |
| if np.isnan(x) or np.isinf(x): |
| return float(np.inf) |
| clean.append(float(x)) |
| clean = [max(0.0, min(1000.0, x)) for x in clean] |
| n = len(clean) |
| conv = np.convolve(clean, clean) |
| max_b = float(np.max(conv)) |
| sum_a = float(np.sum(clean)) |
| if sum_a < 0.01: |
| return float(np.inf) |
| return float(2.0 * n * max_b / (sum_a**2)) |
|
|
|
|
| def _load_template(): |
| try: |
| data = base64.b64decode(_TEMPLATE_B64) |
| decompressed = zlib.decompress(data) |
| return np.frombuffer(decompressed, dtype=np.float32).astype(np.float64) |
| except Exception: |
| return None |
|
|
|
|
| def _make_lp_obj_grad(n, p): |
| def f(a): |
| a = np.maximum(a, 1e-12) |
| S = np.sum(a) |
| conv = fftconvolve(a, a) |
| conv = np.maximum(conv, 1e-30) |
| log_conv = np.log(conv) |
| lcm = np.max(log_conv) |
| lcs = log_conv - lcm |
| exp_p_lcs = np.exp(p * lcs) |
| sum_exp = np.sum(exp_p_lcs) |
| Lp = np.exp(lcm) * sum_exp ** (1.0 / p) |
| obj = 2.0 * n * Lp / S**2 |
| w = (sum_exp ** ((1 - p) / p)) * np.exp((p - 1) * lcs) |
| G = fftconvolve(w, a[::-1], mode='valid') |
| G = G[:n] if len(G) >= n else np.pad(G, (0, n - len(G))) |
| dLp_da = 2 * G |
| dobj_da = 2.0 * n / S**2 * (dLp_da - 2.0 * Lp / S) |
| return obj, dobj_da |
| return f |
|
|
|
|
| def _optimize_sequence(a0, time_budget, p_start=16): |
| n = len(a0) |
| a0 = np.maximum(a0, 1e-10).astype(np.float64) |
| bounds = [(1e-10, 1000.0)] * n |
| t0 = time.time() |
| best_a = a0.copy() |
| best_val = evaluate_sequence(a0.tolist()) |
| p = p_start |
| while p <= 65536: |
| elapsed = time.time() - t0 |
| if elapsed > time_budget - 0.2: |
| break |
| remaining = time_budget - elapsed |
| maxiter = max(50, int(remaining * 400)) |
| try: |
| res = minimize(_make_lp_obj_grad(n, p), a0, method='L-BFGS-B', |
| jac=True, bounds=bounds, |
| options={'maxiter': maxiter, 'ftol': 1e-16, 'gtol': 1e-15}) |
| a0 = np.maximum(res.x, 1e-10) |
| val = evaluate_sequence(a0.tolist()) |
| if val < best_val: |
| best_val = val |
| best_a = a0.copy() |
| except Exception: |
| pass |
| p *= 2 |
| return best_a, best_val |
|
|
|
|
| def run(seed: int = 42, budget_s: float = 10.0, **kwargs) -> list[float]: |
| del kwargs |
| rng = np.random.default_rng(seed) |
| start = time.time() |
| deadline = start + max(0.5, budget_s * 0.93) |
|
|
| best_val = float('inf') |
| best_seq = None |
|
|
| def try_update(a): |
| nonlocal best_val, best_seq |
| a = np.clip(a, 0.0, 1000.0) |
| val = evaluate_sequence(a.tolist()) |
| if val < best_val: |
| best_val = val |
| best_seq = a.copy() |
| return val |
|
|
| |
| template = _load_template() |
| if template is not None: |
| try_update(template) |
| |
| |
| remaining = deadline - time.time() |
| if remaining > 2.0: |
| n_t = len(template) |
| a_refined, val = _optimize_sequence(template.copy(), remaining - 1.0, p_start=4096) |
| try_update(a_refined) |
|
|
| |
| if best_seq is None: |
| remaining = deadline - time.time() |
| if remaining > 1.0: |
| a0 = rng.exponential(2.0, 300) |
| a_opt, val = _optimize_sequence(a0, remaining - 0.5) |
| try_update(a_opt) |
|
|
| return [float(x) for x in best_seq.tolist()] |
|
|
|
|
| |
|
|