571 lines
88 KiB
Plaintext
571 lines
88 KiB
Plaintext
|
|
{
|
||
|
|
"cells": [
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 27,
|
||
|
|
"id": "cb5170b7-6a4c-415f-8675-8382c5ce837c",
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"NWTN (generic function with 1 method)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"execution_count": 27,
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "execute_result"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"using LinearAlgebra, Printf, Plots\n",
|
||
|
|
"\n",
|
||
|
|
"function NWTN(f;\n",
|
||
|
|
" x::Union{Nothing, Vector}=nothing,\n",
|
||
|
|
" eps::Real=1e-6,\n",
|
||
|
|
" MaxFeval::Integer=1000,\n",
|
||
|
|
" m1::Real=1e-4,\n",
|
||
|
|
" m2::Real=0.9,\n",
|
||
|
|
" delta::Real=1e-6,\n",
|
||
|
|
" tau::Real=0.9,\n",
|
||
|
|
" sfgrd::Real=0.2,\n",
|
||
|
|
" MInf::Real=-Inf,\n",
|
||
|
|
" mina::Real=1e-16,\n",
|
||
|
|
" plt::Union{Plots.Plot, Nothing}=nothing,\n",
|
||
|
|
" plotatend::Bool=true,\n",
|
||
|
|
" Plotf::Integer=0,\n",
|
||
|
|
" printing::Bool=true)::Tuple{AbstractArray, String}\n",
|
||
|
|
"\n",
|
||
|
|
" \n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" # inner functions - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
"\n",
|
||
|
|
" function f2phi(alpha, derivate=false)\n",
|
||
|
|
" # computes and returns the value of the tomography at alpha\n",
|
||
|
|
" #\n",
|
||
|
|
" # phi( alpha ) = f( x + alpha * d )\n",
|
||
|
|
" #\n",
|
||
|
|
" # if Plotf > 2 saves the data in gap() for plotting\n",
|
||
|
|
" #\n",
|
||
|
|
" # if the second output parameter is required, put there the derivative\n",
|
||
|
|
" # of the tomography in alpha\n",
|
||
|
|
" #\n",
|
||
|
|
" # phi'( alpha ) = < \\nabla f( x + alpha * d ) , d >\n",
|
||
|
|
" #\n",
|
||
|
|
" # saves the point in lastx, the gradient in lastg, the Hessian in lasth,\n",
|
||
|
|
" # and increases feval\n",
|
||
|
|
" \n",
|
||
|
|
" lastx = x + alpha * d\n",
|
||
|
|
" phi, lastg, lastH = f(lastx)\n",
|
||
|
|
" \n",
|
||
|
|
" if Plotf > 2\n",
|
||
|
|
" if fStar > - Inf\n",
|
||
|
|
" push!(gap, (phi - fStar) / max(abs(fStar), 1))\n",
|
||
|
|
" else\n",
|
||
|
|
" push!(gap, phi)\n",
|
||
|
|
" end\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" feval += 1\n",
|
||
|
|
"\n",
|
||
|
|
" if derivate\n",
|
||
|
|
" return (phi, dot(d, lastg))\n",
|
||
|
|
" end\n",
|
||
|
|
" return (phi, nothing)\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" \n",
|
||
|
|
" function ArmijoWolfeLS(phi0, phip0, as, m1, m2, tau)\n",
|
||
|
|
" # performs an Armijo-Wolfe Line Search.\n",
|
||
|
|
" #\n",
|
||
|
|
" # phi0 = phi( 0 ), phip0 = phi'( 0 ) < 0\n",
|
||
|
|
" #\n",
|
||
|
|
" # as > 0 is the first value to be tested: if phi'( as ) < 0 then as is\n",
|
||
|
|
" # divided by tau < 1 (hence it is increased) until this does not happen\n",
|
||
|
|
" # any longer\n",
|
||
|
|
" #\n",
|
||
|
|
" # m1 and m2 are the standard Armijo-Wolfe parameters; note that the strong\n",
|
||
|
|
" # Wolfe condition is used\n",
|
||
|
|
" #\n",
|
||
|
|
" # returns the optimal step and the optimal f-value\n",
|
||
|
|
" \n",
|
||
|
|
" lsiter = 1 # count iterations of first phase\n",
|
||
|
|
" local phips, phia\n",
|
||
|
|
" while feval ≤ MaxFeval \n",
|
||
|
|
" phia, phips = f2phi(as, true)\n",
|
||
|
|
" \n",
|
||
|
|
" if (phia ≤ phi0 + m1 * as * phip0) && (abs(phips) ≤ - m2 * phip0)\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\" %2d\", lsiter)\n",
|
||
|
|
" end\n",
|
||
|
|
" a = as;\n",
|
||
|
|
" return (a, phia) # Armijo + strong Wolfe satisfied, we are done\n",
|
||
|
|
" \n",
|
||
|
|
" end\n",
|
||
|
|
" if phips ≥ 0\n",
|
||
|
|
" break\n",
|
||
|
|
" end\n",
|
||
|
|
" as = as / tau\n",
|
||
|
|
" lsiter += 1\n",
|
||
|
|
" end \n",
|
||
|
|
"\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\" %2d \", lsiter)\n",
|
||
|
|
" end\n",
|
||
|
|
" lsiter = 1 # count iterations of second phase\n",
|
||
|
|
" \n",
|
||
|
|
" am = 0\n",
|
||
|
|
" a = as\n",
|
||
|
|
" phipm = phip0\n",
|
||
|
|
" while (feval ≤ MaxFeval ) && ((as - am)) > mina && (phips > 1e-12)\n",
|
||
|
|
" \n",
|
||
|
|
" # compute the new value by safeguarded quadratic interpolation\n",
|
||
|
|
" a = (am * phips - as * phipm) / (phips - phipm)\n",
|
||
|
|
" a = max(am + ( as - am ) * sfgrd, min(as - ( as - am ) * sfgrd, a))\n",
|
||
|
|
" \n",
|
||
|
|
" # compute phi(a)\n",
|
||
|
|
" phia, phip = f2phi(a, true)\n",
|
||
|
|
" \n",
|
||
|
|
" if (phia ≤ phi0 + m1 * a * phip0) && (abs(phip) ≤ -m2 * phip0)\n",
|
||
|
|
" break # Armijo + strong Wolfe satisfied, we are done\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" # restrict the interval based on sign of the derivative in a\n",
|
||
|
|
" if phip < 0\n",
|
||
|
|
" am = a\n",
|
||
|
|
" phipm = phip\n",
|
||
|
|
" else\n",
|
||
|
|
" as = a\n",
|
||
|
|
" if as ≤ mina\n",
|
||
|
|
" break\n",
|
||
|
|
" end\n",
|
||
|
|
" phips = phip\n",
|
||
|
|
" end\n",
|
||
|
|
" lsiter += 1\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\"%2d\", lsiter)\n",
|
||
|
|
" end\n",
|
||
|
|
" return (a, phia)\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
"\n",
|
||
|
|
" function BacktrackingLS(phi0, phip0, as, m1, tau)\n",
|
||
|
|
" # performs a Backtracking Line Search.\n",
|
||
|
|
" #\n",
|
||
|
|
" # phi0 = phi( 0 ), phip0 = phi'( 0 ) < 0\n",
|
||
|
|
" #\n",
|
||
|
|
" # as > 0 is the first value to be tested, which is decreased by\n",
|
||
|
|
" # multiplying it by tau < 1 until the Armijo condition with parameter\n",
|
||
|
|
" # m1 is satisfied\n",
|
||
|
|
" #\n",
|
||
|
|
" # returns the optimal step and the optimal f-value\n",
|
||
|
|
" \n",
|
||
|
|
" lsiter = 1 # count ls iterations\n",
|
||
|
|
" while feval ≤ MaxFeval && as > mina\n",
|
||
|
|
" phia, _ = f2phi(as)\n",
|
||
|
|
" if phia ≤ phi0 + m1 * as * phip0 # Armijo satisfied\n",
|
||
|
|
" break # we are done\n",
|
||
|
|
" end\n",
|
||
|
|
" as *= tau\n",
|
||
|
|
" lsiter += 1\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\" %2d\", lsiter)\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" return (as, phia)\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
"\n",
|
||
|
|
" #Plotf = 2\n",
|
||
|
|
" # 0 = nothing is plotted\n",
|
||
|
|
" # 1 = the level sets of f and the trajectory are plotted (when n = 2)\n",
|
||
|
|
" # 2 = the function value / gap are plotted, iteration-wise\n",
|
||
|
|
" # 3 = the function value / gap are plotted, function-evaluation-wise\n",
|
||
|
|
"\n",
|
||
|
|
" Interactive = false\n",
|
||
|
|
"\n",
|
||
|
|
" PXY = Matrix{Real}(undef, 2, 0)\n",
|
||
|
|
"\n",
|
||
|
|
" local gap\n",
|
||
|
|
" if Plotf > 1\n",
|
||
|
|
" if Plotf == 2\n",
|
||
|
|
" MaxIter = 50 # expected number of iterations for the gap plot\n",
|
||
|
|
" else\n",
|
||
|
|
" MaxIter = 70 # expected number of iterations for the gap plot\n",
|
||
|
|
" end\n",
|
||
|
|
" gap = []\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" if Plotf == 2 && plt == nothing\n",
|
||
|
|
" plt = plot(xlims=(0, MaxIter), ylims=(1e-15, 1e+1))\n",
|
||
|
|
" end\n",
|
||
|
|
" if Plotf > 1 && plt == nothing\n",
|
||
|
|
" plt = plot(xlims=(0, MaxIter))\n",
|
||
|
|
" end\n",
|
||
|
|
" if plt == nothing\n",
|
||
|
|
" plt = plot()\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" local fStar\n",
|
||
|
|
" if isnothing(x)\n",
|
||
|
|
" (fStar, x, _) = f(nothing)\n",
|
||
|
|
" else\n",
|
||
|
|
" (fStar, _, _) = f(nothing)\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" n = size(x, 1)\n",
|
||
|
|
"\n",
|
||
|
|
" if m1 ≤ 0 || m1 ≥ 1\n",
|
||
|
|
" throw(ArgumentError(\"m1 is not in (0 ,1)\"))\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" AWLS = (m2 > 0 && m2 < 1)\n",
|
||
|
|
"\n",
|
||
|
|
" if delta < 0\n",
|
||
|
|
" throw(ArgumentError(\"delta must be ≥ 0\"))\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" if tau ≤ 0 || tau ≥ 1\n",
|
||
|
|
" throw(ArgumentError(\"tau is not in (0 ,1)\"))\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" if sfgrd ≤ 0 || sfgrd ≥ 1\n",
|
||
|
|
" throw(ArgumentError(\"sfgrd is not in (0, 1)\"))\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" if mina < 0\n",
|
||
|
|
" throw(ArgumentError(\"mina must be ≥ 0\"))\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" # \"global\" variables- - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" \n",
|
||
|
|
" lastx = zeros(n) # last point visited in the line search\n",
|
||
|
|
" lastg = zeros(n) # gradient of lastx\n",
|
||
|
|
" lastH = zeros(n, n) # Hessian of lastx\n",
|
||
|
|
" d = zeros(n) # Newton's direction\n",
|
||
|
|
" feval = 0 # f() evaluations count (\"common\" with LSs)\n",
|
||
|
|
"\n",
|
||
|
|
" status = \"error\"\n",
|
||
|
|
" \n",
|
||
|
|
" # initializations - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
"\n",
|
||
|
|
" if fStar > -Inf\n",
|
||
|
|
" prevv = Inf\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\"Newton's method\\n\")\n",
|
||
|
|
" if fStar > -Inf\n",
|
||
|
|
" @printf(\"feval\\trel gap\\t\\t|| g(x) ||\\trate\\t\\tdelta\")\n",
|
||
|
|
" else\n",
|
||
|
|
" @printf(\"feval\\tf(x)\\t\\t\\t|| g(x) ||\\tdelta\")\n",
|
||
|
|
" end\n",
|
||
|
|
" @printf(\"\\t\\tls it\\ta*\")\n",
|
||
|
|
" @printf(\"\\n\\n\")\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" \n",
|
||
|
|
" v, _ = f2phi(0)\n",
|
||
|
|
" ng = norm(lastg)\n",
|
||
|
|
" if eps < 0\n",
|
||
|
|
" ng0 = -ng # norm of first subgradient: why is there a \"-\"? ;-)\n",
|
||
|
|
" else\n",
|
||
|
|
" ng0 = 1 # un-scaled stopping criterion\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" # main loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
"\n",
|
||
|
|
" while true\n",
|
||
|
|
"\n",
|
||
|
|
" # output statistics - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" \n",
|
||
|
|
" if fStar > -Inf\n",
|
||
|
|
" gapk = ( v - fStar ) / max(abs( fStar ), 1)\n",
|
||
|
|
"\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\"%4d\\t%1.4e\\t%1.4e\", feval, gapk, ng)\n",
|
||
|
|
" if prevv < Inf\n",
|
||
|
|
" @printf(\"\\t%1.4e\", ( v - fStar ) / ( prevv - fStar ))\n",
|
||
|
|
" else\n",
|
||
|
|
" @printf(\"\\t\\t\")\n",
|
||
|
|
" end\n",
|
||
|
|
" end\n",
|
||
|
|
" prevv = v\n",
|
||
|
|
" \n",
|
||
|
|
" if Plotf > 1\n",
|
||
|
|
" if Plotf ≥ 2\n",
|
||
|
|
" push!(gap, gapk)\n",
|
||
|
|
" end\n",
|
||
|
|
" end\n",
|
||
|
|
" else\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\"%4d\\t%1.8e\\t\\t%1.4e\", feval, v, ng)\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" if Plotf > 1\n",
|
||
|
|
" if Plotf ≥ 2\n",
|
||
|
|
" push!(gap, v)\n",
|
||
|
|
" end\n",
|
||
|
|
" end\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" # stopping criteria - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
"\n",
|
||
|
|
" if ng ≤ eps * ng0\n",
|
||
|
|
" status = \"optimal\"\n",
|
||
|
|
" break\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" if feval > MaxFeval\n",
|
||
|
|
" status = \"stopped\"\n",
|
||
|
|
" break\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" # compute Newton's direction- - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
"\n",
|
||
|
|
" lambdan = eigmin(lastH) # smallest eigenvalue\n",
|
||
|
|
" if lambdan < delta\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\"\\t%1.4e\", delta - lambdan)\n",
|
||
|
|
" end\n",
|
||
|
|
" lastH = lastH + (delta - lambdan) * I\n",
|
||
|
|
" else\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\"\\t0.00e+00\")\n",
|
||
|
|
" end\n",
|
||
|
|
" end\n",
|
||
|
|
" d = -lastH \\ lastg\n",
|
||
|
|
" phip0 = lastg' * d\n",
|
||
|
|
" \n",
|
||
|
|
" # compute step size - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" # in Newton's method, the default initial stepsize is 1\n",
|
||
|
|
" \n",
|
||
|
|
" if AWLS\n",
|
||
|
|
" a, v = ArmijoWolfeLS(v, phip0, 1, m1, m2, tau)\n",
|
||
|
|
" else\n",
|
||
|
|
" a, v = BacktrackingLS(v, phip0, 1, m1, tau)\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" # output statistics - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
"\n",
|
||
|
|
" if printing\n",
|
||
|
|
" @printf(\"\\t%1.2e\", a)\n",
|
||
|
|
" @printf(\"\\n\")\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" if a ≤ mina\n",
|
||
|
|
" status = \"error\"\n",
|
||
|
|
" break\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" if v ≤ MInf\n",
|
||
|
|
" status = \"unbounded\"\n",
|
||
|
|
" break\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" # compute new point - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" \n",
|
||
|
|
" # possibly plot the trajectory\n",
|
||
|
|
" if n == 2 && Plotf == 1\n",
|
||
|
|
" PXY = hcat(PXY, hcat(x, lastx))\n",
|
||
|
|
" end\n",
|
||
|
|
" \n",
|
||
|
|
" x = lastx\n",
|
||
|
|
" ng = norm(lastg)\n",
|
||
|
|
"\n",
|
||
|
|
" # iterate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" \n",
|
||
|
|
" if Interactive\n",
|
||
|
|
" readline()\n",
|
||
|
|
" end\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" if plotatend\n",
|
||
|
|
" if Plotf ≥ 2\n",
|
||
|
|
" plot!(plt, gap)\n",
|
||
|
|
" elseif Plotf == 1 && n == 2\n",
|
||
|
|
" plot!(plt, PXY[1, :], PXY[2, :])\n",
|
||
|
|
" end\n",
|
||
|
|
" display(plt)\n",
|
||
|
|
" end\n",
|
||
|
|
"\n",
|
||
|
|
" # end of main loop- - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n",
|
||
|
|
" return (x, status)\n",
|
||
|
|
"end"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 10,
|
||
|
|
"id": "9fa92a74-19bc-46b3-92de-d39aa74f0075",
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [],
|
||
|
|
"source": [
|
||
|
|
"include(\"./TestFunctions/TestFunctions.jl\")\n",
|
||
|
|
"TF = TestFunctions();"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 29,
|
||
|
|
"id": "14e530e5-1b32-4a3e-ac62-b67fd8723f06",
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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
|
||
|
|
"image/svg+xml": [
|
||
|
|
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
|
||
|
|
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n",
|
||
|
|
"<defs>\n",
|
||
|
|
" <clipPath id=\"clip120\">\n",
|
||
|
|
" <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
|
||
|
|
" </clipPath>\n",
|
||
|
|
"</defs>\n",
|
||
|
|
"<path clip-path=\"url(#clip120)\" d=\"M0 1600 L2400 1600 L2400 0 L0 0 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
|
||
|
|
"<defs>\n",
|
||
|
|
" <clipPath id=\"clip121\">\n",
|
||
|
|
" <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
|
||
|
|
" </clipPath>\n",
|
||
|
|
"</defs>\n",
|
||
|
|
"<path clip-path=\"url(#clip120)\" d=\"M186.274 1486.45 L2352.76 1486.45 L2352.76 47.2441 L186.274 47.2441 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
|
||
|
|
"<defs>\n",
|
||
|
|
" <clipPath id=\"clip122\">\n",
|
||
|
|
" <rect x=\"186\" y=\"47\" width=\"2167\" height=\"1440\"/>\n",
|
||
|
|
" </clipPath>\n",
|
||
|
|
"</defs>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip122)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"247.59,1486.45 247.59,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip122)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"758.552,1486.45 758.552,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip122)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"1269.51,1486.45 1269.51,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip122)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"1780.48,1486.45 1780.48,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip122)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"2291.44,1486.45 2291.44,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,1486.45 2352.76,1486.45 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"247.59,1486.45 247.59,1467.55 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"758.552,1486.45 758.552,1467.55 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1269.51,1486.45 1269.51,1467.55 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1780.48,1486.45 1780.48,1467.55 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"2291.44,1486.45 2291.44,1467.55 \"/>\n",
|
||
|
|
"<path clip-path=\"url(#clip120)\" d=\"M194.118 1532.02 L223.793 1532.02 L223.793 1535.95 L194.118 1535.95 L194.118 1532.02 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M234.696 1544.91 L242.335 1544.91 L242.335 1518.55 L234.025 1520.21 L234.025 1515.95 L242.289 1514.29 L246.965 1514.29 L246.965 1544.91 L254.603 1544.91 L254.603 1548.85 L234.696 1548.85 L234.696 1544.91 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M264.048 1542.97 L268.932 1542.97 L268.932 1548.85 L264.048 1548.85 L264.048 1542.97 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M289.117 1517.37 Q285.506 1517.37 283.677 1520.93 Q281.872 1524.47 281.872 1531.6 Q281.872 1538.71 283.677 1542.27 Q285.506 1545.82 289.117 1545.82 Q292.751 1545.82 294.557 1542.27 Q296.386 1538.71 296.386 1531.6 Q296.386 1524.47 294.557 1520.93 Q292.751 1517.37 289.117 1517.37 M289.117 1513.66 Q294.927 1513.66 297.983 1518.27 Q301.061 1522.85 301.061 1531.6 Q301.061 1540.33 297.983 1544.94 Q294.927 1549.52 289.117 1549.52 Q283.307 1549.52 280.228 1544.94 Q277.173 1540.33 277.173 1531.6 Q277.173 1522.85 280.228 1518.27 Q283.307 1513.66 289.117 1513.66 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M705.578 1532.02 L735.254 1532.02 L735.254 1535.95 L705.578 1535.95 L705.578 1532.02 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M755.346 1517.37 Q751.735 1517.37 749.906 1520.93 Q748.101 1524.47 748.101 1531.6 Q748.101 1538.71 749.906 1542.27 Q751.735 1545.82 755.346 1545.82 Q758.98 1545.82 760.786 1542.27 Q762.615 1538.71 762.615 1531.6 Q762.615 1524.47 760.786 1520.93 Q758.98 1517.37 755.346 1517.37 M755.346 1513.66 Q761.156 1513.66 764.212 1518.27 Q767.291 1522.85 767.291 1531.6 Q767.291 1540.33 764.212 1544.94 Q761.156 1549.52 755.346 1549.52 Q749.536 1549.52 746.457 1544.94 Q743.402 1540.33 743.402 1531.6 Q743.402 1522.85 746.457 1518.27 Q749.536 1513.66 755.346 1513.66 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M775.508 1542.97 L780.392 1542.97 L780.392 1548.85 L775.508 1548.85 L775.508 1542.97 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M790.624 1514.29 L808.98 1514.29 L808.98 1518.22 L794.906 1518.22 L794.906 1526.7 Q795.925 1526.35 796.943 1526.19 Q797.962 1526 798.98 1526 Q804.767 1526 808.147 1529.17 Q811.526 1532.34 811.526 1537.76 Q811.526 1543.34 808.054 1546.44 Q804.582 1549.52 798.263 1549.52 Q796.087 1549.52 793.818 1549.15 Q791.573 1548.78 789.166 1548.04 L789.166 1543.34 Q791.249 1544.47 793.471 1545.03 Q795.693 1545.58 798.17 1545.58 Q802.175 1545.58 804.513 1543.48 Q806.851 1541.37 806.851 1537.76 Q806.851 1534.15 804.513 1532.04 Q802.175 1529.94 798.17 1529.94 Q796.295 1529.94 794.42 1530.35 Q792.568 1530.77 790.624 1531.65 L790.624 1514.29 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M1246.9 1517.37 Q1243.29 1517.37 1241.46 1520.93 Q1239.65 1524.47 1239.65 1531.6 Q1239.65 1538.71 1241.46 1542.27 Q1243.29 1545.82 1246.9 1545.82 Q1250.53 1545.82 1252.34 1542.27 Q1254.17 1538.71 1254.17 1531.6 Q1254.17 1524.47 1252.34 1520.93 Q1250.53 1517.37 1246.9 1517.37 M1246.9 1513.66 Q1252.71 1513.66 1255.77 1518.27 Q1258.84 1522.85 1258.84 1531.6 Q1258.84 1540.33 1255.77 1544.94 Q1252.71 1549.52 1246.9 1549.52 Q1241.09 1549.52 1238.01 1544.94 Q1234.95 1540.33 1234.95 1531.6 Q1234.95 1522.85 1238.01 1518.27 Q1241.09 1513.66 1246.9 1513.66 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M1267.06 1542.97 L1271.95 1542.97 L1271.95 1548.85 L1267.06 1548.85 L1267.06 1542.97 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M1292.13 1517.37 Q1288.52 1517.37 1286.69 1520.93 Q1284.89 1524.47 1284.89 1531.6 Q1284.89 1538.71 1286
|
||
|
|
"<polyline clip-path=\"url(#clip122)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"186.274,1086.74 2352.76,1086.74 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip122)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"186.274,753.821 2352.76,753.821 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip122)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"186.274,420.898 2352.76,420.898 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip122)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"186.274,87.9763 2352.76,87.9763 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,1486.45 186.274,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,1419.66 205.172,1419.66 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,1086.74 205.172,1086.74 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,753.821 205.172,753.821 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,420.898 205.172,420.898 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,87.9763 205.172,87.9763 \"/>\n",
|
||
|
|
"<path clip-path=\"url(#clip120)\" d=\"M62.9365 1405.46 Q59.3254 1405.46 57.4967 1409.03 Q55.6912 1412.57 55.6912 1419.7 Q55.6912 1426.81 57.4967 1430.37 Q59.3254 1433.91 62.9365 1433.91 Q66.5707 1433.91 68.3763 1430.37 Q70.205 1426.81 70.205 1419.7 Q70.205 1412.57 68.3763 1409.03 Q66.5707 1405.46 62.9365 1405.46 M62.9365 1401.76 Q68.7467 1401.76 71.8022 1406.37 Q74.8809 1410.95 74.8809 1419.7 Q74.8809 1428.43 71.8022 1433.03 Q68.7467 1437.62 62.9365 1437.62 Q57.1264 1437.62 54.0477 1433.03 Q50.9921 1428.43 50.9921 1419.7 Q50.9921 1410.95 54.0477 1406.37 Q57.1264 1401.76 62.9365 1401.76 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M83.0984 1431.07 L87.9827 1431.07 L87.9827 1436.94 L83.0984 1436.94 L83.0984 1431.07 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M108.168 1405.46 Q104.557 1405.46 102.728 1409.03 Q100.922 1412.57 100.922 1419.7 Q100.922 1426.81 102.728 1430.37 Q104.557 1433.91 108.168 1433.91 Q111.802 1433.91 113.608 1430.37 Q115.436 1426.81 115.436 1419.7 Q115.436 1412.57 113.608 1409.03 Q111.802 1405.46 108.168 1405.46 M108.168 1401.76 Q113.978 1401.76 117.033 1406.37 Q120.112 1410.95 120.112 1419.7 Q120.112 1428.43 117.033 1433.03 Q113.978 1437.62 108.168 1437.62 Q102.358 1437.62 99.2789 1433.03 Q96.2234 1428.43 96.2234 1419.7 Q96.2234 1410.95 99.2789 1406.37 Q102.358 1401.76 108.168 1401.76 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M138.33 1405.46 Q134.719 1405.46 132.89 1409.03 Q131.084 1412.57 131.084 1419.7 Q131.084 1426.81 132.89 1430.37 Q134.719 1433.91 138.33 1433.91 Q141.964 1433.91 143.769 1430.37 Q145.598 1426.81 145.598 1419.7 Q145.598 1412.57 143.769 1409.03 Q141.964 1405.46 138.33 1405.46 M138.33 1401.76 Q144.14 1401.76 147.195 1406.37 Q150.274 1410.95 150.274 1419.7 Q150.274 1428.43 147.195 1433.03 Q144.14 1437.62 138.33 1437.62 Q132.519 1437.62 129.441 1433.03 Q126.385 1428.43 126.385 1419.7 Q126.385 1410.95 129.441 1406.37 Q132.519 1401.76 138.33 1401.76 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M63.9319 1072.54 Q60.3208 1072.54 58.4921 1076.11 Q56.6865 1079.65 56.6865 1086.78 Q56.6865 1093.88 58.4921 1097.45 Q60.3208 1100.99 63.9319 1100.99 Q67.5661 1100.99 69.3717 1097.45 Q71.2004 1093.88 71.2004 1086.78 Q71.2004 1079.65 69.3717 1076.11 Q67.5661 1072.54 63.9319 1072.54 M63.9319 1068.84 Q69.742 1068.84 72.7976 1073.44 Q75.8763 1078.03 75.8763 1086.78 Q75.8763 1095.5 72.7976 1100.11 Q69.742 1104.69 63.9319 1104.69 Q58.1217 1104.69 55.043 1100.11 Q51.9875 1095.5 51.9875 1086.78 Q51.9875 1078.03 55.043 1073.44 Q58.1217 1068.84 63.9319 1068.84 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M84.0938 1098.14 L88.978 1098.14 L88.978 1104.02 L84.0938 1104.02 L84.0938 1098.14 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M103.191 1100.09 L119.51 1100.09 L119.51 1104.02 L97.566 1104.02 L97.566 1100.09 Q100.228 1097.33 104.811 1092.7 Q109.418 1088.05 110.598 1086.71 Q112.844 1084.18 113.723 1082.45 Q114.626 1080.69 114.626 1079 Q114.626 1076.25 112.682 1074.51 Q110.76 1072.77 107.658 1072.77 Q105.459 1072.77 103.006 1073.54 Q100.575 1074.3 97.7974 1075.85 L97.7974 1071.13 Q100.621 1070 103.075 1069.42 Q105.529 1068.84 107.566 1068.84 Q112.936 1068.84 116.131 1071.52 Q119.325 1074.21 119.325 1078.7 Q119.325 1080.83 118.515 1082.75 Q117.728 1084.65 115.621 1087.24 Q115.043 1087.91 111.941 1091.13 Q108.839 1094.32 103.191 1100.09 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M129.371 1069.46 L147.728 1069.46 L147.728 1073.4 L133.654 1073.4 L133.654 1081.87 Q134.672 1081.52 135.691 1081.36 Q136.709 1081.18 137.728 1081.18 Q143.515 1081.18 146.894 1084.35 Q150.274 1087.52 150.274 1092.93 Q150.274 1098.51 146.802 1101.62 Q143.33 1104.69 137.01 1104.69 Q134.834 1104.69 132.566 1104.32 Q130.32 1103.95 127.91
|
||
|
|
"<path clip-path=\"url(#clip120)\" d=\"M2011.46 1438.47 L2280.54 1438.47 L2280.54 1334.79 L2011.46 1334.79 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"2011.46,1438.47 2280.54,1438.47 2280.54,1334.79 2011.46,1334.79 2011.46,1438.47 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip120)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"2035.53,1386.63 2179.97,1386.63 \"/>\n",
|
||
|
|
"<path clip-path=\"url(#clip120)\" d=\"M2217.88 1406.32 Q2216.07 1410.95 2214.36 1412.36 Q2212.65 1413.78 2209.78 1413.78 L2206.38 1413.78 L2206.38 1410.21 L2208.88 1410.21 Q2210.63 1410.21 2211.61 1409.38 Q2212.58 1408.54 2213.76 1405.44 L2214.52 1403.5 L2204.04 1377.99 L2208.55 1377.99 L2216.65 1398.27 L2224.76 1377.99 L2229.27 1377.99 L2217.88 1406.32 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip120)\" d=\"M2236.56 1399.98 L2244.2 1399.98 L2244.2 1373.61 L2235.89 1375.28 L2235.89 1371.02 L2244.15 1369.35 L2248.83 1369.35 L2248.83 1399.98 L2256.47 1399.98 L2256.47 1403.91 L2236.56 1403.91 L2236.56 1399.98 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /></svg>\n"
|
||
|
|
],
|
||
|
|
"text/html": [
|
||
|
|
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
|
||
|
|
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n",
|
||
|
|
"<defs>\n",
|
||
|
|
" <clipPath id=\"clip170\">\n",
|
||
|
|
" <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
|
||
|
|
" </clipPath>\n",
|
||
|
|
"</defs>\n",
|
||
|
|
"<path clip-path=\"url(#clip170)\" d=\"M0 1600 L2400 1600 L2400 0 L0 0 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
|
||
|
|
"<defs>\n",
|
||
|
|
" <clipPath id=\"clip171\">\n",
|
||
|
|
" <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
|
||
|
|
" </clipPath>\n",
|
||
|
|
"</defs>\n",
|
||
|
|
"<path clip-path=\"url(#clip170)\" d=\"M186.274 1486.45 L2352.76 1486.45 L2352.76 47.2441 L186.274 47.2441 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
|
||
|
|
"<defs>\n",
|
||
|
|
" <clipPath id=\"clip172\">\n",
|
||
|
|
" <rect x=\"186\" y=\"47\" width=\"2167\" height=\"1440\"/>\n",
|
||
|
|
" </clipPath>\n",
|
||
|
|
"</defs>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip172)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"247.59,1486.45 247.59,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip172)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"758.552,1486.45 758.552,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip172)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"1269.51,1486.45 1269.51,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip172)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"1780.48,1486.45 1780.48,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip172)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"2291.44,1486.45 2291.44,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,1486.45 2352.76,1486.45 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"247.59,1486.45 247.59,1467.55 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"758.552,1486.45 758.552,1467.55 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1269.51,1486.45 1269.51,1467.55 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1780.48,1486.45 1780.48,1467.55 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"2291.44,1486.45 2291.44,1467.55 \"/>\n",
|
||
|
|
"<path clip-path=\"url(#clip170)\" d=\"M194.118 1532.02 L223.793 1532.02 L223.793 1535.95 L194.118 1535.95 L194.118 1532.02 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M234.696 1544.91 L242.335 1544.91 L242.335 1518.55 L234.025 1520.21 L234.025 1515.95 L242.289 1514.29 L246.965 1514.29 L246.965 1544.91 L254.603 1544.91 L254.603 1548.85 L234.696 1548.85 L234.696 1544.91 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M264.048 1542.97 L268.932 1542.97 L268.932 1548.85 L264.048 1548.85 L264.048 1542.97 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M289.117 1517.37 Q285.506 1517.37 283.677 1520.93 Q281.872 1524.47 281.872 1531.6 Q281.872 1538.71 283.677 1542.27 Q285.506 1545.82 289.117 1545.82 Q292.751 1545.82 294.557 1542.27 Q296.386 1538.71 296.386 1531.6 Q296.386 1524.47 294.557 1520.93 Q292.751 1517.37 289.117 1517.37 M289.117 1513.66 Q294.927 1513.66 297.983 1518.27 Q301.061 1522.85 301.061 1531.6 Q301.061 1540.33 297.983 1544.94 Q294.927 1549.52 289.117 1549.52 Q283.307 1549.52 280.228 1544.94 Q277.173 1540.33 277.173 1531.6 Q277.173 1522.85 280.228 1518.27 Q283.307 1513.66 289.117 1513.66 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M705.578 1532.02 L735.254 1532.02 L735.254 1535.95 L705.578 1535.95 L705.578 1532.02 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M755.346 1517.37 Q751.735 1517.37 749.906 1520.93 Q748.101 1524.47 748.101 1531.6 Q748.101 1538.71 749.906 1542.27 Q751.735 1545.82 755.346 1545.82 Q758.98 1545.82 760.786 1542.27 Q762.615 1538.71 762.615 1531.6 Q762.615 1524.47 760.786 1520.93 Q758.98 1517.37 755.346 1517.37 M755.346 1513.66 Q761.156 1513.66 764.212 1518.27 Q767.291 1522.85 767.291 1531.6 Q767.291 1540.33 764.212 1544.94 Q761.156 1549.52 755.346 1549.52 Q749.536 1549.52 746.457 1544.94 Q743.402 1540.33 743.402 1531.6 Q743.402 1522.85 746.457 1518.27 Q749.536 1513.66 755.346 1513.66 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M775.508 1542.97 L780.392 1542.97 L780.392 1548.85 L775.508 1548.85 L775.508 1542.97 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M790.624 1514.29 L808.98 1514.29 L808.98 1518.22 L794.906 1518.22 L794.906 1526.7 Q795.925 1526.35 796.943 1526.19 Q797.962 1526 798.98 1526 Q804.767 1526 808.147 1529.17 Q811.526 1532.34 811.526 1537.76 Q811.526 1543.34 808.054 1546.44 Q804.582 1549.52 798.263 1549.52 Q796.087 1549.52 793.818 1549.15 Q791.573 1548.78 789.166 1548.04 L789.166 1543.34 Q791.249 1544.47 793.471 1545.03 Q795.693 1545.58 798.17 1545.58 Q802.175 1545.58 804.513 1543.48 Q806.851 1541.37 806.851 1537.76 Q806.851 1534.15 804.513 1532.04 Q802.175 1529.94 798.17 1529.94 Q796.295 1529.94 794.42 1530.35 Q792.568 1530.77 790.624 1531.65 L790.624 1514.29 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M1246.9 1517.37 Q1243.29 1517.37 1241.46 1520.93 Q1239.65 1524.47 1239.65 1531.6 Q1239.65 1538.71 1241.46 1542.27 Q1243.29 1545.82 1246.9 1545.82 Q1250.53 1545.82 1252.34 1542.27 Q1254.17 1538.71 1254.17 1531.6 Q1254.17 1524.47 1252.34 1520.93 Q1250.53 1517.37 1246.9 1517.37 M1246.9 1513.66 Q1252.71 1513.66 1255.77 1518.27 Q1258.84 1522.85 1258.84 1531.6 Q1258.84 1540.33 1255.77 1544.94 Q1252.71 1549.52 1246.9 1549.52 Q1241.09 1549.52 1238.01 1544.94 Q1234.95 1540.33 1234.95 1531.6 Q1234.95 1522.85 1238.01 1518.27 Q1241.09 1513.66 1246.9 1513.66 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M1267.06 1542.97 L1271.95 1542.97 L1271.95 1548.85 L1267.06 1548.85 L1267.06 1542.97 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M1292.13 1517.37 Q1288.52 1517.37 1286.69 1520.93 Q1284.89 1524.47 1284.89 1531.6 Q1284.89 1538.71 1286
|
||
|
|
"<polyline clip-path=\"url(#clip172)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"186.274,1086.74 2352.76,1086.74 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip172)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"186.274,753.821 2352.76,753.821 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip172)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"186.274,420.898 2352.76,420.898 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip172)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"186.274,87.9763 2352.76,87.9763 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,1486.45 186.274,47.2441 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,1419.66 205.172,1419.66 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,1086.74 205.172,1086.74 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,753.821 205.172,753.821 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,420.898 205.172,420.898 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"186.274,87.9763 205.172,87.9763 \"/>\n",
|
||
|
|
"<path clip-path=\"url(#clip170)\" d=\"M62.9365 1405.46 Q59.3254 1405.46 57.4967 1409.03 Q55.6912 1412.57 55.6912 1419.7 Q55.6912 1426.81 57.4967 1430.37 Q59.3254 1433.91 62.9365 1433.91 Q66.5707 1433.91 68.3763 1430.37 Q70.205 1426.81 70.205 1419.7 Q70.205 1412.57 68.3763 1409.03 Q66.5707 1405.46 62.9365 1405.46 M62.9365 1401.76 Q68.7467 1401.76 71.8022 1406.37 Q74.8809 1410.95 74.8809 1419.7 Q74.8809 1428.43 71.8022 1433.03 Q68.7467 1437.62 62.9365 1437.62 Q57.1264 1437.62 54.0477 1433.03 Q50.9921 1428.43 50.9921 1419.7 Q50.9921 1410.95 54.0477 1406.37 Q57.1264 1401.76 62.9365 1401.76 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M83.0984 1431.07 L87.9827 1431.07 L87.9827 1436.94 L83.0984 1436.94 L83.0984 1431.07 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M108.168 1405.46 Q104.557 1405.46 102.728 1409.03 Q100.922 1412.57 100.922 1419.7 Q100.922 1426.81 102.728 1430.37 Q104.557 1433.91 108.168 1433.91 Q111.802 1433.91 113.608 1430.37 Q115.436 1426.81 115.436 1419.7 Q115.436 1412.57 113.608 1409.03 Q111.802 1405.46 108.168 1405.46 M108.168 1401.76 Q113.978 1401.76 117.033 1406.37 Q120.112 1410.95 120.112 1419.7 Q120.112 1428.43 117.033 1433.03 Q113.978 1437.62 108.168 1437.62 Q102.358 1437.62 99.2789 1433.03 Q96.2234 1428.43 96.2234 1419.7 Q96.2234 1410.95 99.2789 1406.37 Q102.358 1401.76 108.168 1401.76 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M138.33 1405.46 Q134.719 1405.46 132.89 1409.03 Q131.084 1412.57 131.084 1419.7 Q131.084 1426.81 132.89 1430.37 Q134.719 1433.91 138.33 1433.91 Q141.964 1433.91 143.769 1430.37 Q145.598 1426.81 145.598 1419.7 Q145.598 1412.57 143.769 1409.03 Q141.964 1405.46 138.33 1405.46 M138.33 1401.76 Q144.14 1401.76 147.195 1406.37 Q150.274 1410.95 150.274 1419.7 Q150.274 1428.43 147.195 1433.03 Q144.14 1437.62 138.33 1437.62 Q132.519 1437.62 129.441 1433.03 Q126.385 1428.43 126.385 1419.7 Q126.385 1410.95 129.441 1406.37 Q132.519 1401.76 138.33 1401.76 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M63.9319 1072.54 Q60.3208 1072.54 58.4921 1076.11 Q56.6865 1079.65 56.6865 1086.78 Q56.6865 1093.88 58.4921 1097.45 Q60.3208 1100.99 63.9319 1100.99 Q67.5661 1100.99 69.3717 1097.45 Q71.2004 1093.88 71.2004 1086.78 Q71.2004 1079.65 69.3717 1076.11 Q67.5661 1072.54 63.9319 1072.54 M63.9319 1068.84 Q69.742 1068.84 72.7976 1073.44 Q75.8763 1078.03 75.8763 1086.78 Q75.8763 1095.5 72.7976 1100.11 Q69.742 1104.69 63.9319 1104.69 Q58.1217 1104.69 55.043 1100.11 Q51.9875 1095.5 51.9875 1086.78 Q51.9875 1078.03 55.043 1073.44 Q58.1217 1068.84 63.9319 1068.84 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M84.0938 1098.14 L88.978 1098.14 L88.978 1104.02 L84.0938 1104.02 L84.0938 1098.14 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M103.191 1100.09 L119.51 1100.09 L119.51 1104.02 L97.566 1104.02 L97.566 1100.09 Q100.228 1097.33 104.811 1092.7 Q109.418 1088.05 110.598 1086.71 Q112.844 1084.18 113.723 1082.45 Q114.626 1080.69 114.626 1079 Q114.626 1076.25 112.682 1074.51 Q110.76 1072.77 107.658 1072.77 Q105.459 1072.77 103.006 1073.54 Q100.575 1074.3 97.7974 1075.85 L97.7974 1071.13 Q100.621 1070 103.075 1069.42 Q105.529 1068.84 107.566 1068.84 Q112.936 1068.84 116.131 1071.52 Q119.325 1074.21 119.325 1078.7 Q119.325 1080.83 118.515 1082.75 Q117.728 1084.65 115.621 1087.24 Q115.043 1087.91 111.941 1091.13 Q108.839 1094.32 103.191 1100.09 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M129.371 1069.46 L147.728 1069.46 L147.728 1073.4 L133.654 1073.4 L133.654 1081.87 Q134.672 1081.52 135.691 1081.36 Q136.709 1081.18 137.728 1081.18 Q143.515 1081.18 146.894 1084.35 Q150.274 1087.52 150.274 1092.93 Q150.274 1098.51 146.802 1101.62 Q143.33 1104.69 137.01 1104.69 Q134.834 1104.69 132.566 1104.32 Q130.32 1103.95 127.91
|
||
|
|
"<path clip-path=\"url(#clip170)\" d=\"M2011.46 1438.47 L2280.54 1438.47 L2280.54 1334.79 L2011.46 1334.79 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"2011.46,1438.47 2280.54,1438.47 2280.54,1334.79 2011.46,1334.79 2011.46,1438.47 \"/>\n",
|
||
|
|
"<polyline clip-path=\"url(#clip170)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"2035.53,1386.63 2179.97,1386.63 \"/>\n",
|
||
|
|
"<path clip-path=\"url(#clip170)\" d=\"M2217.88 1406.32 Q2216.07 1410.95 2214.36 1412.36 Q2212.65 1413.78 2209.78 1413.78 L2206.38 1413.78 L2206.38 1410.21 L2208.88 1410.21 Q2210.63 1410.21 2211.61 1409.38 Q2212.58 1408.54 2213.76 1405.44 L2214.52 1403.5 L2204.04 1377.99 L2208.55 1377.99 L2216.65 1398.27 L2224.76 1377.99 L2229.27 1377.99 L2217.88 1406.32 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip170)\" d=\"M2236.56 1399.98 L2244.2 1399.98 L2244.2 1373.61 L2235.89 1375.28 L2235.89 1371.02 L2244.15 1369.35 L2248.83 1369.35 L2248.83 1399.98 L2256.47 1399.98 L2256.47 1403.91 L2236.56 1403.91 L2236.56 1399.98 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /></svg>\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"([0.9999999959286234, 0.9999999907475938], \"optimal\")"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"execution_count": 29,
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "execute_result"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"NWTN(TF[6], printing=false, plotatend=true, Plotf=1)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": null,
|
||
|
|
"id": "ae61290b-22fa-493a-9b56-3a7458e3b3ed",
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [],
|
||
|
|
"source": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"metadata": {
|
||
|
|
"kernelspec": {
|
||
|
|
"display_name": "Julia 1.9.4",
|
||
|
|
"language": "julia",
|
||
|
|
"name": "julia-1.9"
|
||
|
|
},
|
||
|
|
"language_info": {
|
||
|
|
"file_extension": ".jl",
|
||
|
|
"mimetype": "application/julia",
|
||
|
|
"name": "julia",
|
||
|
|
"version": "1.9.4"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"nbformat": 4,
|
||
|
|
"nbformat_minor": 5
|
||
|
|
}
|