Skip to content

Commit

Permalink
Update example
Browse files Browse the repository at this point in the history
  • Loading branch information
blegat committed Jan 7, 2018
1 parent 032e49a commit 8151b9e
Showing 1 changed file with 63 additions and 91 deletions.
154 changes: 63 additions & 91 deletions examples/Computing controlled invariant sets.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -19,7 +19,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": null,
"metadata": {
"collapsed": true
},
Expand All @@ -39,20 +39,9 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"@_time (macro with 1 method)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"macro _time(x)\n",
" quote\n",
Expand All @@ -66,20 +55,21 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"using Gurobi\n",
"lpsolver = GurobiSolver(OutputFlag=0);"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"iterate! (generic function with 1 method)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"function liftu(S, sys::HybridSystems.DiscreteLinearControlSystem)\n",
" [sys.A sys.B] \\ S\n",
Expand All @@ -95,7 +85,8 @@
" map(t -> new_constraint(hs, S, q, t), out_transitions(hs, q))\n",
"end\n",
"function add_hrep!(S, h::HalfSpace)\n",
" if S ⊆ h # If S ⊆ h, then adding h will not change affect S\n",
" # I was using LP cycling errors when using CDD's LP solver\n",
" if issubset(S, h) # If S ⊆ h, then adding h will not change affect S\n",
" false\n",
" else\n",
" push!(S, SimpleHRepresentation(reshape(h.a, 1, length(h.a)), [h.β]))\n",
Expand All @@ -104,7 +95,7 @@
"end\n",
"function add_constraint!(S, P)\n",
" added = count(map(h -> add_hrep!(S, h), ineqs(P))) + count(map(h -> add_hrep!(S, h), eqs(P)))\n",
" removehredundancy!(S)\n",
" removehredundancy!(S) # CDD throws LP cycling error\n",
" added\n",
"end\n",
"function add_constraints!(S::Polyhedron, Ps::Vector{<:Polyhedron})\n",
Expand All @@ -116,46 +107,18 @@
" @show added\n",
"end\n",
"function iterate!(hs, S, nit)\n",
" map(i -> (@_time set_iteration!(hs, S)), 1:nit)\n",
" map(i -> (gc(); @_time set_iteration!(hs, S)), 1:nit)\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"nineqs(I0[1]) = 8\n",
"m = 1\n",
"added = [6, 8, 8, 8, 8, 8, 8, 8, 8, 8]\n",
"added = [6, 6, 6, 6, 6, 6, 6, 6, 6, 6]\n",
"added = [12, 12, 12, 12, 12, 12, 12, 12, 12, 12]\n",
"added = [14, 14, 14, 14, 14, 14, 14, 14, 14, 14]\n",
"added = [20, 20, 20, 20, 20, 20, 20, 20, 20, 20]\n",
"added = [26, 26, 26, 26, 26, 26, 26, 26, 26, 26]\n",
"added = [30, 30, 30, 30, 30, 30, 30, 30, 30, 30]\n",
"t[m, :] = [0.138743, 0.275568, 0.753732, 1.98394, 5.05119, 12.3602, 27.083]\n"
]
},
{
"data": {
"text/plain": [
"1×7 Array{Float64,2}:\n",
" 0.138743 0.275568 0.753732 1.98394 5.05119 12.3602 27.083"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"Mmax = 1\n",
"nit = 7\n",
"nit = 2\n",
"t = zeros(Mmax, nit)\n",
"Hs = Vector{HybridSystem}(Mmax)\n",
"CIS = Vector{Vector{Polyhedron}}(Mmax)\n",
Expand All @@ -173,41 +136,37 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"Mmax = size(t, 1)\n",
"nit = 1\n",
"previt = size(t, 2)\n",
"t = [t zeros(Mmax, nit)]\n",
"totit = size(t, 2)\n",
"for m in 1:Mmax\n",
" t[m, previt+(1:nit)] = iterate!(Hs[m], CIS[m], nit)\n",
" @show t[m, :]\n",
"end\n",
"t"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Plots.PyPlotBackend()"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"import Plots\n",
"Plots.pyplot()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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AABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABgGIEFAABg2BkF1jvvvKPevXsrJydH2dnZevnllwM1FwAAQNAK8XdH27Z19dVXa+HCherRo4e2b9+urKwsjR49WjExMYGcEQAAIKic0Rksy7JUWVkpSaqqqlJ8fLzCw8MDMhgAAECw8vsMlmVZmjFjhkaPHq2oqCgdOHBAeXl5CgsLC+R8AAAAQcfvM1gej0eTJ09WXl6eduzYoQULFuiaa65RRUVFIOcDAAAIOn4HVkFBgXbv3q3BgwdLkvr166eUlBStXr06YMMBAAAEI78DKzU1VXv27NHGjRslSVu2bNHWrVvVuXPngA0HAAAQjPx+DVZSUpL+9re/6YorrpDL5ZLP59Nzzz2ntLS0QM4HAAAQdPwOLEkaN26cxo0bF6hZAAAAGgVWcgcAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADCMwAIAADAsYIFVWXM8UDcNAADQoAUssCa8tUaVx2oDdfMAAAANVsACa8shn8bOXkVkAQCAJidggeW74iltrrZ15exVOlhDZAEAgKYjcC9yb9VR3l/N16ZqW1e+uZrIAgAATUZg30WYmiPvXe9pY7VX42avVhWRBQAAmoDAL9OQ1kveX87XhioiCwAANA31sw5Wu7rIKjzo1VVzVqu6xlMvdwsAAOCE+ltotF0vee96T+sr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\" />"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"D = [1, 2]\n",
"Plots.plot(project(Hs[1].invariants[1], D))\n",
Expand All @@ -216,13 +175,26 @@
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"Plots.savefig(\"dist_trailerspeed.png\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"t"
]
},
{
"cell_type": "code",
"execution_count": null,
Expand All @@ -243,7 +215,7 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "0.6.1"
"version": "0.6.2"
}
},
"nbformat": 4,
Expand Down

0 comments on commit 8151b9e

Please # to comment.