Skip to content

Instantly share code, notes, and snippets.

@maxkapur
Last active August 12, 2021 03:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maxkapur/418fc766c478eda3d13b976ff3330ab4 to your computer and use it in GitHub Desktop.
Save maxkapur/418fc766c478eda3d13b976ff3330ab4 to your computer and use it in GitHub Desktop.
Economic simulation in Julia: A gentle introduction
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"using Plots"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Economic simulation in Julia: A gentle introduction\n",
"\n",
"Max Kapur | [maxkapur.com](https://www.maxkapur.com)\n",
"\n",
"This tutorial explains how to **simulate a tâtonnement process** (aka Walrasian auction) using Julia.\n",
"\n",
"Prerequisites:\n",
"\n",
"1. You have installed the [Julia programming language and the IJulia](https://julialang.github.io/IJulia.jl/stable/manual/installation/) extension, which lets you use Jupyter notebooks like this. \n",
"2. Maybe some multivariable calculus?\n",
"\n",
"## Scenario\n",
"\n",
"This tutorial considers the *price paths of perishable goods.*\n",
"\n",
"Consider a market with `n` traders. Each produces a fixed amount of good `i` in each time period `t`.\n",
"\n",
"Traders try to sell out their entire supply each time period. No salvage value.\n",
"\n",
"The demand for each good is determined entirely by the prices. Traders do not know the shape of their demand curves. All they can do is \"guess and check.\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Problem data\n",
"\n",
"First we generate a square matrix `A` that determines the shape of the demand curve."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6×6 Matrix{Float64}:\n",
" -1.31098 0.478557 0.625543 0.123993 0.911671 0.743691\n",
" 0.601984 -1.45778 0.921821 0.65701 0.753835 0.85025\n",
" 0.194673 0.100195 -1.68408 0.986783 0.957128 0.87066\n",
" 0.612065 0.841071 0.219045 -1.60008 0.42792 0.724267\n",
" 0.4138 0.38046 0.716622 0.635423 -1.14904 0.539066\n",
" 0.701006 0.247234 0.973945 0.221853 0.0451124 -1.11766"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n = 6\n",
"A = rand(n, n)\n",
"for i in 1:n\n",
" A[i, i] -= 2\n",
"end\n",
"A"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`q` is a vector of supply quantities. `sum(q) = 1`. "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6-element Vector{Float64}:\n",
" 0.3160576868320888\n",
" 0.3148290559299176\n",
" 0.08798283436539898\n",
" 0.1351738091666288\n",
" 0.13604705660521643\n",
" 0.009909557100749379"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q = rand(n)\n",
"q ./= sum(q)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Each trader is happy when the demand for her product equals her supply.\n",
"- If she receives excess demand, she will raise her price, since she can still sell out at the higher price. \n",
"- If she has excess supply (too little demand), she will lower her price (but not past zero) in order to attract more buyers.\n",
"\n",
"Whenever the change in prices obeys these two rules, we have a tâtonnement process. \"Prices move in the direction of excess demand.\"\n",
"\n",
"The demand is a function of the prices. It takes the prices of the `n` goods as inputs and returns `n` demand quantities as output."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"demand (generic function with 1 method)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function demand(p)\n",
" numer = A * p\n",
" return numer ./ sum(numer)\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By design, the demand function has the following properties for nonnegative `p`:\n",
"- `demand(p)[i]` is *decreasing* in `p[i]` and *increasing* in `p[j]` for `j ≠ i`. Seems reasonable.\n",
"- We assume the economy is *Walrasian.* In this case, that means `sum(demand) = sum(q) = 1`. The sum of the entries `demand(p)` is always one. \"Aggregate supply equals aggregate demand.\"\n",
"- `demand(p)` is *continuous* and *homogeneous* in `p`. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6-element Vector{Float64}:\n",
" 0.39355798000386577\n",
" 0.2827696415339973\n",
" 0.3063252829557601\n",
" 0.5626567305955585\n",
" 0.30958033639310667\n",
" 0.21946940371536194"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"currentprices = rand(n)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The excess demand at the current prices:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"7×4 Matrix{Any}:\n",
" :price :demand :supply :diff\n",
" 0.393558 0.110984 0.316058 -0.205073\n",
" 0.28277 0.305083 0.314829 -0.00974598\n",
" 0.306325 0.214911 0.0879828 0.126928\n",
" 0.562657 -0.0214525 0.135174 -0.156626\n",
" 0.30958 0.207558 0.136047 0.0715108\n",
" 0.219469 0.182916 0.00990956 0.173006"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[ :price :demand :supply :diff ;\n",
" currentprices demand(currentprices) q demand(currentprices) - q ]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Importantly, the demand for the `i`th good depends on not only `p[i]`, but also on the prices of the other goods. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"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=\"clip220\">\n",
" <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip220)\" d=\"\n",
"M0 1600 L2400 1600 L2400 0 L0 0 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip221\">\n",
" <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip220)\" d=\"\n",
"M255.977 1423.18 L2352.76 1423.18 L2352.76 47.2441 L255.977 47.2441 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip222\">\n",
" <rect x=\"255\" y=\"47\" width=\"2098\" height=\"1377\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 315.32,1423.18 315.32,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 710.939,1423.18 710.939,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1106.56,1423.18 1106.56,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1502.18,1423.18 1502.18,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1897.79,1423.18 1897.79,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 2293.41,1423.18 2293.41,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 255.977,1423.18 2352.76,1423.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 315.32,1423.18 315.32,1406.67 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 710.939,1423.18 710.939,1406.67 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1106.56,1423.18 1106.56,1406.67 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1502.18,1423.18 1502.18,1406.67 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1897.79,1423.18 1897.79,1406.67 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2293.41,1423.18 2293.41,1406.67 \n",
" \"/>\n",
"<path clip-path=\"url(#clip220)\" d=\"M 0 0 M315.32 1452.37 Q311.709 1452.37 309.88 1455.94 Q308.075 1459.48 308.075 1466.61 Q308.075 1473.71 309.88 1477.28 Q311.709 1480.82 315.32 1480.82 Q318.954 1480.82 320.76 1477.28 Q322.588 1473.71 322.588 1466.61 Q322.588 1459.48 320.76 1455.94 Q318.954 1452.37 315.32 1452.37 M315.32 1448.67 Q321.13 1448.67 324.186 1453.27 Q327.264 1457.86 327.264 1466.61 Q327.264 1475.33 324.186 1479.94 Q321.13 1484.52 315.32 1484.52 Q309.51 1484.52 306.431 1479.94 Q303.376 1475.33 303.376 1466.61 Q303.376 1457.86 306.431 1453.27 Q309.51 1448.67 315.32 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M701.321 1479.92 L708.959 1479.92 L708.959 1453.55 L700.649 1455.22 L700.649 1450.96 L708.913 1449.29 L713.589 1449.29 L713.589 1479.92 L721.228 1479.92 L721.228 1483.85 L701.321 1483.85 L701.321 1479.92 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1101.21 1479.92 L1117.53 1479.92 L1117.53 1483.85 L1095.59 1483.85 L1095.59 1479.92 Q1098.25 1477.16 1102.83 1472.53 Q1107.44 1467.88 1108.62 1466.54 Q1110.86 1464.01 1111.74 1462.28 Q1112.65 1460.52 1112.65 1458.83 Q1112.65 1456.07 1110.7 1454.34 Q1108.78 1452.6 1105.68 1452.6 Q1103.48 1452.6 1101.02 1453.37 Q1098.59 1454.13 1095.82 1455.68 L1095.82 1450.96 Q1098.64 1449.82 1101.09 1449.25 Q1103.55 1448.67 1105.59 1448.67 Q1110.96 1448.67 1114.15 1451.35 Q1117.34 1454.04 1117.34 1458.53 Q1117.34 1460.66 1116.53 1462.58 Q1115.75 1464.48 1113.64 1467.07 Q1113.06 1467.74 1109.96 1470.96 Q1106.86 1474.15 1101.21 1479.92 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1506.42 1465.22 Q1509.78 1465.94 1511.65 1468.2 Q1513.55 1470.47 1513.55 1473.81 Q1513.55 1478.92 1510.03 1481.72 Q1506.52 1484.52 1500.03 1484.52 Q1497.86 1484.52 1495.54 1484.08 Q1493.25 1483.67 1490.8 1482.81 L1490.8 1478.3 Q1492.74 1479.43 1495.06 1480.01 Q1497.37 1480.59 1499.9 1480.59 Q1504.29 1480.59 1506.59 1478.85 Q1508.9 1477.12 1508.9 1473.81 Q1508.9 1470.75 1506.75 1469.04 Q1504.62 1467.3 1500.8 1467.3 L1496.77 1467.3 L1496.77 1463.46 L1500.98 1463.46 Q1504.43 1463.46 1506.26 1462.09 Q1508.09 1460.7 1508.09 1458.11 Q1508.09 1455.45 1506.19 1454.04 Q1504.32 1452.6 1500.8 1452.6 Q1498.88 1452.6 1496.68 1453.02 Q1494.48 1453.44 1491.84 1454.31 L1491.84 1450.15 Q1494.5 1449.41 1496.82 1449.04 Q1499.16 1448.67 1501.22 1448.67 Q1506.54 1448.67 1509.64 1451.1 Q1512.74 1453.5 1512.74 1457.63 Q1512.74 1460.5 1511.1 1462.49 Q1509.46 1464.45 1506.42 1465.22 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1900.8 1453.37 L1889 1471.81 L1900.8 1471.81 L1900.8 1453.37 M1899.58 1449.29 L1905.46 1449.29 L1905.46 1471.81 L1910.39 1471.81 L1910.39 1475.7 L1905.46 1475.7 L1905.46 1483.85 L1900.8 1483.85 L1900.8 1475.7 L1885.2 1475.7 L1885.2 1471.19 L1899.58 1449.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2283.69 1449.29 L2302.05 1449.29 L2302.05 1453.23 L2287.97 1453.23 L2287.97 1461.7 Q2288.99 1461.35 2290.01 1461.19 Q2291.03 1461 2292.05 1461 Q2297.83 1461 2301.21 1464.18 Q2304.59 1467.35 2304.59 1472.76 Q2304.59 1478.34 2301.12 1481.44 Q2297.65 1484.52 2291.33 1484.52 Q2289.15 1484.52 2286.89 1484.15 Q2284.64 1483.78 2282.23 1483.04 L2282.23 1478.34 Q2284.32 1479.48 2286.54 1480.03 Q2288.76 1480.59 2291.24 1480.59 Q2295.24 1480.59 2297.58 1478.48 Q2299.92 1476.38 2299.92 1472.76 Q2299.92 1469.15 2297.58 1467.05 Q2295.24 1464.94 2291.24 1464.94 Q2289.36 1464.94 2287.49 1465.36 Q2285.64 1465.77 2283.69 1466.65 L2283.69 1449.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1233.83 1562.7 L1233.83 1581.6 L1227.95 1581.6 L1227.95 1532.4 L1233.83 1532.4 L1233.83 1537.81 Q1235.68 1534.62 1238.48 1533.1 Q1241.31 1531.54 1245.23 1531.54 Q1251.72 1531.54 1255.76 1536.69 Q1259.84 1541.85 1259.84 1550.25 Q1259.84 1558.65 1255.76 1563.81 Q1251.72 1568.97 1245.23 1568.97 Q1241.31 1568.97 1238.48 1567.44 Q1235.68 1565.88 1233.83 1562.7 M1253.76 1550.25 Q1253.76 1543.79 1251.09 1540.13 Q1248.44 1536.44 1243.8 1536.44 Q1239.15 1536.44 1236.48 1540.13 Q1233.83 1543.79 1233.83 1550.25 Q1233.83 1556.71 1236.48 1560.4 Q1239.15 1564.07 1243.8 1564.07 Q1248.44 1564.07 1251.09 1560.4 Q1253.76 1556.71 1253.76 1550.25 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1290.2 1537.87 Q1289.22 1537.3 1288.04 1537.04 Q1286.89 1536.76 1285.49 1536.76 Q1280.53 1536.76 1277.85 1540 Q1275.21 1543.22 1275.21 1549.27 L1275.21 1568.04 L1269.32 1568.04 L1269.32 1532.4 L1275.21 1532.4 L1275.21 1537.93 Q1277.06 1534.69 1280.02 1533.13 Q1282.98 1531.54 1287.21 1531.54 Q1287.82 1531.54 1288.55 1531.63 Q1289.28 1531.7 1290.17 1531.85 L1290.2 1537.87 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1296.35 1532.4 L1302.2 1532.4 L1302.2 1568.04 L1296.35 1568.04 L1296.35 1532.4 M1296.35 1518.52 L1302.2 1518.52 L1302.2 1525.93 L1296.35 1525.93 L1296.35 1518.52 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1340.11 1533.76 L1340.11 1539.24 Q1337.63 1537.87 1335.11 1537.2 Q1332.63 1536.5 1330.08 1536.5 Q1324.39 1536.5 1321.24 1540.13 Q1318.08 1543.73 1318.08 1550.25 Q1318.08 1556.78 1321.24 1560.4 Q1324.39 1564 1330.08 1564 Q1332.63 1564 1335.11 1563.33 Q1337.63 1562.63 1340.11 1561.26 L1340.11 1566.68 Q1337.66 1567.82 1335.02 1568.39 Q1332.41 1568.97 1329.45 1568.97 Q1321.39 1568.97 1316.65 1563.91 Q1311.91 1558.85 1311.91 1550.25 Q1311.91 1541.53 1316.68 1536.53 Q1321.49 1531.54 1329.83 1531.54 Q1332.53 1531.54 1335.11 1532.11 Q1337.69 1532.65 1340.11 1533.76 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1380.79 1548.76 L1380.79 1551.62 L1353.86 1551.62 Q1354.24 1557.67 1357.49 1560.85 Q1360.77 1564 1366.59 1564 Q1369.97 1564 1373.12 1563.17 Q1376.3 1562.35 1379.42 1560.69 L1379.42 1566.23 Q1376.27 1567.57 1372.96 1568.27 Q1369.65 1568.97 1366.24 1568.97 Q1357.71 1568.97 1352.71 1564 Q1347.75 1559.04 1347.75 1550.57 Q1347.75 1541.82 1352.46 1536.69 Q1357.2 1531.54 1365.22 1531.54 Q1372.42 1531.54 1376.59 1536.18 Q1380.79 1540.8 1380.79 1548.76 M1374.93 1547.04 Q1374.87 1542.23 1372.22 1539.37 Q1369.62 1536.5 1365.29 1536.5 Q1360.38 1536.5 1357.42 1539.27 Q1354.5 1542.04 1354.05 1547.07 L1374.93 1547.04 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 255.977,1255.26 2352.76,1255.26 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 255.977,1047.59 2352.76,1047.59 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 255.977,839.919 2352.76,839.919 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 255.977,632.25 2352.76,632.25 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 255.977,424.581 2352.76,424.581 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 255.977,216.911 2352.76,216.911 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 255.977,1423.18 255.977,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 255.977,1255.26 281.139,1255.26 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 255.977,1047.59 281.139,1047.59 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 255.977,839.919 281.139,839.919 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 255.977,632.25 281.139,632.25 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 255.977,424.581 281.139,424.581 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 255.977,216.911 281.139,216.911 \n",
" \"/>\n",
"<path clip-path=\"url(#clip220)\" d=\"M 0 0 M114.631 1255.71 L144.306 1255.71 L144.306 1259.64 L114.631 1259.64 L114.631 1255.71 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M164.399 1241.06 Q160.788 1241.06 158.959 1244.62 Q157.153 1248.16 157.153 1255.29 Q157.153 1262.4 158.959 1265.96 Q160.788 1269.51 164.399 1269.51 Q168.033 1269.51 169.839 1265.96 Q171.667 1262.4 171.667 1255.29 Q171.667 1248.16 169.839 1244.62 Q168.033 1241.06 164.399 1241.06 M164.399 1237.35 Q170.209 1237.35 173.264 1241.96 Q176.343 1246.54 176.343 1255.29 Q176.343 1264.02 173.264 1268.63 Q170.209 1273.21 164.399 1273.21 Q158.589 1273.21 155.51 1268.63 Q152.454 1264.02 152.454 1255.29 Q152.454 1246.54 155.51 1241.96 Q158.589 1237.35 164.399 1237.35 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M184.561 1266.66 L189.445 1266.66 L189.445 1272.54 L184.561 1272.54 L184.561 1266.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M203.658 1268.6 L219.977 1268.6 L219.977 1272.54 L198.033 1272.54 L198.033 1268.6 Q200.695 1265.85 205.278 1261.22 Q209.885 1256.57 211.065 1255.22 Q213.311 1252.7 214.19 1250.96 Q215.093 1249.2 215.093 1247.51 Q215.093 1244.76 213.149 1243.02 Q211.227 1241.29 208.125 1241.29 Q205.926 1241.29 203.473 1242.05 Q201.042 1242.82 198.264 1244.37 L198.264 1239.64 Q201.088 1238.51 203.542 1237.93 Q205.996 1237.35 208.033 1237.35 Q213.403 1237.35 216.598 1240.04 Q219.792 1242.72 219.792 1247.21 Q219.792 1249.34 218.982 1251.26 Q218.195 1253.16 216.088 1255.76 Q215.51 1256.43 212.408 1259.64 Q209.306 1262.84 203.658 1268.6 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M114.26 1048.04 L143.936 1048.04 L143.936 1051.98 L114.26 1051.98 L114.26 1048.04 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M164.028 1033.39 Q160.417 1033.39 158.589 1036.95 Q156.783 1040.49 156.783 1047.62 Q156.783 1054.73 158.589 1058.29 Q160.417 1061.84 164.028 1061.84 Q167.663 1061.84 169.468 1058.29 Q171.297 1054.73 171.297 1047.62 Q171.297 1040.49 169.468 1036.95 Q167.663 1033.39 164.028 1033.39 M164.028 1029.68 Q169.839 1029.68 172.894 1034.29 Q175.973 1038.87 175.973 1047.62 Q175.973 1056.35 172.894 1060.96 Q169.839 1065.54 164.028 1065.54 Q158.218 1065.54 155.14 1060.96 Q152.084 1056.35 152.084 1047.62 Q152.084 1038.87 155.14 1034.29 Q158.218 1029.68 164.028 1029.68 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M184.19 1058.99 L189.075 1058.99 L189.075 1064.87 L184.19 1064.87 L184.19 1058.99 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M200.07 1060.93 L207.709 1060.93 L207.709 1034.57 L199.399 1036.23 L199.399 1031.98 L207.662 1030.31 L212.338 1030.31 L212.338 1060.93 L219.977 1060.93 L219.977 1064.87 L200.07 1064.87 L200.07 1060.93 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M162.802 825.718 Q159.19 825.718 157.362 829.283 Q155.556 832.825 155.556 839.954 Q155.556 847.061 157.362 850.625 Q159.19 854.167 162.802 854.167 Q166.436 854.167 168.241 850.625 Q170.07 847.061 170.07 839.954 Q170.07 832.825 168.241 829.283 Q166.436 825.718 162.802 825.718 M162.802 822.014 Q168.612 822.014 171.667 826.621 Q174.746 831.204 174.746 839.954 Q174.746 848.681 171.667 853.287 Q168.612 857.871 162.802 857.871 Q156.991 857.871 153.913 853.287 Q150.857 848.681 150.857 839.954 Q150.857 831.204 153.913 826.621 Q156.991 822.014 162.802 822.014 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M182.963 851.32 L187.848 851.32 L187.848 857.199 L182.963 857.199 L182.963 851.32 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M208.033 825.718 Q204.422 825.718 202.593 829.283 Q200.787 832.825 200.787 839.954 Q200.787 847.061 202.593 850.625 Q204.422 854.167 208.033 854.167 Q211.667 854.167 213.473 850.625 Q215.301 847.061 215.301 839.954 Q215.301 832.825 213.473 829.283 Q211.667 825.718 208.033 825.718 M208.033 822.014 Q213.843 822.014 216.898 826.621 Q219.977 831.204 219.977 839.954 Q219.977 848.681 216.898 853.287 Q213.843 857.871 208.033 857.871 Q202.223 857.871 199.144 853.287 Q196.088 848.681 196.088 839.954 Q196.088 831.204 199.144 826.621 Q202.223 822.014 208.033 822.014 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M164.028 618.049 Q160.417 618.049 158.589 621.614 Q156.783 625.155 156.783 632.285 Q156.783 639.391 158.589 642.956 Q160.417 646.498 164.028 646.498 Q167.663 646.498 169.468 642.956 Q171.297 639.391 171.297 632.285 Q171.297 625.155 169.468 621.614 Q167.663 618.049 164.028 618.049 M164.028 614.345 Q169.839 614.345 172.894 618.952 Q175.973 623.535 175.973 632.285 Q175.973 641.012 172.894 645.618 Q169.839 650.201 164.028 650.201 Q158.218 650.201 155.14 645.618 Q152.084 641.012 152.084 632.285 Q152.084 623.535 155.14 618.952 Q158.218 614.345 164.028 614.345 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M184.19 643.65 L189.075 643.65 L189.075 649.53 L184.19 649.53 L184.19 643.65 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M200.07 645.595 L207.709 645.595 L207.709 619.229 L199.399 620.896 L199.399 616.637 L207.662 614.97 L212.338 614.97 L212.338 645.595 L219.977 645.595 L219.977 649.53 L200.07 649.53 L200.07 645.595 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M164.399 410.379 Q160.788 410.379 158.959 413.944 Q157.153 417.486 157.153 424.615 Q157.153 431.722 158.959 435.287 Q160.788 438.828 164.399 438.828 Q168.033 438.828 169.839 435.287 Q171.667 431.722 171.667 424.615 Q171.667 417.486 169.839 413.944 Q168.033 410.379 164.399 410.379 M164.399 406.676 Q170.209 406.676 173.264 411.282 Q176.343 415.866 176.343 424.615 Q176.343 433.342 173.264 437.949 Q170.209 442.532 164.399 442.532 Q158.589 442.532 155.51 437.949 Q152.454 433.342 152.454 424.615 Q152.454 415.866 155.51 411.282 Q158.589 406.676 164.399 406.676 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M184.561 435.981 L189.445 435.981 L189.445 441.861 L184.561 441.861 L184.561 435.981 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M203.658 437.926 L219.977 437.926 L219.977 441.861 L198.033 441.861 L198.033 437.926 Q200.695 435.171 205.278 430.541 Q209.885 425.889 211.065 424.546 Q213.311 422.023 214.19 420.287 Q215.093 418.528 215.093 416.838 Q215.093 414.083 213.149 412.347 Q211.227 410.611 208.125 410.611 Q205.926 410.611 203.473 411.375 Q201.042 412.139 198.264 413.69 L198.264 408.967 Q201.088 407.833 203.542 407.254 Q205.996 406.676 208.033 406.676 Q213.403 406.676 216.598 409.361 Q219.792 412.046 219.792 416.537 Q219.792 418.666 218.982 420.588 Q218.195 422.486 216.088 425.078 Q215.51 425.75 212.408 428.967 Q209.306 432.162 203.658 437.926 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M163.45 202.71 Q159.839 202.71 158.01 206.275 Q156.204 209.817 156.204 216.946 Q156.204 224.053 158.01 227.617 Q159.839 231.159 163.45 231.159 Q167.084 231.159 168.889 227.617 Q170.718 224.053 170.718 216.946 Q170.718 209.817 168.889 206.275 Q167.084 202.71 163.45 202.71 M163.45 199.006 Q169.26 199.006 172.315 203.613 Q175.394 208.196 175.394 216.946 Q175.394 225.673 172.315 230.279 Q169.26 234.863 163.45 234.863 Q157.64 234.863 154.561 230.279 Q151.505 225.673 151.505 216.946 Q151.505 208.196 154.561 203.613 Q157.64 199.006 163.45 199.006 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M183.612 228.312 L188.496 228.312 L188.496 234.191 L183.612 234.191 L183.612 228.312 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M212.848 215.557 Q216.204 216.275 218.079 218.543 Q219.977 220.812 219.977 224.145 Q219.977 229.261 216.459 232.062 Q212.94 234.863 206.459 234.863 Q204.283 234.863 201.968 234.423 Q199.676 234.006 197.223 233.15 L197.223 228.636 Q199.167 229.77 201.482 230.349 Q203.797 230.928 206.32 230.928 Q210.718 230.928 213.01 229.191 Q215.324 227.455 215.324 224.145 Q215.324 221.09 213.172 219.377 Q211.042 217.641 207.223 217.641 L203.195 217.641 L203.195 213.798 L207.408 213.798 Q210.857 213.798 212.686 212.432 Q214.514 211.043 214.514 208.451 Q214.514 205.789 212.616 204.377 Q210.741 202.942 207.223 202.942 Q205.301 202.942 203.102 203.358 Q200.903 203.775 198.264 204.655 L198.264 200.488 Q200.926 199.747 203.241 199.377 Q205.579 199.006 207.639 199.006 Q212.963 199.006 216.065 201.437 Q219.167 203.844 219.167 207.965 Q219.167 210.835 217.523 212.826 Q215.88 214.793 212.848 215.557 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M33.7671 838.257 L14.479 838.257 L14.479 832.4 L64.0042 832.4 L64.0042 838.257 L58.657 838.257 Q61.8398 840.103 63.3994 842.936 Q64.9272 845.737 64.9272 849.683 Q64.9272 856.144 59.771 860.219 Q54.6147 864.261 46.212 864.261 Q37.8093 864.261 32.6531 860.219 Q27.4968 856.144 27.4968 849.683 Q27.4968 845.737 29.0564 842.936 Q30.5842 840.103 33.7671 838.257 M46.212 858.213 Q52.6732 858.213 56.3653 855.572 Q60.0256 852.898 60.0256 848.251 Q60.0256 843.604 56.3653 840.93 Q52.6732 838.257 46.212 838.257 Q39.7508 838.257 36.0905 840.93 Q32.3984 843.604 32.3984 848.251 Q32.3984 852.898 36.0905 855.572 Q39.7508 858.213 46.212 858.213 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M44.7161 789.846 L47.5806 789.846 L47.5806 816.773 Q53.6281 816.391 56.8109 813.144 Q59.9619 809.866 59.9619 804.041 Q59.9619 800.667 59.1344 797.516 Q58.3069 794.333 56.6518 791.214 L62.1899 791.214 Q63.5267 794.365 64.227 797.675 Q64.9272 800.986 64.9272 804.391 Q64.9272 812.921 59.9619 817.918 Q54.9967 822.884 46.5303 822.884 Q37.7774 822.884 32.6531 818.173 Q27.4968 813.431 27.4968 805.41 Q27.4968 798.217 32.1438 794.047 Q36.7589 789.846 44.7161 789.846 M42.9973 795.702 Q38.1912 795.766 35.3266 798.408 Q32.4621 801.017 32.4621 805.346 Q32.4621 810.248 35.2312 813.208 Q38.0002 816.136 43.0292 816.582 L42.9973 795.702 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M35.1993 752.479 Q31.2526 750.283 29.3747 747.227 Q27.4968 744.172 27.4968 740.034 Q27.4968 734.464 31.4117 731.44 Q35.2948 728.417 42.4881 728.417 L64.0042 728.417 L64.0042 734.305 L42.679 734.305 Q37.5546 734.305 35.072 736.119 Q32.5894 737.933 32.5894 741.657 Q32.5894 746.209 35.6131 748.85 Q38.6368 751.492 43.8567 751.492 L64.0042 751.492 L64.0042 757.381 L42.679 757.381 Q37.5228 757.381 35.072 759.195 Q32.5894 761.009 32.5894 764.797 Q32.5894 769.284 35.6449 771.926 Q38.6686 774.568 43.8567 774.568 L64.0042 774.568 L64.0042 780.456 L28.3562 780.456 L28.3562 774.568 L33.8944 774.568 Q30.616 772.563 29.0564 769.762 Q27.4968 766.961 27.4968 763.11 Q27.4968 759.227 29.4702 756.521 Q31.4436 753.784 35.1993 752.479 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M46.0847 700.535 Q46.0847 707.633 47.7079 710.37 Q49.3312 713.107 53.2461 713.107 Q56.3653 713.107 58.2114 711.07 Q60.0256 709.001 60.0256 705.468 Q60.0256 700.598 56.5881 697.67 Q53.1188 694.71 47.3897 694.71 L46.0847 694.71 L46.0847 700.535 M43.6657 688.854 L64.0042 688.854 L64.0042 694.71 L58.5933 694.71 Q61.8398 696.715 63.3994 699.707 Q64.9272 702.699 64.9272 707.028 Q64.9272 712.502 61.8716 715.749 Q58.7843 718.964 53.6281 718.964 Q47.6125 718.964 44.5569 714.953 Q41.5014 710.911 41.5014 702.922 L41.5014 694.71 L40.9285 694.71 Q36.8862 694.71 34.6901 697.384 Q32.4621 700.026 32.4621 704.832 Q32.4621 707.887 33.1941 710.784 Q33.9262 713.68 35.3903 716.354 L29.9795 716.354 Q28.7381 713.139 28.1334 710.115 Q27.4968 707.091 27.4968 704.227 Q27.4968 696.493 31.5072 692.673 Q35.5176 688.854 43.6657 688.854 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M42.4881 647.158 L64.0042 647.158 L64.0042 653.015 L42.679 653.015 Q37.6183 653.015 35.1038 654.988 Q32.5894 656.962 32.5894 660.908 Q32.5894 665.651 35.6131 668.388 Q38.6368 671.125 43.8567 671.125 L64.0042 671.125 L64.0042 677.013 L28.3562 677.013 L28.3562 671.125 L33.8944 671.125 Q30.6797 669.025 29.0883 666.192 Q27.4968 663.327 27.4968 659.603 Q27.4968 653.46 31.3163 650.309 Q35.1038 647.158 42.4881 647.158 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M33.7671 612.02 L14.479 612.02 L14.479 606.163 L64.0042 606.163 L64.0042 612.02 L58.657 612.02 Q61.8398 613.866 63.3994 616.698 Q64.9272 619.499 64.9272 623.446 Q64.9272 629.907 59.771 633.981 Q54.6147 638.024 46.212 638.024 Q37.8093 638.024 32.6531 633.981 Q27.4968 629.907 27.4968 623.446 Q27.4968 619.499 29.0564 616.698 Q30.5842 613.866 33.7671 612.02 M46.212 631.976 Q52.6732 631.976 56.3653 629.334 Q60.0256 626.661 60.0256 622.014 Q60.0256 617.367 56.3653 614.693 Q52.6732 612.02 46.212 612.02 Q39.7508 612.02 36.0905 614.693 Q32.3984 617.367 32.3984 622.014 Q32.3984 626.661 36.0905 629.334 Q39.7508 631.976 46.212 631.976 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip222)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 315.32,86.1857 319.276,90.756 323.232,95.3124 327.189,99.855 331.145,104.384 335.101,108.899 339.057,113.4 343.013,117.888 346.969,122.362 350.926,126.823 \n",
" 354.882,131.27 358.838,135.704 362.794,140.125 366.75,144.533 370.707,148.927 374.663,153.308 378.619,157.676 382.575,162.032 386.531,166.374 390.488,170.703 \n",
" 394.444,175.02 398.4,179.324 402.356,183.615 406.312,187.893 410.268,192.159 414.225,196.412 418.181,200.653 422.137,204.881 426.093,209.097 430.049,213.301 \n",
" 434.006,217.492 437.962,221.671 441.918,225.838 445.874,229.993 449.83,234.136 453.786,238.267 457.743,242.386 461.699,246.493 465.655,250.588 469.611,254.671 \n",
" 473.567,258.742 477.524,262.802 481.48,266.851 485.436,270.887 489.392,274.912 493.348,278.926 497.305,282.928 501.261,286.919 505.217,290.898 509.173,294.866 \n",
" 513.129,298.823 517.085,302.769 521.042,306.703 524.998,310.626 528.954,314.539 532.91,318.44 536.866,322.33 540.823,326.21 544.779,330.078 548.735,333.936 \n",
" 552.691,337.783 556.647,341.619 560.604,345.444 564.56,349.259 568.516,353.063 572.472,356.857 576.428,360.64 580.384,364.412 584.341,368.175 588.297,371.926 \n",
" 592.253,375.668 596.209,379.399 600.165,383.12 604.122,386.831 608.078,390.531 612.034,394.221 615.99,397.902 619.946,401.572 623.903,405.232 627.859,408.882 \n",
" 631.815,412.522 635.771,416.153 639.727,419.773 643.683,423.384 647.64,426.985 651.596,430.576 655.552,434.158 659.508,437.73 663.464,441.292 667.421,444.845 \n",
" 671.377,448.388 675.333,451.922 679.289,455.446 683.245,458.961 687.201,462.466 691.158,465.962 695.114,469.449 699.07,472.926 703.026,476.395 706.982,479.854 \n",
" 710.939,483.304 714.895,486.744 718.851,490.176 722.807,493.599 726.763,497.012 730.72,500.417 734.676,503.813 738.632,507.199 742.588,510.577 746.544,513.946 \n",
" 750.5,517.307 754.457,520.658 758.413,524.001 762.369,527.335 766.325,530.66 770.281,533.977 774.238,537.285 778.194,540.585 782.15,543.876 786.106,547.158 \n",
" 790.062,550.432 794.019,553.698 797.975,556.955 801.931,560.204 805.887,563.445 809.843,566.677 813.799,569.901 817.756,573.116 821.712,576.324 825.668,579.523 \n",
" 829.624,582.714 833.58,585.897 837.537,589.072 841.493,592.239 845.449,595.398 849.405,598.549 853.361,601.692 857.317,604.827 861.274,607.954 865.23,611.073 \n",
" 869.186,614.184 873.142,617.288 877.098,620.384 881.055,623.472 885.011,626.552 888.967,629.624 892.923,632.689 896.879,635.746 900.836,638.796 904.792,641.838 \n",
" 908.748,644.873 912.704,647.9 916.66,650.919 920.616,653.931 924.573,656.936 928.529,659.933 932.485,662.922 936.441,665.905 940.397,668.88 944.354,671.848 \n",
" 948.31,674.808 952.266,677.761 956.222,680.707 960.178,683.646 964.135,686.578 968.091,689.502 972.047,692.419 976.003,695.33 979.959,698.233 983.915,701.129 \n",
" 987.872,704.018 991.828,706.9 995.784,709.775 999.74,712.643 1003.7,715.505 1007.65,718.359 1011.61,721.207 1015.56,724.047 1019.52,726.881 1023.48,729.708 \n",
" 1027.43,732.528 1031.39,735.342 1035.35,738.149 1039.3,740.949 1043.26,743.742 1047.21,746.529 1051.17,749.309 1055.13,752.083 1059.08,754.85 1063.04,757.61 \n",
" 1067,760.364 1070.95,763.112 1074.91,765.853 1078.86,768.587 1082.82,771.315 1086.78,774.037 1090.73,776.752 1094.69,779.461 1098.64,782.163 1102.6,784.859 \n",
" 1106.56,787.549 1110.51,790.233 1114.47,792.91 1118.43,795.581 1122.38,798.246 1126.34,800.904 1130.29,803.557 1134.25,806.203 1138.21,808.843 1142.16,811.477 \n",
" 1146.12,814.105 1150.08,816.727 1154.03,819.343 1157.99,821.953 1161.94,824.557 1165.9,827.155 1169.86,829.747 1173.81,832.333 1177.77,834.913 1181.72,837.487 \n",
" 1185.68,840.055 1189.64,842.617 1193.59,845.174 1197.55,847.725 1201.51,850.269 1205.46,852.809 1209.42,855.342 1213.37,857.87 1217.33,860.391 1221.29,862.908 \n",
" 1225.24,865.418 1229.2,867.923 1233.16,870.422 1237.11,872.916 1241.07,875.404 1245.02,877.886 1248.98,880.363 1252.94,882.834 1256.89,885.3 1260.85,887.76 \n",
" 1264.8,890.215 1268.76,892.664 1272.72,895.108 1276.67,897.546 1280.63,899.979 1284.59,902.406 1288.54,904.828 1292.5,907.245 1296.45,909.657 1300.41,912.063 \n",
" 1304.37,914.463 1308.32,916.859 1312.28,919.249 1316.24,921.634 1320.19,924.013 1324.15,926.388 1328.1,928.757 1332.06,931.121 1336.02,933.48 1339.97,935.834 \n",
" 1343.93,938.182 1347.88,940.525 1351.84,942.864 1355.8,945.197 1359.75,947.525 1363.71,949.848 1367.67,952.166 1371.62,954.479 1375.58,956.787 1379.53,959.09 \n",
" 1383.49,961.388 1387.45,963.681 1391.4,965.969 1395.36,968.252 1399.32,970.531 1403.27,972.804 1407.23,975.072 1411.18,977.336 1415.14,979.595 1419.1,981.849 \n",
" 1423.05,984.098 1427.01,986.342 1430.96,988.582 1434.92,990.816 1438.88,993.046 1442.83,995.272 1446.79,997.492 1450.75,999.708 1454.7,1001.92 1458.66,1004.13 \n",
" 1462.61,1006.33 1466.57,1008.52 1470.53,1010.72 1474.48,1012.9 1478.44,1015.09 1482.39,1017.27 1486.35,1019.44 1490.31,1021.61 1494.26,1023.77 1498.22,1025.93 \n",
" 1502.18,1028.09 1506.13,1030.24 1510.09,1032.39 1514.04,1034.53 1518,1036.67 1521.96,1038.8 1525.91,1040.93 1529.87,1043.06 1533.83,1045.18 1537.78,1047.29 \n",
" 1541.74,1049.4 1545.69,1051.51 1549.65,1053.61 1553.61,1055.71 1557.56,1057.81 1561.52,1059.9 1565.47,1061.98 1569.43,1064.06 1573.39,1066.14 1577.34,1068.21 \n",
" 1581.3,1070.28 1585.26,1072.34 1589.21,1074.4 1593.17,1076.46 1597.12,1078.51 1601.08,1080.56 1605.04,1082.6 1608.99,1084.64 1612.95,1086.67 1616.91,1088.7 \n",
" 1620.86,1090.73 1624.82,1092.75 1628.77,1094.77 1632.73,1096.79 1636.69,1098.8 1640.64,1100.8 1644.6,1102.8 1648.55,1104.8 1652.51,1106.8 1656.47,1108.79 \n",
" 1660.42,1110.77 1664.38,1112.75 1668.34,1114.73 1672.29,1116.71 1676.25,1118.68 1680.2,1120.64 1684.16,1122.6 1688.12,1124.56 1692.07,1126.52 1696.03,1128.47 \n",
" 1699.99,1130.41 1703.94,1132.36 1707.9,1134.3 1711.85,1136.23 1715.81,1138.16 1719.77,1140.09 1723.72,1142.01 1727.68,1143.93 1731.63,1145.85 1735.59,1147.76 \n",
" 1739.55,1149.67 1743.5,1151.57 1747.46,1153.48 1751.42,1155.37 1755.37,1157.27 1759.33,1159.16 1763.28,1161.04 1767.24,1162.92 1771.2,1164.8 1775.15,1166.68 \n",
" 1779.11,1168.55 1783.07,1170.42 1787.02,1172.28 1790.98,1174.14 1794.93,1176 1798.89,1177.85 1802.85,1179.7 1806.8,1181.55 1810.76,1183.39 1814.71,1185.23 \n",
" 1818.67,1187.06 1822.63,1188.9 1826.58,1190.72 1830.54,1192.55 1834.5,1194.37 1838.45,1196.19 1842.41,1198 1846.36,1199.81 1850.32,1201.62 1854.28,1203.42 \n",
" 1858.23,1205.22 1862.19,1207.02 1866.14,1208.81 1870.1,1210.6 1874.06,1212.39 1878.01,1214.17 1881.97,1215.95 1885.93,1217.73 1889.88,1219.5 1893.84,1221.27 \n",
" 1897.79,1223.04 1901.75,1224.8 1905.71,1226.56 1909.66,1228.32 1913.62,1230.07 1917.58,1231.82 1921.53,1233.57 1925.49,1235.31 1929.44,1237.05 1933.4,1238.79 \n",
" 1937.36,1240.52 1941.31,1242.25 1945.27,1243.98 1949.22,1245.7 1953.18,1247.42 1957.14,1249.14 1961.09,1250.85 1965.05,1252.57 1969.01,1254.27 1972.96,1255.98 \n",
" 1976.92,1257.68 1980.87,1259.38 1984.83,1261.07 1988.79,1262.76 1992.74,1264.45 1996.7,1266.14 2000.66,1267.82 2004.61,1269.5 2008.57,1271.18 2012.52,1272.85 \n",
" 2016.48,1274.52 2020.44,1276.19 2024.39,1277.85 2028.35,1279.51 2032.3,1281.17 2036.26,1282.82 2040.22,1284.48 2044.17,1286.12 2048.13,1287.77 2052.09,1289.41 \n",
" 2056.04,1291.05 2060,1292.69 2063.95,1294.32 2067.91,1295.95 2071.87,1297.58 2075.82,1299.21 2079.78,1300.83 2083.74,1302.45 2087.69,1304.06 2091.65,1305.68 \n",
" 2095.6,1307.29 2099.56,1308.89 2103.52,1310.5 2107.47,1312.1 2111.43,1313.7 2115.38,1315.29 2119.34,1316.89 2123.3,1318.48 2127.25,1320.06 2131.21,1321.65 \n",
" 2135.17,1323.23 2139.12,1324.81 2143.08,1326.38 2147.03,1327.96 2150.99,1329.53 2154.95,1331.09 2158.9,1332.66 2162.86,1334.22 2166.82,1335.78 2170.77,1337.33 \n",
" 2174.73,1338.89 2178.68,1340.44 2182.64,1341.99 2186.6,1343.53 2190.55,1345.07 2194.51,1346.61 2198.46,1348.15 2202.42,1349.68 2206.38,1351.22 2210.33,1352.74 \n",
" 2214.29,1354.27 2218.25,1355.79 2222.2,1357.31 2226.16,1358.83 2230.11,1360.35 2234.07,1361.86 2238.03,1363.37 2241.98,1364.88 2245.94,1366.38 2249.9,1367.89 \n",
" 2253.85,1369.39 2257.81,1370.88 2261.76,1372.38 2265.72,1373.87 2269.68,1375.36 2273.63,1376.84 2277.59,1378.33 2281.54,1379.81 2285.5,1381.29 2289.46,1382.76 \n",
" 2293.41,1384.24 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip222)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" -1840.8,183.565 4449.53,183.565 \n",
" \"/>\n",
"<path clip-path=\"url(#clip220)\" d=\"\n",
"M1712.51 274.549 L2282.86 274.549 L2282.86 93.1086 L1712.51 93.1086 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1712.51,274.549 2282.86,274.549 2282.86,93.1086 1712.51,93.1086 1712.51,274.549 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip220)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1735.8,153.589 1875.59,153.589 \n",
" \"/>\n",
"<path clip-path=\"url(#clip220)\" d=\"M 0 0 M1917.8 148.878 L1917.8 134.85 L1922.06 134.85 L1922.06 170.869 L1917.8 170.869 L1917.8 166.98 Q1916.46 169.295 1914.39 170.429 Q1912.36 171.54 1909.49 171.54 Q1904.79 171.54 1901.83 167.79 Q1898.89 164.04 1898.89 157.929 Q1898.89 151.818 1901.83 148.068 Q1904.79 144.318 1909.49 144.318 Q1912.36 144.318 1914.39 145.452 Q1916.46 146.563 1917.8 148.878 M1903.28 157.929 Q1903.28 162.628 1905.21 165.313 Q1907.15 167.975 1910.53 167.975 Q1913.91 167.975 1915.85 165.313 Q1917.8 162.628 1917.8 157.929 Q1917.8 153.23 1915.85 150.568 Q1913.91 147.883 1910.53 147.883 Q1907.15 147.883 1905.21 150.568 Q1903.28 153.23 1903.28 157.929 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1953.01 156.841 L1953.01 158.924 L1933.42 158.924 Q1933.7 163.322 1936.06 165.637 Q1938.45 167.929 1942.68 167.929 Q1945.14 167.929 1947.43 167.327 Q1949.74 166.725 1952.01 165.521 L1952.01 169.549 Q1949.72 170.521 1947.31 171.031 Q1944.9 171.54 1942.43 171.54 Q1936.22 171.54 1932.59 167.929 Q1928.98 164.318 1928.98 158.16 Q1928.98 151.795 1932.4 148.068 Q1935.85 144.318 1941.69 144.318 Q1946.92 144.318 1949.95 147.697 Q1953.01 151.054 1953.01 156.841 M1948.75 155.591 Q1948.7 152.096 1946.78 150.012 Q1944.88 147.929 1941.73 147.929 Q1938.17 147.929 1936.02 149.943 Q1933.89 151.957 1933.56 155.614 L1948.75 155.591 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1980.18 149.92 Q1981.78 147.049 1984 145.684 Q1986.22 144.318 1989.23 144.318 Q1993.28 144.318 1995.48 147.165 Q1997.68 149.989 1997.68 155.221 L1997.68 170.869 L1993.4 170.869 L1993.4 155.359 Q1993.4 151.633 1992.08 149.827 Q1990.76 148.022 1988.05 148.022 Q1984.74 148.022 1982.82 150.221 Q1980.9 152.42 1980.9 156.216 L1980.9 170.869 L1976.62 170.869 L1976.62 155.359 Q1976.62 151.609 1975.3 149.827 Q1973.98 148.022 1971.22 148.022 Q1967.96 148.022 1966.04 150.244 Q1964.12 152.443 1964.12 156.216 L1964.12 170.869 L1959.83 170.869 L1959.83 144.943 L1964.12 144.943 L1964.12 148.971 Q1965.58 146.586 1967.61 145.452 Q1969.65 144.318 1972.45 144.318 Q1975.27 144.318 1977.24 145.753 Q1979.23 147.188 1980.18 149.92 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2017.96 157.836 Q2012.8 157.836 2010.81 159.017 Q2008.82 160.197 2008.82 163.045 Q2008.82 165.313 2010.3 166.656 Q2011.8 167.975 2014.37 167.975 Q2017.91 167.975 2020.04 165.475 Q2022.2 162.952 2022.2 158.785 L2022.2 157.836 L2017.96 157.836 M2026.45 156.077 L2026.45 170.869 L2022.2 170.869 L2022.2 166.933 Q2020.74 169.295 2018.56 170.429 Q2016.39 171.54 2013.24 171.54 Q2009.26 171.54 2006.89 169.318 Q2004.56 167.072 2004.56 163.322 Q2004.56 158.947 2007.47 156.725 Q2010.41 154.503 2016.22 154.503 L2022.2 154.503 L2022.2 154.086 Q2022.2 151.147 2020.25 149.549 Q2018.33 147.929 2014.83 147.929 Q2012.61 147.929 2010.51 148.461 Q2008.4 148.994 2006.45 150.059 L2006.45 146.123 Q2008.79 145.221 2010.99 144.781 Q2013.19 144.318 2015.27 144.318 Q2020.9 144.318 2023.68 147.234 Q2026.45 150.151 2026.45 156.077 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2056.78 155.221 L2056.78 170.869 L2052.52 170.869 L2052.52 155.359 Q2052.52 151.679 2051.08 149.85 Q2049.65 148.022 2046.78 148.022 Q2043.33 148.022 2041.34 150.221 Q2039.35 152.42 2039.35 156.216 L2039.35 170.869 L2035.07 170.869 L2035.07 144.943 L2039.35 144.943 L2039.35 148.971 Q2040.88 146.633 2042.94 145.475 Q2045.02 144.318 2047.73 144.318 Q2052.2 144.318 2054.49 147.096 Q2056.78 149.85 2056.78 155.221 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2082.33 148.878 L2082.33 134.85 L2086.59 134.85 L2086.59 170.869 L2082.33 170.869 L2082.33 166.98 Q2080.99 169.295 2078.93 170.429 Q2076.89 171.54 2074.02 171.54 Q2069.32 171.54 2066.36 167.79 Q2063.42 164.04 2063.42 157.929 Q2063.42 151.818 2066.36 148.068 Q2069.32 144.318 2074.02 144.318 Q2076.89 144.318 2078.93 145.452 Q2080.99 146.563 2082.33 148.878 M2067.82 157.929 Q2067.82 162.628 2069.74 165.313 Q2071.69 167.975 2075.07 167.975 Q2078.44 167.975 2080.39 165.313 Q2082.33 162.628 2082.33 157.929 Q2082.33 153.23 2080.39 150.568 Q2078.44 147.883 2075.07 147.883 Q2071.69 147.883 2069.74 150.568 Q2067.82 153.23 2067.82 157.929 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2129.09 145.938 L2129.09 149.92 Q2127.29 148.924 2125.46 148.438 Q2123.65 147.929 2121.8 147.929 Q2117.66 147.929 2115.37 150.568 Q2113.07 153.184 2113.07 157.929 Q2113.07 162.674 2115.37 165.313 Q2117.66 167.929 2121.8 167.929 Q2123.65 167.929 2125.46 167.443 Q2127.29 166.933 2129.09 165.938 L2129.09 169.873 Q2127.31 170.707 2125.39 171.123 Q2123.49 171.54 2121.34 171.54 Q2115.48 171.54 2112.03 167.859 Q2108.58 164.179 2108.58 157.929 Q2108.58 151.586 2112.06 147.952 Q2115.55 144.318 2121.62 144.318 Q2123.58 144.318 2125.46 144.735 Q2127.33 145.128 2129.09 145.938 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2136.06 160.637 L2136.06 144.943 L2140.32 144.943 L2140.32 160.475 Q2140.32 164.156 2141.75 166.008 Q2143.19 167.836 2146.06 167.836 Q2149.51 167.836 2151.5 165.637 Q2153.51 163.438 2153.51 159.642 L2153.51 144.943 L2157.77 144.943 L2157.77 170.869 L2153.51 170.869 L2153.51 166.887 Q2151.96 169.248 2149.9 170.406 Q2147.87 171.54 2145.16 171.54 Q2140.69 171.54 2138.38 168.762 Q2136.06 165.984 2136.06 160.637 M2146.78 144.318 L2146.78 144.318 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2181.57 148.924 Q2180.85 148.508 2180 148.322 Q2179.16 148.114 2178.14 148.114 Q2174.53 148.114 2172.59 150.475 Q2170.67 152.813 2170.67 157.211 L2170.67 170.869 L2166.38 170.869 L2166.38 144.943 L2170.67 144.943 L2170.67 148.971 Q2172.01 146.609 2174.16 145.475 Q2176.31 144.318 2179.39 144.318 Q2179.83 144.318 2180.37 144.387 Q2180.9 144.434 2181.55 144.549 L2181.57 148.924 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2182.98 144.943 L2187.5 144.943 L2195.6 166.702 L2203.7 144.943 L2208.21 144.943 L2198.49 170.869 L2192.7 170.869 L2182.98 144.943 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2236.27 156.841 L2236.27 158.924 L2216.68 158.924 Q2216.96 163.322 2219.32 165.637 Q2221.71 167.929 2225.94 167.929 Q2228.4 167.929 2230.69 167.327 Q2233 166.725 2235.27 165.521 L2235.27 169.549 Q2232.98 170.521 2230.57 171.031 Q2228.17 171.54 2225.69 171.54 Q2219.49 171.54 2215.85 167.929 Q2212.24 164.318 2212.24 158.16 Q2212.24 151.795 2215.67 148.068 Q2219.12 144.318 2224.95 144.318 Q2230.18 144.318 2233.21 147.697 Q2236.27 151.054 2236.27 156.841 M2232.01 155.591 Q2231.96 152.096 2230.04 150.012 Q2228.14 147.929 2225 147.929 Q2221.43 147.929 2219.28 149.943 Q2217.15 151.957 2216.82 155.614 L2232.01 155.591 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip220)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1735.8,214.069 1875.59,214.069 \n",
" \"/>\n",
"<path clip-path=\"url(#clip220)\" d=\"M 0 0 M1903.28 218.409 Q1903.28 223.108 1905.21 225.793 Q1907.15 228.455 1910.53 228.455 Q1913.91 228.455 1915.85 225.793 Q1917.8 223.108 1917.8 218.409 Q1917.8 213.71 1915.85 211.048 Q1913.91 208.363 1910.53 208.363 Q1907.15 208.363 1905.21 211.048 Q1903.28 213.71 1903.28 218.409 M1917.8 227.46 Q1916.46 229.775 1914.39 230.909 Q1912.36 232.02 1909.49 232.02 Q1904.79 232.02 1901.83 228.27 Q1898.89 224.52 1898.89 218.409 Q1898.89 212.298 1901.83 208.548 Q1904.79 204.798 1909.49 204.798 Q1912.36 204.798 1914.39 205.932 Q1916.46 207.043 1917.8 209.358 L1917.8 205.423 L1922.06 205.423 L1922.06 241.21 L1917.8 241.21 L1917.8 227.46 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1930.39 221.117 L1930.39 205.423 L1934.65 205.423 L1934.65 220.955 Q1934.65 224.636 1936.08 226.488 Q1937.52 228.316 1940.39 228.316 Q1943.84 228.316 1945.83 226.117 Q1947.84 223.918 1947.84 220.122 L1947.84 205.423 L1952.1 205.423 L1952.1 231.349 L1947.84 231.349 L1947.84 227.367 Q1946.29 229.728 1944.23 230.886 Q1942.2 232.02 1939.49 232.02 Q1935.02 232.02 1932.71 229.242 Q1930.39 226.464 1930.39 221.117 M1941.11 204.798 L1941.11 204.798 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M1972.66 218.316 Q1967.5 218.316 1965.51 219.497 Q1963.52 220.677 1963.52 223.525 Q1963.52 225.793 1965 227.136 Q1966.5 228.455 1969.07 228.455 Q1972.61 228.455 1974.74 225.955 Q1976.89 223.432 1976.89 219.265 L1976.89 218.316 L1972.66 218.316 M1981.15 216.557 L1981.15 231.349 L1976.89 231.349 L1976.89 227.413 Q1975.44 229.775 1973.26 230.909 Q1971.08 232.02 1967.94 232.02 Q1963.95 232.02 1961.59 229.798 Q1959.26 227.552 1959.26 223.802 Q1959.26 219.427 1962.17 217.205 Q1965.11 214.983 1970.92 214.983 L1976.89 214.983 L1976.89 214.566 Q1976.89 211.627 1974.95 210.029 Q1973.03 208.409 1969.53 208.409 Q1967.31 208.409 1965.2 208.941 Q1963.1 209.474 1961.15 210.539 L1961.15 206.603 Q1963.49 205.701 1965.69 205.261 Q1967.89 204.798 1969.97 204.798 Q1975.6 204.798 1978.38 207.714 Q1981.15 210.631 1981.15 216.557 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2011.48 215.701 L2011.48 231.349 L2007.22 231.349 L2007.22 215.839 Q2007.22 212.159 2005.78 210.33 Q2004.35 208.502 2001.48 208.502 Q1998.03 208.502 1996.04 210.701 Q1994.05 212.9 1994.05 216.696 L1994.05 231.349 L1989.76 231.349 L1989.76 205.423 L1994.05 205.423 L1994.05 209.451 Q1995.58 207.113 1997.64 205.955 Q1999.72 204.798 2002.43 204.798 Q2006.89 204.798 2009.19 207.576 Q2011.48 210.33 2011.48 215.701 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2024.19 198.062 L2024.19 205.423 L2032.96 205.423 L2032.96 208.733 L2024.19 208.733 L2024.19 222.807 Q2024.19 225.978 2025.04 226.881 Q2025.92 227.784 2028.58 227.784 L2032.96 227.784 L2032.96 231.349 L2028.58 231.349 Q2023.65 231.349 2021.78 229.52 Q2019.9 227.668 2019.9 222.807 L2019.9 208.733 L2016.78 208.733 L2016.78 205.423 L2019.9 205.423 L2019.9 198.062 L2024.19 198.062 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2038.56 205.423 L2042.82 205.423 L2042.82 231.349 L2038.56 231.349 L2038.56 205.423 M2038.56 195.33 L2042.82 195.33 L2042.82 200.724 L2038.56 200.724 L2038.56 195.33 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2055.95 198.062 L2055.95 205.423 L2064.72 205.423 L2064.72 208.733 L2055.95 208.733 L2055.95 222.807 Q2055.95 225.978 2056.8 226.881 Q2057.68 227.784 2060.34 227.784 L2064.72 227.784 L2064.72 231.349 L2060.34 231.349 Q2055.41 231.349 2053.54 229.52 Q2051.66 227.668 2051.66 222.807 L2051.66 208.733 L2048.54 208.733 L2048.54 205.423 L2051.66 205.423 L2051.66 198.062 L2055.95 198.062 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip220)\" d=\"M 0 0 M2081.11 233.756 Q2079.3 238.386 2077.59 239.798 Q2075.88 241.21 2073.01 241.21 L2069.6 241.21 L2069.6 237.645 L2072.1 237.645 Q2073.86 237.645 2074.83 236.812 Q2075.81 235.978 2076.99 232.876 L2077.75 230.932 L2067.26 205.423 L2071.78 205.423 L2079.88 225.701 L2087.98 205.423 L2092.5 205.423 L2081.11 233.756 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /></svg>\n"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"let thistrader = 1\n",
" # All of the prices except this trader's are fixed.\n",
" fixedprices = 1.0*ones(n)\n",
" \n",
" # Range of prices that this trader will consider.\n",
" pricestoplot = 0.0:0.01:5\n",
" \n",
" # Demand when this trader shifts to one of those prices\n",
" # (and others prices are held fixed).\n",
" observeddemand = similar(pricestoplot)\n",
" \n",
" # Fill the demand container.\n",
" for (i, p) in enumerate(pricestoplot)\n",
" # Replaces this trader's prices with the new value.\n",
" fixedprices[thistrader] = pricestoplot[i]\n",
" # Observe demand and extract this trader's demand.\n",
" observeddemand[i] = demand(fixedprices)[thistrader]\n",
" end\n",
" \n",
" # Plot.\n",
" plot(pricestoplot, observeddemand,\n",
" xlabel=\"price\", ylabel=\"demand\",\n",
" label=\"demand curve\")\n",
" \n",
" hline!([q[thistrader]], label=\"quantity\")\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Equilibrium and t&acirc;tonnement processes\n",
"*Equilibrium* means that no trader has an incentive to change her price&mdash;that is, for all traders, `demand(p) ≤ q`, and we allow `demand(p)[i] < q[i]` only if `p[i] = 0`.\n",
"\n",
"Under some technical conditions on the demand function and how aggressively the traders update their prices, we can show that a t&acirc;tonnement process converges to an equilibrium.\n",
"\n",
"To find the equilibrium here, we will use a price update rule called the *simultaneous t&acirc;tonnement process.*\n",
"\n",
"`α` describes how reactive the traders are."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"7×5 Matrix{Any}:\n",
" :currentprice :demand :supply :diff :newprice\n",
" 0.0641437 0.307904 0.316058 -0.00815368 0.062513\n",
" 0.257614 0.132883 0.314829 -0.181946 0.221225\n",
" 0.139949 0.188913 0.0879828 0.100931 0.160135\n",
" 0.110997 0.229927 0.135174 0.0947533 0.129948\n",
" 0.18076 0.13899 0.136047 0.00294268 0.181348\n",
" 0.246536 0.00138312 0.00990956 -0.00852644 0.24483"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Simultaneous tâtonnement process\n",
"α = 0.2\n",
"function priceupdate(p)\n",
" res = max.(0, p + α * (demand(p) - q))\n",
"\n",
" # Normalize prices to sum to one.\n",
" # By homogeneity, this does not change the demand at the new prices.\n",
" res ./= sum(res)\n",
"\n",
" return res\n",
"end\n",
"\n",
"currentprices = rand(n)\n",
"currentprices ./= sum(currentprices)\n",
"\n",
"[ :currentprice :demand :supply :diff :newprice ;\n",
" currentprices demand(currentprices) q demand(currentprices) - q priceupdate(currentprices) ]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that finding the new price requires only *observing* the demand. The traders do not need to \"know\" `A` or the equation for the demand."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5-element Vector{Vector{Float64}}:\n",
" [0.24999526764969154, 0.05379016810095744, 0.1840174685508432, 0.043633874197122585, 0.113627205339323, 0.3549360161620622]\n",
" [0.20686240711359824, 0.06180587386195269, 0.1885411717150587, 0.06779294835911062, 0.12356735001088376, 0.351430248939396]\n",
" [0.17163948477945837, 0.06858134481086237, 0.19475208215250506, 0.08606376898283614, 0.1325702738392026, 0.3463930454351355]\n",
" [0.14299624658707363, 0.07435437942987905, 0.20163210613627522, 0.09972705074906532, 0.14068783794191783, 0.340602379155789]\n",
" [0.11980693206089581, 0.07929926391443541, 0.20853055973302909, 0.10981957427752728, 0.14796742095816962, 0.33457624905594285]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function pricepath(p, T)\n",
" pricecontainer = Vector{Float64}[]\n",
"\n",
" for t in 1:T\n",
" push!(pricecontainer, p)\n",
" p = priceupdate(p)\n",
" end\n",
" \n",
" return pricecontainer\n",
"end\n",
"\n",
"\n",
"p0 = rand(n)\n",
"p0 ./= sum(p0)\n",
"T = 50\n",
"\n",
"pricecontainer = pricepath(p0, T)\n",
"pricecontainer[1:5]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"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=\"clip260\">\n",
" <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip260)\" d=\"\n",
"M0 1600 L2400 1600 L2400 0 L0 0 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip261\">\n",
" <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip260)\" d=\"\n",
"M186.274 1486.45 L2352.76 1486.45 L2352.76 47.2441 L186.274 47.2441 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip262\">\n",
" <rect x=\"186\" y=\"47\" width=\"2167\" height=\"1440\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 205.878,1486.45 205.878,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 622.991,1486.45 622.991,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1040.1,1486.45 1040.1,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1457.22,1486.45 1457.22,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1874.33,1486.45 1874.33,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 2291.44,1486.45 2291.44,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 186.274,1486.45 2352.76,1486.45 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 205.878,1486.45 205.878,1469.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 622.991,1486.45 622.991,1469.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1040.1,1486.45 1040.1,1469.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1457.22,1486.45 1457.22,1469.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1874.33,1486.45 1874.33,1469.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2291.44,1486.45 2291.44,1469.18 \n",
" \"/>\n",
"<path clip-path=\"url(#clip260)\" d=\"M 0 0 M205.878 1515.64 Q202.267 1515.64 200.438 1519.2 Q198.633 1522.75 198.633 1529.87 Q198.633 1536.98 200.438 1540.55 Q202.267 1544.09 205.878 1544.09 Q209.513 1544.09 211.318 1540.55 Q213.147 1536.98 213.147 1529.87 Q213.147 1522.75 211.318 1519.2 Q209.513 1515.64 205.878 1515.64 M205.878 1511.93 Q211.688 1511.93 214.744 1516.54 Q217.823 1521.12 217.823 1529.87 Q217.823 1538.6 214.744 1543.21 Q211.688 1547.79 205.878 1547.79 Q200.068 1547.79 196.989 1543.21 Q193.934 1538.6 193.934 1529.87 Q193.934 1521.12 196.989 1516.54 Q200.068 1511.93 205.878 1511.93 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M597.678 1543.18 L605.317 1543.18 L605.317 1516.82 L597.007 1518.49 L597.007 1514.23 L605.271 1512.56 L609.947 1512.56 L609.947 1543.18 L617.586 1543.18 L617.586 1547.12 L597.678 1547.12 L597.678 1543.18 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M637.03 1515.64 Q633.419 1515.64 631.59 1519.2 Q629.785 1522.75 629.785 1529.87 Q629.785 1536.98 631.59 1540.55 Q633.419 1544.09 637.03 1544.09 Q640.664 1544.09 642.47 1540.55 Q644.298 1536.98 644.298 1529.87 Q644.298 1522.75 642.47 1519.2 Q640.664 1515.64 637.03 1515.64 M637.03 1511.93 Q642.84 1511.93 645.896 1516.54 Q648.974 1521.12 648.974 1529.87 Q648.974 1538.6 645.896 1543.21 Q642.84 1547.79 637.03 1547.79 Q631.22 1547.79 628.141 1543.21 Q625.086 1538.6 625.086 1529.87 Q625.086 1521.12 628.141 1516.54 Q631.22 1511.93 637.03 1511.93 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M1018.88 1543.18 L1035.2 1543.18 L1035.2 1547.12 L1013.25 1547.12 L1013.25 1543.18 Q1015.91 1540.43 1020.5 1535.8 Q1025.1 1531.15 1026.28 1529.81 Q1028.53 1527.28 1029.41 1525.55 Q1030.31 1523.79 1030.31 1522.1 Q1030.31 1519.34 1028.37 1517.61 Q1026.45 1515.87 1023.34 1515.87 Q1021.14 1515.87 1018.69 1516.63 Q1016.26 1517.4 1013.48 1518.95 L1013.48 1514.23 Q1016.31 1513.09 1018.76 1512.51 Q1021.21 1511.93 1023.25 1511.93 Q1028.62 1511.93 1031.82 1514.62 Q1035.01 1517.31 1035.01 1521.8 Q1035.01 1523.93 1034.2 1525.85 Q1033.41 1527.74 1031.31 1530.34 Q1030.73 1531.01 1027.63 1534.23 Q1024.52 1537.42 1018.88 1543.18 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M1055.01 1515.64 Q1051.4 1515.64 1049.57 1519.2 Q1047.77 1522.75 1047.77 1529.87 Q1047.77 1536.98 1049.57 1540.55 Q1051.4 1544.09 1055.01 1544.09 Q1058.64 1544.09 1060.45 1540.55 Q1062.28 1536.98 1062.28 1529.87 Q1062.28 1522.75 1060.45 1519.2 Q1058.64 1515.64 1055.01 1515.64 M1055.01 1511.93 Q1060.82 1511.93 1063.88 1516.54 Q1066.95 1521.12 1066.95 1529.87 Q1066.95 1538.6 1063.88 1543.21 Q1060.82 1547.79 1055.01 1547.79 Q1049.2 1547.79 1046.12 1543.21 Q1043.07 1538.6 1043.07 1529.87 Q1043.07 1521.12 1046.12 1516.54 Q1049.2 1511.93 1055.01 1511.93 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M1446.06 1528.49 Q1449.41 1529.2 1451.29 1531.47 Q1453.19 1533.74 1453.19 1537.07 Q1453.19 1542.19 1449.67 1544.99 Q1446.15 1547.79 1439.67 1547.79 Q1437.49 1547.79 1435.18 1547.35 Q1432.89 1546.93 1430.43 1546.08 L1430.43 1541.56 Q1432.38 1542.7 1434.69 1543.28 Q1437.01 1543.86 1439.53 1543.86 Q1443.93 1543.86 1446.22 1542.12 Q1448.54 1540.38 1448.54 1537.07 Q1448.54 1534.02 1446.38 1532.31 Q1444.25 1530.57 1440.43 1530.57 L1436.41 1530.57 L1436.41 1526.73 L1440.62 1526.73 Q1444.07 1526.73 1445.9 1525.36 Q1447.72 1523.97 1447.72 1521.38 Q1447.72 1518.72 1445.83 1517.31 Q1443.95 1515.87 1440.43 1515.87 Q1438.51 1515.87 1436.31 1516.29 Q1434.11 1516.7 1431.47 1517.58 L1431.47 1513.42 Q1434.14 1512.68 1436.45 1512.31 Q1438.79 1511.93 1440.85 1511.93 Q1446.17 1511.93 1449.28 1514.37 Q1452.38 1516.77 1452.38 1520.89 Q1452.38 1523.76 1450.73 1525.75 Q1449.09 1527.72 1446.06 1528.49 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M1472.05 1515.64 Q1468.44 1515.64 1466.61 1519.2 Q1464.81 1522.75 1464.81 1529.87 Q1464.81 1536.98 1466.61 1540.55 Q1468.44 1544.09 1472.05 1544.09 Q1475.69 1544.09 1477.49 1540.55 Q1479.32 1536.98 1479.32 1529.87 Q1479.32 1522.75 1477.49 1519.2 Q1475.69 1515.64 1472.05 1515.64 M1472.05 1511.93 Q1477.86 1511.93 1480.92 1516.54 Q1484 1521.12 1484 1529.87 Q1484 1538.6 1480.92 1543.21 Q1477.86 1547.79 1472.05 1547.79 Q1466.24 1547.79 1463.16 1543.21 Q1460.11 1538.6 1460.11 1529.87 Q1460.11 1521.12 1463.16 1516.54 Q1466.24 1511.93 1472.05 1511.93 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M1862.5 1516.63 L1850.69 1535.08 L1862.5 1535.08 L1862.5 1516.63 M1861.27 1512.56 L1867.15 1512.56 L1867.15 1535.08 L1872.08 1535.08 L1872.08 1538.97 L1867.15 1538.97 L1867.15 1547.12 L1862.5 1547.12 L1862.5 1538.97 L1846.9 1538.97 L1846.9 1534.46 L1861.27 1512.56 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M1889.81 1515.64 Q1886.2 1515.64 1884.37 1519.2 Q1882.57 1522.75 1882.57 1529.87 Q1882.57 1536.98 1884.37 1540.55 Q1886.2 1544.09 1889.81 1544.09 Q1893.45 1544.09 1895.25 1540.55 Q1897.08 1536.98 1897.08 1529.87 Q1897.08 1522.75 1895.25 1519.2 Q1893.45 1515.64 1889.81 1515.64 M1889.81 1511.93 Q1895.62 1511.93 1898.68 1516.54 Q1901.76 1521.12 1901.76 1529.87 Q1901.76 1538.6 1898.68 1543.21 Q1895.62 1547.79 1889.81 1547.79 Q1884 1547.79 1880.93 1543.21 Q1877.87 1538.6 1877.87 1529.87 Q1877.87 1521.12 1880.93 1516.54 Q1884 1511.93 1889.81 1511.93 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M2266.14 1512.56 L2284.5 1512.56 L2284.5 1516.5 L2270.42 1516.5 L2270.42 1524.97 Q2271.44 1524.62 2272.46 1524.46 Q2273.48 1524.27 2274.5 1524.27 Q2280.28 1524.27 2283.66 1527.44 Q2287.04 1530.62 2287.04 1536.03 Q2287.04 1541.61 2283.57 1544.71 Q2280.1 1547.79 2273.78 1547.79 Q2271.6 1547.79 2269.33 1547.42 Q2267.09 1547.05 2264.68 1546.31 L2264.68 1541.61 Q2266.76 1542.74 2268.99 1543.3 Q2271.21 1543.86 2273.69 1543.86 Q2277.69 1543.86 2280.03 1541.75 Q2282.37 1539.64 2282.37 1536.03 Q2282.37 1532.42 2280.03 1530.31 Q2277.69 1528.21 2273.69 1528.21 Q2271.81 1528.21 2269.94 1528.62 Q2268.08 1529.04 2266.14 1529.92 L2266.14 1512.56 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M2306.26 1515.64 Q2302.64 1515.64 2300.82 1519.2 Q2299.01 1522.75 2299.01 1529.87 Q2299.01 1536.98 2300.82 1540.55 Q2302.64 1544.09 2306.26 1544.09 Q2309.89 1544.09 2311.69 1540.55 Q2313.52 1536.98 2313.52 1529.87 Q2313.52 1522.75 2311.69 1519.2 Q2309.89 1515.64 2306.26 1515.64 M2306.26 1511.93 Q2312.07 1511.93 2315.12 1516.54 Q2318.2 1521.12 2318.2 1529.87 Q2318.2 1538.6 2315.12 1543.21 Q2312.07 1547.79 2306.26 1547.79 Q2300.44 1547.79 2297.37 1543.21 Q2294.31 1538.6 2294.31 1529.87 Q2294.31 1521.12 2297.37 1516.54 Q2300.44 1511.93 2306.26 1511.93 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 186.274,1373.83 2352.76,1373.83 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 186.274,1162.99 2352.76,1162.99 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 186.274,952.149 2352.76,952.149 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 186.274,741.309 2352.76,741.309 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 186.274,530.47 2352.76,530.47 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 186.274,319.63 2352.76,319.63 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 186.274,108.79 2352.76,108.79 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 186.274,1486.45 186.274,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 186.274,1373.83 212.272,1373.83 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 186.274,1162.99 212.272,1162.99 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 186.274,952.149 212.272,952.149 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 186.274,741.309 212.272,741.309 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 186.274,530.47 212.272,530.47 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 186.274,319.63 212.272,319.63 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 186.274,108.79 212.272,108.79 \n",
" \"/>\n",
"<path clip-path=\"url(#clip260)\" d=\"M 0 0 M63.9319 1359.63 Q60.3208 1359.63 58.4921 1363.19 Q56.6865 1366.73 56.6865 1373.86 Q56.6865 1380.97 58.4921 1384.53 Q60.3208 1388.08 63.9319 1388.08 Q67.5661 1388.08 69.3717 1384.53 Q71.2004 1380.97 71.2004 1373.86 Q71.2004 1366.73 69.3717 1363.19 Q67.5661 1359.63 63.9319 1359.63 M63.9319 1355.92 Q69.742 1355.92 72.7976 1360.53 Q75.8763 1365.11 75.8763 1373.86 Q75.8763 1382.59 72.7976 1387.2 Q69.742 1391.78 63.9319 1391.78 Q58.1217 1391.78 55.043 1387.2 Q51.9875 1382.59 51.9875 1373.86 Q51.9875 1365.11 55.043 1360.53 Q58.1217 1355.92 63.9319 1355.92 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M84.0938 1385.23 L88.978 1385.23 L88.978 1391.11 L84.0938 1391.11 L84.0938 1385.23 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M109.163 1359.63 Q105.552 1359.63 103.723 1363.19 Q101.918 1366.73 101.918 1373.86 Q101.918 1380.97 103.723 1384.53 Q105.552 1388.08 109.163 1388.08 Q112.797 1388.08 114.603 1384.53 Q116.432 1380.97 116.432 1373.86 Q116.432 1366.73 114.603 1363.19 Q112.797 1359.63 109.163 1359.63 M109.163 1355.92 Q114.973 1355.92 118.029 1360.53 Q121.107 1365.11 121.107 1373.86 Q121.107 1382.59 118.029 1387.2 Q114.973 1391.78 109.163 1391.78 Q103.353 1391.78 100.274 1387.2 Q97.2187 1382.59 97.2187 1373.86 Q97.2187 1365.11 100.274 1360.53 Q103.353 1355.92 109.163 1355.92 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M129.371 1356.55 L147.728 1356.55 L147.728 1360.48 L133.654 1360.48 L133.654 1368.96 Q134.672 1368.61 135.691 1368.45 Q136.709 1368.26 137.728 1368.26 Q143.515 1368.26 146.894 1371.43 Q150.274 1374.6 150.274 1380.02 Q150.274 1385.6 146.802 1388.7 Q143.33 1391.78 137.01 1391.78 Q134.834 1391.78 132.566 1391.41 Q130.32 1391.04 127.913 1390.3 L127.913 1385.6 Q129.996 1386.73 132.219 1387.29 Q134.441 1387.84 136.918 1387.84 Q140.922 1387.84 143.26 1385.74 Q145.598 1383.63 145.598 1380.02 Q145.598 1376.41 143.26 1374.3 Q140.922 1372.2 136.918 1372.2 Q135.043 1372.2 133.168 1372.61 Q131.316 1373.03 129.371 1373.91 L129.371 1356.55 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M62.9365 1148.79 Q59.3254 1148.79 57.4967 1152.35 Q55.6912 1155.89 55.6912 1163.02 Q55.6912 1170.13 57.4967 1173.69 Q59.3254 1177.24 62.9365 1177.24 Q66.5707 1177.24 68.3763 1173.69 Q70.205 1170.13 70.205 1163.02 Q70.205 1155.89 68.3763 1152.35 Q66.5707 1148.79 62.9365 1148.79 M62.9365 1145.08 Q68.7467 1145.08 71.8022 1149.69 Q74.8809 1154.27 74.8809 1163.02 Q74.8809 1171.75 71.8022 1176.36 Q68.7467 1180.94 62.9365 1180.94 Q57.1264 1180.94 54.0477 1176.36 Q50.9921 1171.75 50.9921 1163.02 Q50.9921 1154.27 54.0477 1149.69 Q57.1264 1145.08 62.9365 1145.08 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M83.0984 1174.39 L87.9827 1174.39 L87.9827 1180.27 L83.0984 1180.27 L83.0984 1174.39 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M98.978 1176.33 L106.617 1176.33 L106.617 1149.97 L98.3067 1151.63 L98.3067 1147.38 L106.571 1145.71 L111.246 1145.71 L111.246 1176.33 L118.885 1176.33 L118.885 1180.27 L98.978 1180.27 L98.978 1176.33 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M138.33 1148.79 Q134.719 1148.79 132.89 1152.35 Q131.084 1155.89 131.084 1163.02 Q131.084 1170.13 132.89 1173.69 Q134.719 1177.24 138.33 1177.24 Q141.964 1177.24 143.769 1173.69 Q145.598 1170.13 145.598 1163.02 Q145.598 1155.89 143.769 1152.35 Q141.964 1148.79 138.33 1148.79 M138.33 1145.08 Q144.14 1145.08 147.195 1149.69 Q150.274 1154.27 150.274 1163.02 Q150.274 1171.75 147.195 1176.36 Q144.14 1180.94 138.33 1180.94 Q132.519 1180.94 129.441 1176.36 Q126.385 1171.75 126.385 1163.02 Q126.385 1154.27 129.441 1149.69 Q132.519 1145.08 138.33 1145.08 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M63.9319 937.948 Q60.3208 937.948 58.4921 941.512 Q56.6865 945.054 56.6865 952.184 Q56.6865 959.29 58.4921 962.855 Q60.3208 966.396 63.9319 966.396 Q67.5661 966.396 69.3717 962.855 Q71.2004 959.29 71.2004 952.184 Q71.2004 945.054 69.3717 941.512 Q67.5661 937.948 63.9319 937.948 M63.9319 934.244 Q69.742 934.244 72.7976 938.85 Q75.8763 943.434 75.8763 952.184 Q75.8763 960.91 72.7976 965.517 Q69.742 970.1 63.9319 970.1 Q58.1217 970.1 55.043 965.517 Q51.9875 960.91 51.9875 952.184 Q51.9875 943.434 55.043 938.85 Q58.1217 934.244 63.9319 934.244 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M84.0938 963.549 L88.978 963.549 L88.978 969.429 L84.0938 969.429 L84.0938 963.549 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M99.9733 965.494 L107.612 965.494 L107.612 939.128 L99.3021 940.795 L99.3021 936.536 L107.566 934.869 L112.242 934.869 L112.242 965.494 L119.881 965.494 L119.881 969.429 L99.9733 969.429 L99.9733 965.494 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M129.371 934.869 L147.728 934.869 L147.728 938.804 L133.654 938.804 L133.654 947.276 Q134.672 946.929 135.691 946.767 Q136.709 946.582 137.728 946.582 Q143.515 946.582 146.894 949.753 Q150.274 952.924 150.274 958.341 Q150.274 963.92 146.802 967.021 Q143.33 970.1 137.01 970.1 Q134.834 970.1 132.566 969.73 Q130.32 969.359 127.913 968.619 L127.913 963.92 Q129.996 965.054 132.219 965.609 Q134.441 966.165 136.918 966.165 Q140.922 966.165 143.26 964.059 Q145.598 961.952 145.598 958.341 Q145.598 954.73 143.26 952.623 Q140.922 950.517 136.918 950.517 Q135.043 950.517 133.168 950.934 Q131.316 951.35 129.371 952.23 L129.371 934.869 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M62.9365 727.108 Q59.3254 727.108 57.4967 730.673 Q55.6912 734.214 55.6912 741.344 Q55.6912 748.45 57.4967 752.015 Q59.3254 755.557 62.9365 755.557 Q66.5707 755.557 68.3763 752.015 Q70.205 748.45 70.205 741.344 Q70.205 734.214 68.3763 730.673 Q66.5707 727.108 62.9365 727.108 M62.9365 723.404 Q68.7467 723.404 71.8022 728.011 Q74.8809 732.594 74.8809 741.344 Q74.8809 750.071 71.8022 754.677 Q68.7467 759.261 62.9365 759.261 Q57.1264 759.261 54.0477 754.677 Q50.9921 750.071 50.9921 741.344 Q50.9921 732.594 54.0477 728.011 Q57.1264 723.404 62.9365 723.404 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M83.0984 752.71 L87.9827 752.71 L87.9827 758.589 L83.0984 758.589 L83.0984 752.71 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M102.196 754.654 L118.515 754.654 L118.515 758.589 L96.5706 758.589 L96.5706 754.654 Q99.2326 751.899 103.816 747.27 Q108.422 742.617 109.603 741.275 Q111.848 738.751 112.728 737.015 Q113.631 735.256 113.631 733.566 Q113.631 730.812 111.686 729.076 Q109.765 727.339 106.663 727.339 Q104.464 727.339 102.01 728.103 Q99.5798 728.867 96.8021 730.418 L96.8021 725.696 Q99.6261 724.562 102.08 723.983 Q104.534 723.404 106.571 723.404 Q111.941 723.404 115.135 726.089 Q118.33 728.775 118.33 733.265 Q118.33 735.395 117.52 737.316 Q116.733 739.214 114.626 741.807 Q114.047 742.478 110.946 745.696 Q107.844 748.89 102.196 754.654 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M138.33 727.108 Q134.719 727.108 132.89 730.673 Q131.084 734.214 131.084 741.344 Q131.084 748.45 132.89 752.015 Q134.719 755.557 138.33 755.557 Q141.964 755.557 143.769 752.015 Q145.598 748.45 145.598 741.344 Q145.598 734.214 143.769 730.673 Q141.964 727.108 138.33 727.108 M138.33 723.404 Q144.14 723.404 147.195 728.011 Q150.274 732.594 150.274 741.344 Q150.274 750.071 147.195 754.677 Q144.14 759.261 138.33 759.261 Q132.519 759.261 129.441 754.677 Q126.385 750.071 126.385 741.344 Q126.385 732.594 129.441 728.011 Q132.519 723.404 138.33 723.404 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M63.9319 516.268 Q60.3208 516.268 58.4921 519.833 Q56.6865 523.375 56.6865 530.504 Q56.6865 537.611 58.4921 541.176 Q60.3208 544.717 63.9319 544.717 Q67.5661 544.717 69.3717 541.176 Q71.2004 537.611 71.2004 530.504 Q71.2004 523.375 69.3717 519.833 Q67.5661 516.268 63.9319 516.268 M63.9319 512.565 Q69.742 512.565 72.7976 517.171 Q75.8763 521.754 75.8763 530.504 Q75.8763 539.231 72.7976 543.838 Q69.742 548.421 63.9319 548.421 Q58.1217 548.421 55.043 543.838 Q51.9875 539.231 51.9875 530.504 Q51.9875 521.754 55.043 517.171 Q58.1217 512.565 63.9319 512.565 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M84.0938 541.87 L88.978 541.87 L88.978 547.75 L84.0938 547.75 L84.0938 541.87 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M103.191 543.814 L119.51 543.814 L119.51 547.75 L97.566 547.75 L97.566 543.814 Q100.228 541.06 104.811 536.43 Q109.418 531.778 110.598 530.435 Q112.844 527.912 113.723 526.176 Q114.626 524.416 114.626 522.727 Q114.626 519.972 112.682 518.236 Q110.76 516.5 107.658 516.5 Q105.459 516.5 103.006 517.264 Q100.575 518.028 97.7974 519.578 L97.7974 514.856 Q100.621 513.722 103.075 513.143 Q105.529 512.565 107.566 512.565 Q112.936 512.565 116.131 515.25 Q119.325 517.935 119.325 522.426 Q119.325 524.555 118.515 526.477 Q117.728 528.375 115.621 530.967 Q115.043 531.639 111.941 534.856 Q108.839 538.051 103.191 543.814 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M129.371 513.19 L147.728 513.19 L147.728 517.125 L133.654 517.125 L133.654 525.597 Q134.672 525.25 135.691 525.088 Q136.709 524.903 137.728 524.903 Q143.515 524.903 146.894 528.074 Q150.274 531.245 150.274 536.662 Q150.274 542.24 146.802 545.342 Q143.33 548.421 137.01 548.421 Q134.834 548.421 132.566 548.051 Q130.32 547.68 127.913 546.939 L127.913 542.24 Q129.996 543.375 132.219 543.93 Q134.441 544.486 136.918 544.486 Q140.922 544.486 143.26 542.379 Q145.598 540.273 145.598 536.662 Q145.598 533.051 143.26 530.944 Q140.922 528.838 136.918 528.838 Q135.043 528.838 133.168 529.254 Q131.316 529.671 129.371 530.551 L129.371 513.19 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M62.9365 305.429 Q59.3254 305.429 57.4967 308.994 Q55.6912 312.535 55.6912 319.665 Q55.6912 326.771 57.4967 330.336 Q59.3254 333.878 62.9365 333.878 Q66.5707 333.878 68.3763 330.336 Q70.205 326.771 70.205 319.665 Q70.205 312.535 68.3763 308.994 Q66.5707 305.429 62.9365 305.429 M62.9365 301.725 Q68.7467 301.725 71.8022 306.331 Q74.8809 310.915 74.8809 319.665 Q74.8809 328.392 71.8022 332.998 Q68.7467 337.581 62.9365 337.581 Q57.1264 337.581 54.0477 332.998 Q50.9921 328.392 50.9921 319.665 Q50.9921 310.915 54.0477 306.331 Q57.1264 301.725 62.9365 301.725 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M83.0984 331.03 L87.9827 331.03 L87.9827 336.91 L83.0984 336.91 L83.0984 331.03 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M112.334 318.276 Q115.691 318.993 117.566 321.262 Q119.464 323.53 119.464 326.864 Q119.464 331.98 115.945 334.78 Q112.427 337.581 105.946 337.581 Q103.77 337.581 101.455 337.142 Q99.1632 336.725 96.7095 335.868 L96.7095 331.355 Q98.6539 332.489 100.969 333.067 Q103.284 333.646 105.807 333.646 Q110.205 333.646 112.496 331.91 Q114.811 330.174 114.811 326.864 Q114.811 323.808 112.658 322.095 Q110.529 320.359 106.709 320.359 L102.682 320.359 L102.682 316.517 L106.895 316.517 Q110.344 316.517 112.172 315.151 Q114.001 313.762 114.001 311.169 Q114.001 308.507 112.103 307.095 Q110.228 305.66 106.709 305.66 Q104.788 305.66 102.589 306.077 Q100.39 306.494 97.7511 307.373 L97.7511 303.207 Q100.413 302.466 102.728 302.095 Q105.066 301.725 107.126 301.725 Q112.45 301.725 115.552 304.156 Q118.654 306.563 118.654 310.683 Q118.654 313.554 117.01 315.544 Q115.367 317.512 112.334 318.276 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M138.33 305.429 Q134.719 305.429 132.89 308.994 Q131.084 312.535 131.084 319.665 Q131.084 326.771 132.89 330.336 Q134.719 333.878 138.33 333.878 Q141.964 333.878 143.769 330.336 Q145.598 326.771 145.598 319.665 Q145.598 312.535 143.769 308.994 Q141.964 305.429 138.33 305.429 M138.33 301.725 Q144.14 301.725 147.195 306.331 Q150.274 310.915 150.274 319.665 Q150.274 328.392 147.195 332.998 Q144.14 337.581 138.33 337.581 Q132.519 337.581 129.441 332.998 Q126.385 328.392 126.385 319.665 Q126.385 310.915 129.441 306.331 Q132.519 301.725 138.33 301.725 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M63.9319 94.5891 Q60.3208 94.5891 58.4921 98.1539 Q56.6865 101.696 56.6865 108.825 Q56.6865 115.932 58.4921 119.496 Q60.3208 123.038 63.9319 123.038 Q67.5661 123.038 69.3717 119.496 Q71.2004 115.932 71.2004 108.825 Q71.2004 101.696 69.3717 98.1539 Q67.5661 94.5891 63.9319 94.5891 M63.9319 90.8854 Q69.742 90.8854 72.7976 95.4919 Q75.8763 100.075 75.8763 108.825 Q75.8763 117.552 72.7976 122.158 Q69.742 126.742 63.9319 126.742 Q58.1217 126.742 55.043 122.158 Q51.9875 117.552 51.9875 108.825 Q51.9875 100.075 55.043 95.4919 Q58.1217 90.8854 63.9319 90.8854 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M84.0938 120.191 L88.978 120.191 L88.978 126.07 L84.0938 126.07 L84.0938 120.191 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M113.33 107.436 Q116.686 108.154 118.561 110.422 Q120.459 112.691 120.459 116.024 Q120.459 121.14 116.941 123.941 Q113.422 126.742 106.941 126.742 Q104.765 126.742 102.45 126.302 Q100.159 125.885 97.7048 125.029 L97.7048 120.515 Q99.6493 121.649 101.964 122.228 Q104.279 122.807 106.802 122.807 Q111.2 122.807 113.492 121.07 Q115.807 119.334 115.807 116.024 Q115.807 112.969 113.654 111.256 Q111.524 109.52 107.705 109.52 L103.677 109.52 L103.677 105.677 L107.89 105.677 Q111.339 105.677 113.168 104.311 Q114.996 102.922 114.996 100.33 Q114.996 97.6678 113.098 96.2558 Q111.223 94.8206 107.705 94.8206 Q105.783 94.8206 103.584 95.2373 Q101.385 95.6539 98.7465 96.5336 L98.7465 92.3669 Q101.409 91.6262 103.723 91.2558 Q106.061 90.8854 108.121 90.8854 Q113.445 90.8854 116.547 93.316 Q119.649 95.7234 119.649 99.8437 Q119.649 102.714 118.006 104.705 Q116.362 106.672 113.33 107.436 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M129.371 91.5104 L147.728 91.5104 L147.728 95.4456 L133.654 95.4456 L133.654 103.918 Q134.672 103.571 135.691 103.409 Q136.709 103.223 137.728 103.223 Q143.515 103.223 146.894 106.395 Q150.274 109.566 150.274 114.983 Q150.274 120.561 146.802 123.663 Q143.33 126.742 137.01 126.742 Q134.834 126.742 132.566 126.371 Q130.32 126.001 127.913 125.26 L127.913 120.561 Q129.996 121.695 132.219 122.251 Q134.441 122.807 136.918 122.807 Q140.922 122.807 143.26 120.7 Q145.598 118.594 145.598 114.983 Q145.598 111.371 143.26 109.265 Q140.922 107.158 136.918 107.158 Q135.043 107.158 133.168 107.575 Q131.316 107.992 129.371 108.871 L129.371 91.5104 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip262)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 247.59,530.49 289.301,712.372 331.012,860.9 372.723,981.682 414.434,1079.47 456.146,1158.26 497.857,1221.46 539.568,1271.88 581.279,1311.9 622.991,1343.49 \n",
" 664.702,1368.28 706.413,1387.61 748.124,1402.59 789.836,1414.1 831.547,1422.87 873.258,1429.49 914.969,1434.44 956.681,1438.08 998.392,1440.72 1040.1,1442.6 \n",
" 1081.81,1443.89 1123.53,1444.74 1165.24,1445.28 1206.95,1445.58 1248.66,1445.7 1290.37,1445.72 1332.08,1445.65 1373.79,1445.53 1415.5,1445.37 1457.22,1445.21 \n",
" 1498.93,1445.04 1540.64,1444.87 1582.35,1444.7 1624.06,1444.55 1665.77,1444.41 1707.48,1444.28 1749.19,1444.17 1790.91,1444.06 1832.62,1443.97 1874.33,1443.89 \n",
" 1916.04,1443.82 1957.75,1443.76 1999.46,1443.7 2041.17,1443.66 2082.88,1443.62 2124.6,1443.58 2166.31,1443.55 2208.02,1443.53 2249.73,1443.5 2291.44,1443.48 \n",
" \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 247.59,1357.85 289.301,1324.05 331.012,1295.47 372.723,1271.13 414.434,1250.28 456.146,1232.36 497.857,1216.95 539.568,1203.7 581.279,1192.31 622.991,1182.53 \n",
" 664.702,1174.17 706.413,1167.02 748.124,1160.93 789.836,1155.76 831.547,1151.37 873.258,1147.66 914.969,1144.53 956.681,1141.89 998.392,1139.67 1040.1,1137.81 \n",
" 1081.81,1136.24 1123.53,1134.94 1165.24,1133.84 1206.95,1132.93 1248.66,1132.16 1290.37,1131.52 1332.08,1130.99 1373.79,1130.54 1415.5,1130.17 1457.22,1129.86 \n",
" 1498.93,1129.6 1540.64,1129.38 1582.35,1129.2 1624.06,1129.05 1665.77,1128.92 1707.48,1128.81 1749.19,1128.72 1790.91,1128.65 1832.62,1128.58 1874.33,1128.53 \n",
" 1916.04,1128.48 1957.75,1128.45 1999.46,1128.41 2041.17,1128.39 2082.88,1128.36 2124.6,1128.34 2166.31,1128.33 2208.02,1128.31 2249.73,1128.3 2291.44,1128.29 \n",
" \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#3da44d; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 247.59,808.704 289.301,789.629 331.012,763.439 372.723,734.427 414.434,705.338 456.146,677.83 497.857,652.82 539.568,630.718 581.279,611.615 622.991,595.395 \n",
" 664.702,581.829 706.413,570.631 748.124,561.497 789.836,554.128 831.547,548.244 873.258,543.594 914.969,539.957 956.681,537.143 998.392,534.992 1040.1,533.367 \n",
" 1081.81,532.159 1123.53,531.276 1165.24,530.645 1206.95,530.206 1248.66,529.914 1290.37,529.73 1332.08,529.627 1373.79,529.582 1415.5,529.577 1457.22,529.601 \n",
" 1498.93,529.642 1540.64,529.695 1582.35,529.753 1624.06,529.812 1665.77,529.872 1707.48,529.929 1749.19,529.982 1790.91,530.031 1832.62,530.076 1874.33,530.117 \n",
" 1916.04,530.153 1957.75,530.186 1999.46,530.214 2041.17,530.239 2082.88,530.261 2124.6,530.281 2166.31,530.297 2208.02,530.312 2249.73,530.324 2291.44,530.335 \n",
" \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#c271d2; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 247.59,1400.67 289.301,1298.8 331.012,1221.75 372.723,1164.14 414.434,1121.58 456.146,1090.58 497.857,1068.34 539.568,1052.69 581.279,1041.92 622.991,1034.72 \n",
" 664.702,1030.1 706.413,1027.3 748.124,1025.77 789.836,1025.09 831.547,1024.97 873.258,1025.19 914.969,1025.6 956.681,1026.11 998.392,1026.64 1040.1,1027.16 \n",
" 1081.81,1027.64 1123.53,1028.06 1165.24,1028.43 1206.95,1028.74 1248.66,1029 1290.37,1029.2 1332.08,1029.37 1373.79,1029.49 1415.5,1029.59 1457.22,1029.66 \n",
" 1498.93,1029.71 1540.64,1029.74 1582.35,1029.76 1624.06,1029.77 1665.77,1029.77 1707.48,1029.77 1749.19,1029.77 1790.91,1029.76 1832.62,1029.75 1874.33,1029.73 \n",
" 1916.04,1029.72 1957.75,1029.71 1999.46,1029.7 2041.17,1029.69 2082.88,1029.68 2124.6,1029.67 2166.31,1029.66 2208.02,1029.65 2249.73,1029.65 2291.44,1029.64 \n",
" \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#ac8d18; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 247.59,1105.53 289.301,1063.61 331.012,1025.65 372.723,991.416 414.434,960.72 456.146,933.354 497.857,909.103 539.568,887.739 581.279,869.026 622.991,852.725 \n",
" 664.702,838.596 706.413,826.41 748.124,815.945 789.836,806.997 831.547,799.374 873.258,792.904 914.969,787.43 956.681,782.812 998.392,778.928 1040.1,775.668 \n",
" 1081.81,772.94 1123.53,770.661 1165.24,768.76 1206.95,767.178 1248.66,765.863 1290.37,764.772 1332.08,763.867 1373.79,763.117 1415.5,762.497 1457.22,761.984 \n",
" 1498.93,761.561 1540.64,761.211 1582.35,760.922 1624.06,760.683 1665.77,760.486 1707.48,760.323 1749.19,760.189 1790.91,760.078 1832.62,759.986 1874.33,759.911 \n",
" 1916.04,759.848 1957.75,759.796 1999.46,759.753 2041.17,759.718 2082.88,759.688 2124.6,759.664 2166.31,759.643 2208.02,759.626 2249.73,759.612 2291.44,759.601 \n",
" \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip262)\" style=\"stroke:#00a9ad; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 247.59,87.9763 289.301,102.759 331.012,124 372.723,148.418 414.434,173.829 456.146,198.825 497.857,222.543 539.568,244.495 581.279,264.453 622.991,282.354 \n",
" 664.702,298.245 706.413,312.24 748.124,324.485 789.836,335.145 831.547,344.388 873.258,352.375 914.969,359.258 956.681,365.177 998.392,370.259 1040.1,374.614 \n",
" 1081.81,378.344 1123.53,381.533 1165.24,384.26 1206.95,386.589 1248.66,388.577 1290.37,390.273 1332.08,391.721 1373.79,392.955 1415.5,394.008 1457.22,394.905 \n",
" 1498.93,395.67 1540.64,396.321 1582.35,396.877 1624.06,397.35 1665.77,397.753 1707.48,398.097 1749.19,398.39 1790.91,398.639 1832.62,398.851 1874.33,399.032 \n",
" 1916.04,399.186 1957.75,399.318 1999.46,399.43 2041.17,399.525 2082.88,399.606 2124.6,399.675 2166.31,399.734 2208.02,399.784 2249.73,399.827 2291.44,399.863 \n",
" \n",
" \"/>\n",
"<path clip-path=\"url(#clip260)\" d=\"\n",
"M1986.53 518.578 L2280.54 518.578 L2280.54 95.2176 L1986.53 95.2176 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1986.53,518.578 2280.54,518.578 2280.54,95.2176 1986.53,95.2176 1986.53,518.578 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip260)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2010.6,155.698 2155.04,155.698 \n",
" \"/>\n",
"<path clip-path=\"url(#clip260)\" d=\"M 0 0 M2183.39 169.089 L2183.39 182.839 L2179.11 182.839 L2179.11 147.052 L2183.39 147.052 L2183.39 150.987 Q2184.73 148.672 2186.77 147.561 Q2188.83 146.427 2191.68 146.427 Q2196.4 146.427 2199.34 150.177 Q2202.3 153.927 2202.3 160.038 Q2202.3 166.149 2199.34 169.899 Q2196.4 173.649 2191.68 173.649 Q2188.83 173.649 2186.77 172.538 Q2184.73 171.403 2183.39 169.089 M2197.88 160.038 Q2197.88 155.339 2195.94 152.677 Q2194.02 149.992 2190.64 149.992 Q2187.26 149.992 2185.31 152.677 Q2183.39 155.339 2183.39 160.038 Q2183.39 164.737 2185.31 167.422 Q2187.26 170.084 2190.64 170.084 Q2194.02 170.084 2195.94 167.422 Q2197.88 164.737 2197.88 160.038 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M2210.78 169.042 L2218.41 169.042 L2218.41 142.677 L2210.1 144.343 L2210.1 140.084 L2218.37 138.418 L2223.04 138.418 L2223.04 169.042 L2230.68 169.042 L2230.68 172.978 L2210.78 172.978 L2210.78 169.042 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip260)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2010.6,216.178 2155.04,216.178 \n",
" \"/>\n",
"<path clip-path=\"url(#clip260)\" d=\"M 0 0 M2183.39 229.569 L2183.39 243.319 L2179.11 243.319 L2179.11 207.532 L2183.39 207.532 L2183.39 211.467 Q2184.73 209.152 2186.77 208.041 Q2188.83 206.907 2191.68 206.907 Q2196.4 206.907 2199.34 210.657 Q2202.3 214.407 2202.3 220.518 Q2202.3 226.629 2199.34 230.379 Q2196.4 234.129 2191.68 234.129 Q2188.83 234.129 2186.77 233.018 Q2184.73 231.883 2183.39 229.569 M2197.88 220.518 Q2197.88 215.819 2195.94 213.157 Q2194.02 210.472 2190.64 210.472 Q2187.26 210.472 2185.31 213.157 Q2183.39 215.819 2183.39 220.518 Q2183.39 225.217 2185.31 227.902 Q2187.26 230.564 2190.64 230.564 Q2194.02 230.564 2195.94 227.902 Q2197.88 225.217 2197.88 220.518 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M2213.99 229.522 L2230.31 229.522 L2230.31 233.458 L2208.37 233.458 L2208.37 229.522 Q2211.03 226.768 2215.61 222.138 Q2220.22 217.485 2221.4 216.143 Q2223.65 213.62 2224.53 211.884 Q2225.43 210.124 2225.43 208.435 Q2225.43 205.68 2223.48 203.944 Q2221.56 202.208 2218.46 202.208 Q2216.26 202.208 2213.81 202.972 Q2211.38 203.735 2208.6 205.286 L2208.6 200.564 Q2211.42 199.43 2213.88 198.851 Q2216.33 198.273 2218.37 198.273 Q2223.74 198.273 2226.93 200.958 Q2230.13 203.643 2230.13 208.134 Q2230.13 210.263 2229.32 212.185 Q2228.53 214.083 2226.42 216.675 Q2225.84 217.347 2222.74 220.564 Q2219.64 223.759 2213.99 229.522 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip260)\" style=\"stroke:#3da44d; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2010.6,276.658 2155.04,276.658 \n",
" \"/>\n",
"<path clip-path=\"url(#clip260)\" d=\"M 0 0 M2183.39 290.049 L2183.39 303.799 L2179.11 303.799 L2179.11 268.012 L2183.39 268.012 L2183.39 271.947 Q2184.73 269.632 2186.77 268.521 Q2188.83 267.387 2191.68 267.387 Q2196.4 267.387 2199.34 271.137 Q2202.3 274.887 2202.3 280.998 Q2202.3 287.109 2199.34 290.859 Q2196.4 294.609 2191.68 294.609 Q2188.83 294.609 2186.77 293.498 Q2184.73 292.363 2183.39 290.049 M2197.88 280.998 Q2197.88 276.299 2195.94 273.637 Q2194.02 270.952 2190.64 270.952 Q2187.26 270.952 2185.31 273.637 Q2183.39 276.299 2183.39 280.998 Q2183.39 285.697 2185.31 288.382 Q2187.26 291.044 2190.64 291.044 Q2194.02 291.044 2195.94 288.382 Q2197.88 285.697 2197.88 280.998 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M2224.13 275.303 Q2227.49 276.021 2229.36 278.289 Q2231.26 280.558 2231.26 283.891 Q2231.26 289.007 2227.74 291.808 Q2224.22 294.609 2217.74 294.609 Q2215.57 294.609 2213.25 294.169 Q2210.96 293.752 2208.51 292.896 L2208.51 288.382 Q2210.45 289.516 2212.77 290.095 Q2215.08 290.674 2217.6 290.674 Q2222 290.674 2224.29 288.938 Q2226.61 287.201 2226.61 283.891 Q2226.61 280.836 2224.46 279.123 Q2222.33 277.387 2218.51 277.387 L2214.48 277.387 L2214.48 273.544 L2218.69 273.544 Q2222.14 273.544 2223.97 272.178 Q2225.8 270.79 2225.8 268.197 Q2225.8 265.535 2223.9 264.123 Q2222.03 262.688 2218.51 262.688 Q2216.59 262.688 2214.39 263.104 Q2212.19 263.521 2209.55 264.401 L2209.55 260.234 Q2212.21 259.493 2214.53 259.123 Q2216.86 258.753 2218.92 258.753 Q2224.25 258.753 2227.35 261.183 Q2230.45 263.59 2230.45 267.711 Q2230.45 270.581 2228.81 272.572 Q2227.16 274.54 2224.13 275.303 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip260)\" style=\"stroke:#c271d2; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2010.6,337.138 2155.04,337.138 \n",
" \"/>\n",
"<path clip-path=\"url(#clip260)\" d=\"M 0 0 M2183.39 350.529 L2183.39 364.279 L2179.11 364.279 L2179.11 328.492 L2183.39 328.492 L2183.39 332.427 Q2184.73 330.112 2186.77 329.001 Q2188.83 327.867 2191.68 327.867 Q2196.4 327.867 2199.34 331.617 Q2202.3 335.367 2202.3 341.478 Q2202.3 347.589 2199.34 351.339 Q2196.4 355.089 2191.68 355.089 Q2188.83 355.089 2186.77 353.978 Q2184.73 352.843 2183.39 350.529 M2197.88 341.478 Q2197.88 336.779 2195.94 334.117 Q2194.02 331.432 2190.64 331.432 Q2187.26 331.432 2185.31 334.117 Q2183.39 336.779 2183.39 341.478 Q2183.39 346.177 2185.31 348.862 Q2187.26 351.524 2190.64 351.524 Q2194.02 351.524 2195.94 348.862 Q2197.88 346.177 2197.88 341.478 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M2222.81 323.932 L2211.01 342.381 L2222.81 342.381 L2222.81 323.932 M2221.59 319.858 L2227.47 319.858 L2227.47 342.381 L2232.4 342.381 L2232.4 346.269 L2227.47 346.269 L2227.47 354.418 L2222.81 354.418 L2222.81 346.269 L2207.21 346.269 L2207.21 341.756 L2221.59 319.858 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip260)\" style=\"stroke:#ac8d18; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2010.6,397.618 2155.04,397.618 \n",
" \"/>\n",
"<path clip-path=\"url(#clip260)\" d=\"M 0 0 M2183.39 411.009 L2183.39 424.759 L2179.11 424.759 L2179.11 388.972 L2183.39 388.972 L2183.39 392.907 Q2184.73 390.592 2186.77 389.481 Q2188.83 388.347 2191.68 388.347 Q2196.4 388.347 2199.34 392.097 Q2202.3 395.847 2202.3 401.958 Q2202.3 408.069 2199.34 411.819 Q2196.4 415.569 2191.68 415.569 Q2188.83 415.569 2186.77 414.458 Q2184.73 413.323 2183.39 411.009 M2197.88 401.958 Q2197.88 397.259 2195.94 394.597 Q2194.02 391.912 2190.64 391.912 Q2187.26 391.912 2185.31 394.597 Q2183.39 397.259 2183.39 401.958 Q2183.39 406.657 2185.31 409.342 Q2187.26 412.004 2190.64 412.004 Q2194.02 412.004 2195.94 409.342 Q2197.88 406.657 2197.88 401.958 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M2210.01 380.338 L2228.37 380.338 L2228.37 384.273 L2214.29 384.273 L2214.29 392.745 Q2215.31 392.398 2216.33 392.236 Q2217.35 392.05 2218.37 392.05 Q2224.16 392.05 2227.53 395.222 Q2230.91 398.393 2230.91 403.81 Q2230.91 409.388 2227.44 412.49 Q2223.97 415.569 2217.65 415.569 Q2215.47 415.569 2213.21 415.198 Q2210.96 414.828 2208.55 414.087 L2208.55 409.388 Q2210.64 410.523 2212.86 411.078 Q2215.08 411.634 2217.56 411.634 Q2221.56 411.634 2223.9 409.527 Q2226.24 407.421 2226.24 403.81 Q2226.24 400.199 2223.9 398.092 Q2221.56 395.986 2217.56 395.986 Q2215.68 395.986 2213.81 396.402 Q2211.96 396.819 2210.01 397.699 L2210.01 380.338 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip260)\" style=\"stroke:#00a9ad; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2010.6,458.098 2155.04,458.098 \n",
" \"/>\n",
"<path clip-path=\"url(#clip260)\" d=\"M 0 0 M2183.39 471.489 L2183.39 485.239 L2179.11 485.239 L2179.11 449.452 L2183.39 449.452 L2183.39 453.387 Q2184.73 451.072 2186.77 449.961 Q2188.83 448.827 2191.68 448.827 Q2196.4 448.827 2199.34 452.577 Q2202.3 456.327 2202.3 462.438 Q2202.3 468.549 2199.34 472.299 Q2196.4 476.049 2191.68 476.049 Q2188.83 476.049 2186.77 474.938 Q2184.73 473.803 2183.39 471.489 M2197.88 462.438 Q2197.88 457.739 2195.94 455.077 Q2194.02 452.392 2190.64 452.392 Q2187.26 452.392 2185.31 455.077 Q2183.39 457.739 2183.39 462.438 Q2183.39 467.137 2185.31 469.822 Q2187.26 472.484 2190.64 472.484 Q2194.02 472.484 2195.94 469.822 Q2197.88 467.137 2197.88 462.438 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip260)\" d=\"M 0 0 M2220.54 456.234 Q2217.4 456.234 2215.54 458.387 Q2213.72 460.54 2213.72 464.29 Q2213.72 468.016 2215.54 470.192 Q2217.4 472.345 2220.54 472.345 Q2223.69 472.345 2225.52 470.192 Q2227.37 468.016 2227.37 464.29 Q2227.37 460.54 2225.52 458.387 Q2223.69 456.234 2220.54 456.234 M2229.83 441.581 L2229.83 445.841 Q2228.07 445.007 2226.26 444.568 Q2224.48 444.128 2222.72 444.128 Q2218.09 444.128 2215.64 447.253 Q2213.21 450.378 2212.86 456.697 Q2214.22 454.683 2216.28 453.618 Q2218.34 452.53 2220.82 452.53 Q2226.03 452.53 2229.04 455.702 Q2232.07 458.85 2232.07 464.29 Q2232.07 469.614 2228.92 472.831 Q2225.78 476.049 2220.54 476.049 Q2214.55 476.049 2211.38 471.466 Q2208.21 466.859 2208.21 458.132 Q2208.21 449.938 2212.09 445.077 Q2215.98 440.193 2222.53 440.193 Q2224.29 440.193 2226.08 440.54 Q2227.88 440.887 2229.83 441.581 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /></svg>\n"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot(hcat(pricecontainer...)', label=reshape([\"p$i\" for i in 1:n], 1, :))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"┌ Info: Saved animation to \n",
"│ fn = C:\\Users\\Max\\418fc766c478eda3d13b976ff3330ab4\\tmp.gif\n",
"└ @ Plots C:\\Users\\Max\\.julia\\packages\\Plots\\vVVub\\src\\animation.jl:104\n"
]
},
{
"data": {
"text/html": [
"<img src=\"data:image/gif;base64,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\" />"
],
"text/plain": [
"Plots.AnimatedGif(\"C:\\\\Users\\\\Max\\\\418fc766c478eda3d13b976ff3330ab4\\\\tmp.gif\")"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ymax = 1.02*maximum(maximum, pricecontainer)\n",
"\n",
"anim = @animate for t in 1:T\n",
" plot(hcat(pricecontainer[1:t]...)', label=reshape([\"p$i\" for i in 1:n], 1, :),\n",
" xlim=(1, T), ylim=(0, ymax))\n",
"end\n",
"\n",
"gif(anim, fps=10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Equilibrium golf\n",
"Above, we used *simulation* to find the path of the prices over time. \n",
"\n",
"However, what if all we want to know are the equilibrium prices? Then there is no need to store the intermittent values of `p`."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6-element Vector{Float64}:\n",
" 0.03350699141417744\n",
" 0.1082420013987998\n",
" 0.2500169789174714\n",
" 0.1316339330508862\n",
" 0.19567665567476994\n",
" 0.2809234395438952"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function equilibrium(p, T)\n",
" # priceupdate(priceupdate(priceupdate( ... (p))))\n",
" for t in 1:T\n",
" p = priceupdate(p)\n",
" end\n",
" \n",
" return p\n",
"end\n",
"\n",
"p̄ = equilibrium(p0, 100)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will know `p̄` is an equilibrium if calling `priceupdate()` yields the same value."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"true"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p̄ ≈ priceupdate(p̄)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can make our equilibrium calculator even shorter using *function composition.*"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Compare\n",
"4 + 5 + 6"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"+(4, 5, 6)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.06825583369837018"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sin(exp(sqrt(5)))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.06825583369837018"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(sin ∘ exp ∘ sqrt)(5)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.06825583369837018"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"∘(sin, exp, sqrt)(5)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"8-element Vector{typeof(priceupdate)}:\n",
" priceupdate (generic function with 1 method)\n",
" priceupdate (generic function with 1 method)\n",
" priceupdate (generic function with 1 method)\n",
" priceupdate (generic function with 1 method)\n",
" priceupdate (generic function with 1 method)\n",
" priceupdate (generic function with 1 method)\n",
" priceupdate (generic function with 1 method)\n",
" priceupdate (generic function with 1 method)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fill(priceupdate, 8)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6-element Vector{Float64}:\n",
" 0.03350699141417744\n",
" 0.1082420013987998\n",
" 0.2500169789174714\n",
" 0.1316339330508862\n",
" 0.19567665567476994\n",
" 0.2809234395438952"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"∘(fill(priceupdate, 100)...)(p0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Huge market\n",
"\n",
"When `n` increases, the cost of computing the equilibrium increases quickly, because\n",
"- `demand(p)` takes longer to compute, \n",
"- `priceupdate(p)` takes longer to compute, and\n",
"- more t&acirc;tonnement iterations are required to reach a fixed point.\n",
"\n",
"Nonetheless, we can still do pretty big markets. "
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"n = 800\n",
"\n",
"A = rand(n, n)\n",
"for i in 1:n\n",
" # We need to subtract a bigger number from the diagonal\n",
" # to ensure that A is well conditioned.\n",
" \n",
" # Without this, tâtonnement reaches a fixed point, but \n",
" # it has some demand(p)[j] > q[j].\n",
" A[i, i] -= 200\n",
"end\n",
"q = rand(n)\n",
"q ./= sum(q)\n",
"\n",
"p0 = rand(n)\n",
"p0 ./= sum(p0);"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0.747121 seconds (14.00 k allocations: 37.567 MiB, 5.21% gc time)\n"
]
}
],
"source": [
"@time p̄ = equilibrium(p0, 1000);"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"true"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"isapprox(p̄, priceupdate(p̄), atol=1e-8)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"demand(p̄) - q;"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"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=\"clip800\">\n",
" <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip800)\" d=\"\n",
"M0 1600 L2400 1600 L2400 0 L0 0 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip801\">\n",
" <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip800)\" d=\"\n",
"M169.121 1423.18 L2352.76 1423.18 L2352.76 47.2441 L169.121 47.2441 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip802\">\n",
" <rect x=\"169\" y=\"47\" width=\"2185\" height=\"1377\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 289.225,1423.18 289.225,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 937.034,1423.18 937.034,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1584.84,1423.18 1584.84,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 2232.65,1423.18 2232.65,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 169.121,1423.18 2352.76,1423.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 289.225,1423.18 289.225,1406.67 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 937.034,1423.18 937.034,1406.67 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1584.84,1423.18 1584.84,1406.67 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2232.65,1423.18 2232.65,1406.67 \n",
" \"/>\n",
"<path clip-path=\"url(#clip800)\" d=\"M 0 0 M236.448 1452.37 Q232.837 1452.37 231.008 1455.94 Q229.202 1459.48 229.202 1466.61 Q229.202 1473.71 231.008 1477.28 Q232.837 1480.82 236.448 1480.82 Q240.082 1480.82 241.887 1477.28 Q243.716 1473.71 243.716 1466.61 Q243.716 1459.48 241.887 1455.94 Q240.082 1452.37 236.448 1452.37 M236.448 1448.67 Q242.258 1448.67 245.313 1453.27 Q248.392 1457.86 248.392 1466.61 Q248.392 1475.33 245.313 1479.94 Q242.258 1484.52 236.448 1484.52 Q230.637 1484.52 227.559 1479.94 Q224.503 1475.33 224.503 1466.61 Q224.503 1457.86 227.559 1453.27 Q230.637 1448.67 236.448 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M256.61 1477.97 L261.494 1477.97 L261.494 1483.85 L256.61 1483.85 L256.61 1477.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M281.679 1452.37 Q278.068 1452.37 276.239 1455.94 Q274.434 1459.48 274.434 1466.61 Q274.434 1473.71 276.239 1477.28 Q278.068 1480.82 281.679 1480.82 Q285.313 1480.82 287.119 1477.28 Q288.947 1473.71 288.947 1466.61 Q288.947 1459.48 287.119 1455.94 Q285.313 1452.37 281.679 1452.37 M281.679 1448.67 Q287.489 1448.67 290.545 1453.27 Q293.623 1457.86 293.623 1466.61 Q293.623 1475.33 290.545 1479.94 Q287.489 1484.52 281.679 1484.52 Q275.869 1484.52 272.79 1479.94 Q269.734 1475.33 269.734 1466.61 Q269.734 1457.86 272.79 1453.27 Q275.869 1448.67 281.679 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M311.841 1452.37 Q308.23 1452.37 306.401 1455.94 Q304.595 1459.48 304.595 1466.61 Q304.595 1473.71 306.401 1477.28 Q308.23 1480.82 311.841 1480.82 Q315.475 1480.82 317.281 1477.28 Q319.109 1473.71 319.109 1466.61 Q319.109 1459.48 317.281 1455.94 Q315.475 1452.37 311.841 1452.37 M311.841 1448.67 Q317.651 1448.67 320.706 1453.27 Q323.785 1457.86 323.785 1466.61 Q323.785 1475.33 320.706 1479.94 Q317.651 1484.52 311.841 1484.52 Q306.031 1484.52 302.952 1479.94 Q299.896 1475.33 299.896 1466.61 Q299.896 1457.86 302.952 1453.27 Q306.031 1448.67 311.841 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M342.003 1452.37 Q338.392 1452.37 336.563 1455.94 Q334.757 1459.48 334.757 1466.61 Q334.757 1473.71 336.563 1477.28 Q338.392 1480.82 342.003 1480.82 Q345.637 1480.82 347.442 1477.28 Q349.271 1473.71 349.271 1466.61 Q349.271 1459.48 347.442 1455.94 Q345.637 1452.37 342.003 1452.37 M342.003 1448.67 Q347.813 1448.67 350.868 1453.27 Q353.947 1457.86 353.947 1466.61 Q353.947 1475.33 350.868 1479.94 Q347.813 1484.52 342.003 1484.52 Q336.192 1484.52 333.114 1479.94 Q330.058 1475.33 330.058 1466.61 Q330.058 1457.86 333.114 1453.27 Q336.192 1448.67 342.003 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M884.87 1452.37 Q881.259 1452.37 879.43 1455.94 Q877.625 1459.48 877.625 1466.61 Q877.625 1473.71 879.43 1477.28 Q881.259 1480.82 884.87 1480.82 Q888.504 1480.82 890.31 1477.28 Q892.139 1473.71 892.139 1466.61 Q892.139 1459.48 890.31 1455.94 Q888.504 1452.37 884.87 1452.37 M884.87 1448.67 Q890.68 1448.67 893.736 1453.27 Q896.814 1457.86 896.814 1466.61 Q896.814 1475.33 893.736 1479.94 Q890.68 1484.52 884.87 1484.52 Q879.06 1484.52 875.981 1479.94 Q872.926 1475.33 872.926 1466.61 Q872.926 1457.86 875.981 1453.27 Q879.06 1448.67 884.87 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M905.032 1477.97 L909.916 1477.97 L909.916 1483.85 L905.032 1483.85 L905.032 1477.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M930.101 1452.37 Q926.49 1452.37 924.661 1455.94 Q922.856 1459.48 922.856 1466.61 Q922.856 1473.71 924.661 1477.28 Q926.49 1480.82 930.101 1480.82 Q933.736 1480.82 935.541 1477.28 Q937.37 1473.71 937.37 1466.61 Q937.37 1459.48 935.541 1455.94 Q933.736 1452.37 930.101 1452.37 M930.101 1448.67 Q935.911 1448.67 938.967 1453.27 Q942.046 1457.86 942.046 1466.61 Q942.046 1475.33 938.967 1479.94 Q935.911 1484.52 930.101 1484.52 Q924.291 1484.52 921.212 1479.94 Q918.157 1475.33 918.157 1466.61 Q918.157 1457.86 921.212 1453.27 Q924.291 1448.67 930.101 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M960.263 1452.37 Q956.652 1452.37 954.823 1455.94 Q953.018 1459.48 953.018 1466.61 Q953.018 1473.71 954.823 1477.28 Q956.652 1480.82 960.263 1480.82 Q963.897 1480.82 965.703 1477.28 Q967.532 1473.71 967.532 1466.61 Q967.532 1459.48 965.703 1455.94 Q963.897 1452.37 960.263 1452.37 M960.263 1448.67 Q966.073 1448.67 969.129 1453.27 Q972.208 1457.86 972.208 1466.61 Q972.208 1475.33 969.129 1479.94 Q966.073 1484.52 960.263 1484.52 Q954.453 1484.52 951.374 1479.94 Q948.319 1475.33 948.319 1466.61 Q948.319 1457.86 951.374 1453.27 Q954.453 1448.67 960.263 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M981.235 1479.92 L988.874 1479.92 L988.874 1453.55 L980.564 1455.22 L980.564 1450.96 L988.828 1449.29 L993.504 1449.29 L993.504 1479.92 L1001.14 1479.92 L1001.14 1483.85 L981.235 1483.85 L981.235 1479.92 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1532.86 1452.37 Q1529.25 1452.37 1527.42 1455.94 Q1525.62 1459.48 1525.62 1466.61 Q1525.62 1473.71 1527.42 1477.28 Q1529.25 1480.82 1532.86 1480.82 Q1536.5 1480.82 1538.3 1477.28 Q1540.13 1473.71 1540.13 1466.61 Q1540.13 1459.48 1538.3 1455.94 Q1536.5 1452.37 1532.86 1452.37 M1532.86 1448.67 Q1538.67 1448.67 1541.73 1453.27 Q1544.81 1457.86 1544.81 1466.61 Q1544.81 1475.33 1541.73 1479.94 Q1538.67 1484.52 1532.86 1484.52 Q1527.05 1484.52 1523.98 1479.94 Q1520.92 1475.33 1520.92 1466.61 Q1520.92 1457.86 1523.98 1453.27 Q1527.05 1448.67 1532.86 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1553.03 1477.97 L1557.91 1477.97 L1557.91 1483.85 L1553.03 1483.85 L1553.03 1477.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1578.1 1452.37 Q1574.48 1452.37 1572.66 1455.94 Q1570.85 1459.48 1570.85 1466.61 Q1570.85 1473.71 1572.66 1477.28 Q1574.48 1480.82 1578.1 1480.82 Q1581.73 1480.82 1583.54 1477.28 Q1585.36 1473.71 1585.36 1466.61 Q1585.36 1459.48 1583.54 1455.94 Q1581.73 1452.37 1578.1 1452.37 M1578.1 1448.67 Q1583.91 1448.67 1586.96 1453.27 Q1590.04 1457.86 1590.04 1466.61 Q1590.04 1475.33 1586.96 1479.94 Q1583.91 1484.52 1578.1 1484.52 Q1572.29 1484.52 1569.21 1479.94 Q1566.15 1475.33 1566.15 1466.61 Q1566.15 1457.86 1569.21 1453.27 Q1572.29 1448.67 1578.1 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1608.26 1452.37 Q1604.65 1452.37 1602.82 1455.94 Q1601.01 1459.48 1601.01 1466.61 Q1601.01 1473.71 1602.82 1477.28 Q1604.65 1480.82 1608.26 1480.82 Q1611.89 1480.82 1613.7 1477.28 Q1615.53 1473.71 1615.53 1466.61 Q1615.53 1459.48 1613.7 1455.94 Q1611.89 1452.37 1608.26 1452.37 M1608.26 1448.67 Q1614.07 1448.67 1617.12 1453.27 Q1620.2 1457.86 1620.2 1466.61 Q1620.2 1475.33 1617.12 1479.94 Q1614.07 1484.52 1608.26 1484.52 Q1602.45 1484.52 1599.37 1479.94 Q1596.31 1475.33 1596.31 1466.61 Q1596.31 1457.86 1599.37 1453.27 Q1602.45 1448.67 1608.26 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1632.45 1479.92 L1648.77 1479.92 L1648.77 1483.85 L1626.82 1483.85 L1626.82 1479.92 Q1629.48 1477.16 1634.07 1472.53 Q1638.67 1467.88 1639.85 1466.54 Q1642.1 1464.01 1642.98 1462.28 Q1643.88 1460.52 1643.88 1458.83 Q1643.88 1456.07 1641.94 1454.34 Q1640.02 1452.6 1636.91 1452.6 Q1634.72 1452.6 1632.26 1453.37 Q1629.83 1454.13 1627.05 1455.68 L1627.05 1450.96 Q1629.88 1449.82 1632.33 1449.25 Q1634.78 1448.67 1636.82 1448.67 Q1642.19 1448.67 1645.39 1451.35 Q1648.58 1454.04 1648.58 1458.53 Q1648.58 1460.66 1647.77 1462.58 Q1646.98 1464.48 1644.88 1467.07 Q1644.3 1467.74 1641.2 1470.96 Q1638.1 1474.15 1632.45 1479.92 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M2180.2 1452.37 Q2176.59 1452.37 2174.76 1455.94 Q2172.95 1459.48 2172.95 1466.61 Q2172.95 1473.71 2174.76 1477.28 Q2176.59 1480.82 2180.2 1480.82 Q2183.83 1480.82 2185.64 1477.28 Q2187.47 1473.71 2187.47 1466.61 Q2187.47 1459.48 2185.64 1455.94 Q2183.83 1452.37 2180.2 1452.37 M2180.2 1448.67 Q2186.01 1448.67 2189.06 1453.27 Q2192.14 1457.86 2192.14 1466.61 Q2192.14 1475.33 2189.06 1479.94 Q2186.01 1484.52 2180.2 1484.52 Q2174.39 1484.52 2171.31 1479.94 Q2168.25 1475.33 2168.25 1466.61 Q2168.25 1457.86 2171.31 1453.27 Q2174.39 1448.67 2180.2 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M2200.36 1477.97 L2205.24 1477.97 L2205.24 1483.85 L2200.36 1483.85 L2200.36 1477.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M2225.43 1452.37 Q2221.82 1452.37 2219.99 1455.94 Q2218.18 1459.48 2218.18 1466.61 Q2218.18 1473.71 2219.99 1477.28 Q2221.82 1480.82 2225.43 1480.82 Q2229.06 1480.82 2230.87 1477.28 Q2232.7 1473.71 2232.7 1466.61 Q2232.7 1459.48 2230.87 1455.94 Q2229.06 1452.37 2225.43 1452.37 M2225.43 1448.67 Q2231.24 1448.67 2234.3 1453.27 Q2237.37 1457.86 2237.37 1466.61 Q2237.37 1475.33 2234.3 1479.94 Q2231.24 1484.52 2225.43 1484.52 Q2219.62 1484.52 2216.54 1479.94 Q2213.49 1475.33 2213.49 1466.61 Q2213.49 1457.86 2216.54 1453.27 Q2219.62 1448.67 2225.43 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M2255.59 1452.37 Q2251.98 1452.37 2250.15 1455.94 Q2248.35 1459.48 2248.35 1466.61 Q2248.35 1473.71 2250.15 1477.28 Q2251.98 1480.82 2255.59 1480.82 Q2259.23 1480.82 2261.03 1477.28 Q2262.86 1473.71 2262.86 1466.61 Q2262.86 1459.48 2261.03 1455.94 Q2259.23 1452.37 2255.59 1452.37 M2255.59 1448.67 Q2261.4 1448.67 2264.46 1453.27 Q2267.54 1457.86 2267.54 1466.61 Q2267.54 1475.33 2264.46 1479.94 Q2261.4 1484.52 2255.59 1484.52 Q2249.78 1484.52 2246.7 1479.94 Q2243.65 1475.33 2243.65 1466.61 Q2243.65 1457.86 2246.7 1453.27 Q2249.78 1448.67 2255.59 1448.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M2289.92 1465.22 Q2293.28 1465.94 2295.15 1468.2 Q2297.05 1470.47 2297.05 1473.81 Q2297.05 1478.92 2293.53 1481.72 Q2290.01 1484.52 2283.53 1484.52 Q2281.36 1484.52 2279.04 1484.08 Q2276.75 1483.67 2274.3 1482.81 L2274.3 1478.3 Q2276.24 1479.43 2278.55 1480.01 Q2280.87 1480.59 2283.39 1480.59 Q2287.79 1480.59 2290.08 1478.85 Q2292.4 1477.12 2292.4 1473.81 Q2292.4 1470.75 2290.24 1469.04 Q2288.11 1467.3 2284.3 1467.3 L2280.27 1467.3 L2280.27 1463.46 L2284.48 1463.46 Q2287.93 1463.46 2289.76 1462.09 Q2291.59 1460.7 2291.59 1458.11 Q2291.59 1455.45 2289.69 1454.04 Q2287.81 1452.6 2284.3 1452.6 Q2282.37 1452.6 2280.18 1453.02 Q2277.98 1453.44 2275.34 1454.31 L2275.34 1450.15 Q2278 1449.41 2280.31 1449.04 Q2282.65 1448.67 2284.71 1448.67 Q2290.04 1448.67 2293.14 1451.1 Q2296.24 1453.5 2296.24 1457.63 Q2296.24 1460.5 2294.6 1462.49 Q2292.95 1464.45 2289.92 1465.22 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1190.41 1562.7 L1190.41 1581.6 L1184.52 1581.6 L1184.52 1532.4 L1190.41 1532.4 L1190.41 1537.81 Q1192.25 1534.62 1195.05 1533.1 Q1197.89 1531.54 1201.8 1531.54 Q1208.29 1531.54 1212.34 1536.69 Q1216.41 1541.85 1216.41 1550.25 Q1216.41 1558.65 1212.34 1563.81 Q1208.29 1568.97 1201.8 1568.97 Q1197.89 1568.97 1195.05 1567.44 Q1192.25 1565.88 1190.41 1562.7 M1210.33 1550.25 Q1210.33 1543.79 1207.66 1540.13 Q1205.02 1536.44 1200.37 1536.44 Q1195.72 1536.44 1193.05 1540.13 Q1190.41 1543.79 1190.41 1550.25 Q1190.41 1556.71 1193.05 1560.4 Q1195.72 1564.07 1200.37 1564.07 Q1205.02 1564.07 1207.66 1560.4 Q1210.33 1556.71 1210.33 1550.25 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1246.77 1537.87 Q1245.79 1537.3 1244.61 1537.04 Q1243.46 1536.76 1242.06 1536.76 Q1237.1 1536.76 1234.43 1540 Q1231.78 1543.22 1231.78 1549.27 L1231.78 1568.04 L1225.9 1568.04 L1225.9 1532.4 L1231.78 1532.4 L1231.78 1537.93 Q1233.63 1534.69 1236.59 1533.13 Q1239.55 1531.54 1243.78 1531.54 Q1244.39 1531.54 1245.12 1531.63 Q1245.85 1531.7 1246.74 1531.85 L1246.77 1537.87 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1252.92 1532.4 L1258.77 1532.4 L1258.77 1568.04 L1252.92 1568.04 L1252.92 1532.4 M1252.92 1518.52 L1258.77 1518.52 L1258.77 1525.93 L1252.92 1525.93 L1252.92 1518.52 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1296.68 1533.76 L1296.68 1539.24 Q1294.2 1537.87 1291.68 1537.2 Q1289.2 1536.5 1286.66 1536.5 Q1280.96 1536.5 1277.81 1540.13 Q1274.66 1543.73 1274.66 1550.25 Q1274.66 1556.78 1277.81 1560.4 Q1280.96 1564 1286.66 1564 Q1289.2 1564 1291.68 1563.33 Q1294.2 1562.63 1296.68 1561.26 L1296.68 1566.68 Q1294.23 1567.82 1291.59 1568.39 Q1288.98 1568.97 1286.02 1568.97 Q1277.97 1568.97 1273.22 1563.91 Q1268.48 1558.85 1268.48 1550.25 Q1268.48 1541.53 1273.26 1536.53 Q1278.06 1531.54 1286.4 1531.54 Q1289.11 1531.54 1291.68 1532.11 Q1294.26 1532.65 1296.68 1533.76 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M1337.36 1548.76 L1337.36 1551.62 L1310.43 1551.62 Q1310.81 1557.67 1314.06 1560.85 Q1317.34 1564 1323.16 1564 Q1326.54 1564 1329.69 1563.17 Q1332.87 1562.35 1335.99 1560.69 L1335.99 1566.23 Q1332.84 1567.57 1329.53 1568.27 Q1326.22 1568.97 1322.81 1568.97 Q1314.28 1568.97 1309.29 1564 Q1304.32 1559.04 1304.32 1550.57 Q1304.32 1541.82 1309.03 1536.69 Q1313.77 1531.54 1321.79 1531.54 Q1328.99 1531.54 1333.16 1536.18 Q1337.36 1540.8 1337.36 1548.76 M1331.5 1547.04 Q1331.44 1542.23 1328.8 1539.37 Q1326.19 1536.5 1321.86 1536.5 Q1316.96 1536.5 1314 1539.27 Q1311.07 1542.04 1310.62 1547.07 L1331.5 1547.04 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 169.121,1384.24 2352.76,1384.24 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 169.121,1006.9 2352.76,1006.9 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 169.121,629.557 2352.76,629.557 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 169.121,252.216 2352.76,252.216 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 169.121,1423.18 169.121,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 169.121,1384.24 195.325,1384.24 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 169.121,1006.9 195.325,1006.9 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 169.121,629.557 195.325,629.557 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 169.121,252.216 195.325,252.216 \n",
" \"/>\n",
"<path clip-path=\"url(#clip800)\" d=\"M 0 0 M121.177 1370.04 Q117.566 1370.04 115.737 1373.6 Q113.932 1377.14 113.932 1384.27 Q113.932 1391.38 115.737 1394.94 Q117.566 1398.49 121.177 1398.49 Q124.811 1398.49 126.617 1394.94 Q128.445 1391.38 128.445 1384.27 Q128.445 1377.14 126.617 1373.6 Q124.811 1370.04 121.177 1370.04 M121.177 1366.33 Q126.987 1366.33 130.043 1370.94 Q133.121 1375.52 133.121 1384.27 Q133.121 1393 130.043 1397.61 Q126.987 1402.19 121.177 1402.19 Q115.367 1402.19 112.288 1397.61 Q109.233 1393 109.233 1384.27 Q109.233 1375.52 112.288 1370.94 Q115.367 1366.33 121.177 1366.33 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M81.0614 989.617 L99.4178 989.617 L99.4178 993.553 L85.3438 993.553 L85.3438 1002.02 Q86.3623 1001.68 87.3808 1001.52 Q88.3993 1001.33 89.4178 1001.33 Q95.2049 1001.33 98.5845 1004.5 Q101.964 1007.67 101.964 1013.09 Q101.964 1018.67 98.4919 1021.77 Q95.0197 1024.85 88.7003 1024.85 Q86.5243 1024.85 84.2558 1024.48 Q82.0105 1024.11 79.6031 1023.37 L79.6031 1018.67 Q81.6864 1019.8 83.9086 1020.36 Q86.1308 1020.91 88.6077 1020.91 Q92.6123 1020.91 94.9502 1018.81 Q97.2882 1016.7 97.2882 1013.09 Q97.2882 1009.48 94.9502 1007.37 Q92.6123 1005.27 88.6077 1005.27 Q86.7327 1005.27 84.8577 1005.68 Q83.0058 1006.1 81.0614 1006.98 L81.0614 989.617 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M121.177 992.696 Q117.566 992.696 115.737 996.261 Q113.932 999.803 113.932 1006.93 Q113.932 1014.04 115.737 1017.6 Q117.566 1021.15 121.177 1021.15 Q124.811 1021.15 126.617 1017.6 Q128.445 1014.04 128.445 1006.93 Q128.445 999.803 126.617 996.261 Q124.811 992.696 121.177 992.696 M121.177 988.992 Q126.987 988.992 130.043 993.599 Q133.121 998.182 133.121 1006.93 Q133.121 1015.66 130.043 1020.27 Q126.987 1024.85 121.177 1024.85 Q115.367 1024.85 112.288 1020.27 Q109.233 1015.66 109.233 1006.93 Q109.233 998.182 112.288 993.599 Q115.367 988.992 121.177 988.992 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M51.6634 642.901 L59.3023 642.901 L59.3023 616.536 L50.9921 618.202 L50.9921 613.943 L59.256 612.277 L63.9319 612.277 L63.9319 642.901 L71.5707 642.901 L71.5707 646.837 L51.6634 646.837 L51.6634 642.901 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M91.0151 615.355 Q87.404 615.355 85.5753 618.92 Q83.7697 622.462 83.7697 629.591 Q83.7697 636.698 85.5753 640.262 Q87.404 643.804 91.0151 643.804 Q94.6493 643.804 96.4548 640.262 Q98.2835 636.698 98.2835 629.591 Q98.2835 622.462 96.4548 618.92 Q94.6493 615.355 91.0151 615.355 M91.0151 611.652 Q96.8252 611.652 99.8808 616.258 Q102.959 620.841 102.959 629.591 Q102.959 638.318 99.8808 642.925 Q96.8252 647.508 91.0151 647.508 Q85.2049 647.508 82.1262 642.925 Q79.0707 638.318 79.0707 629.591 Q79.0707 620.841 82.1262 616.258 Q85.2049 611.652 91.0151 611.652 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M121.177 615.355 Q117.566 615.355 115.737 618.92 Q113.932 622.462 113.932 629.591 Q113.932 636.698 115.737 640.262 Q117.566 643.804 121.177 643.804 Q124.811 643.804 126.617 640.262 Q128.445 636.698 128.445 629.591 Q128.445 622.462 126.617 618.92 Q124.811 615.355 121.177 615.355 M121.177 611.652 Q126.987 611.652 130.043 616.258 Q133.121 620.841 133.121 629.591 Q133.121 638.318 130.043 642.925 Q126.987 647.508 121.177 647.508 Q115.367 647.508 112.288 642.925 Q109.233 638.318 109.233 629.591 Q109.233 620.841 112.288 616.258 Q115.367 611.652 121.177 611.652 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M51.6634 265.56 L59.3023 265.56 L59.3023 239.195 L50.9921 240.862 L50.9921 236.602 L59.256 234.936 L63.9319 234.936 L63.9319 265.56 L71.5707 265.56 L71.5707 269.496 L51.6634 269.496 L51.6634 265.56 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M81.0614 234.936 L99.4178 234.936 L99.4178 238.871 L85.3438 238.871 L85.3438 247.343 Q86.3623 246.996 87.3808 246.834 Q88.3993 246.649 89.4178 246.649 Q95.2049 246.649 98.5845 249.82 Q101.964 252.991 101.964 258.408 Q101.964 263.986 98.4919 267.088 Q95.0197 270.167 88.7003 270.167 Q86.5243 270.167 84.2558 269.797 Q82.0105 269.426 79.6031 268.685 L79.6031 263.986 Q81.6864 265.121 83.9086 265.676 Q86.1308 266.232 88.6077 266.232 Q92.6123 266.232 94.9502 264.125 Q97.2882 262.019 97.2882 258.408 Q97.2882 254.797 94.9502 252.69 Q92.6123 250.584 88.6077 250.584 Q86.7327 250.584 84.8577 251 Q83.0058 251.417 81.0614 252.297 L81.0614 234.936 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip800)\" d=\"M 0 0 M121.177 238.014 Q117.566 238.014 115.737 241.579 Q113.932 245.121 113.932 252.25 Q113.932 259.357 115.737 262.922 Q117.566 266.463 121.177 266.463 Q124.811 266.463 126.617 262.922 Q128.445 259.357 128.445 252.25 Q128.445 245.121 126.617 241.579 Q124.811 238.014 121.177 238.014 M121.177 234.311 Q126.987 234.311 130.043 238.917 Q133.121 243.5 133.121 252.25 Q133.121 260.977 130.043 265.584 Q126.987 270.167 121.177 270.167 Q115.367 270.167 112.288 265.584 Q109.233 260.977 109.233 252.25 Q109.233 243.5 112.288 238.917 Q115.367 234.311 121.177 234.311 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip802)\" d=\"\n",
"M289.225 101.279 L289.225 1384.24 L613.13 1384.24 L613.13 101.279 L289.225 101.279 L289.225 101.279 Z\n",
" \" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 289.225,101.279 289.225,1384.24 613.13,1384.24 613.13,101.279 289.225,101.279 \n",
" \"/>\n",
"<path clip-path=\"url(#clip802)\" d=\"\n",
"M613.13 206.935 L613.13 1384.24 L937.034 1384.24 L937.034 206.935 L613.13 206.935 L613.13 206.935 Z\n",
" \" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 613.13,206.935 613.13,1384.24 937.034,1384.24 937.034,206.935 613.13,206.935 \n",
" \"/>\n",
"<path clip-path=\"url(#clip802)\" d=\"\n",
"M937.034 214.482 L937.034 1384.24 L1260.94 1384.24 L1260.94 214.482 L937.034 214.482 L937.034 214.482 Z\n",
" \" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 937.034,214.482 937.034,1384.24 1260.94,1384.24 1260.94,214.482 937.034,214.482 \n",
" \"/>\n",
"<path clip-path=\"url(#clip802)\" d=\"\n",
"M1260.94 305.043 L1260.94 1384.24 L1584.84 1384.24 L1584.84 305.043 L1260.94 305.043 L1260.94 305.043 Z\n",
" \" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1260.94,305.043 1260.94,1384.24 1584.84,1384.24 1584.84,305.043 1260.94,305.043 \n",
" \"/>\n",
"<path clip-path=\"url(#clip802)\" d=\"\n",
"M1584.84 86.1857 L1584.84 1384.24 L1908.75 1384.24 L1908.75 86.1857 L1584.84 86.1857 L1584.84 86.1857 Z\n",
" \" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1584.84,86.1857 1584.84,1384.24 1908.75,1384.24 1908.75,86.1857 1584.84,86.1857 \n",
" \"/>\n",
"<path clip-path=\"url(#clip802)\" d=\"\n",
"M1908.75 1354.05 L1908.75 1384.24 L2232.65 1384.24 L2232.65 1354.05 L1908.75 1354.05 L1908.75 1354.05 Z\n",
" \" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip802)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1908.75,1354.05 1908.75,1384.24 2232.65,1384.24 2232.65,1354.05 1908.75,1354.05 \n",
" \"/>\n",
"</svg>\n"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"histogram(p̄, xlabel=\"price\", legend=false)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Further reading\n",
"\n",
"[Walras's Law](https://en.wikipedia.org/wiki/Walras%27s_law) generalizes our `sum(demand) = sum(q) = 1` assumption and argues for its realism.\n",
"\n",
"The market considered here is a special case of an [exchange economy](https://en.wikipedia.org/wiki/Exchange_economy) with one consumer whose behavior is encoded by the `demand(p)` function.\n",
"\n",
"Formal characterization of [competitive equilibrium](https://en.wikipedia.org/wiki/Competitive_equilibrium).\n",
"\n",
"#### Academic references:\n",
"\n",
"Codenotti, Bruno, and Kasturi Varadarajan. 2007. \"Computation of Market Equilibria by Convex Programming.\" In *Algorithmic Game Theory,* edited by Noam Nisan, Tim Roughgarden, Eva Tardos, and Vijay V. Vazirani, 135&ndash;58. Cambridge University Press. \n",
"\n",
"Fisher, Franklin. 2013. \"The Stability of General Equilibrium: What Do We Know and Why Is It Important?\" In *General Equilibrium Analysis A Century after Walras,* edited by Pascal Bridel, 34&ndash;45. Routledge.\n",
"\n",
"Uzawa, H. 1960. \"Walras' T&acirc;tonnement in the Theory of Exchange.\" *The Review of Economic Studies* 27(3): 182&ndash;94. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.6.1",
"language": "julia",
"name": "julia-1.6"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment