{ "cells": [ { "cell_type": "markdown", "id": "e7b53ba1", "metadata": {}, "source": [ "# DMRG Optimization of the XXZ Model\n", "\n", "In this notebook, we'll demonstrate how to use **mpstab** with DMRG (Density Matrix Renormalization Group) to optimize complex Hamiltonian systems. We'll focus on finding the ground state of the anisotropic XXZ model - a highly correlated quantum system - on systems with 6-35 qubits.\n", "\n", "## Overview\n", "\n", "- **DMRG** is a powerful variational algorithm that directly optimizes Matrix Product States (MPS) tensors\n", "- **XXZ Model**: Defined by the Hamiltonian with anisotropy $\\Delta=2$:\n", "\n", "$$H = \\sum_{i=1}^{n-1} (X_i X_{i+1} + Y_i Y_{i+1} + \\Delta Z_i Z_{i+1})$$\n", "\n", "- **Key Advantage**: Unlike VQE which optimizes circuit parameters, DMRG optimizes the quantum state representation directly\n", "- **High Correlations**: The XXZ model exhibits strong quantum correlations, making it computationally challenging" ] }, { "cell_type": "markdown", "id": "4385dbba", "metadata": {}, "source": [ "### Import Required Libraries" ] }, { "cell_type": "code", "execution_count": 20, "id": "015eb6ce", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from qibo import Circuit, gates, hamiltonians\n", "from qibo.symbols import X, Y, Z\n", "\n", "from mpstab.models.ansatze import HardwareEfficient\n", "from mpstab.evolutors.hsmpo import HSMPO\n", "from mpstab.engines import QuimbEngine, StimEngine\n", "\n", "# Set random seed for reproducibility\n", "np.random.seed(42)" ] }, { "cell_type": "markdown", "id": "4c186a00", "metadata": {}, "source": [ "### Define the XXZ Hamiltonian\n", "\n", "The **anisotropic XXZ model** is a highly correlated model with strong quantum entanglement and phase transitions.\n", "\n", "**Mathematical Definition** with anisotropy $\\Delta = 2$:\n", "\n", "$$H = \\sum_{i=1}^{n-1} \\left(X_i X_{i+1} + Y_i Y_{i+1} + \\Delta Z_i Z_{i+1}\\right)$$\n", "\n", "**Physical Significance:**\n", "- Exhibits strong quantum correlations and entanglement\n", "- The anisotropy parameter $\\Delta$ controls the ratio of longitudinal to transverse interactions\n", "- With $\\Delta > 1$, the model shows complex phase structure and strong quantum effects\n", "- Requires larger bond dimensions for accurate DMRG representation\n", "- Ground state is difficult to compute classically due to high entanglement" ] }, { "cell_type": "code", "execution_count": 21, "id": "3e29300c", "metadata": {}, "outputs": [], "source": [ "def create_xxz_hamiltonian(nqubits, delta=2.0):\n", " \"\"\"Create the anisotropic XXZ Hamiltonian for n qubits with anisotropy delta.\"\"\"\n", " H = 0\n", " for i in range(nqubits - 1):\n", " H += X(i) * X(i + 1)\n", " H += Y(i) * Y(i + 1)\n", " H += delta * Z(i) * Z(i + 1)\n", " return hamiltonians.SymbolicHamiltonian(nqubits=nqubits, form=H)" ] }, { "cell_type": "markdown", "id": "2d8bb66b", "metadata": {}, "source": [ "### Initialize Quantum Circuits\n", "\n", "We'll use the **Hardware Efficient (HE) ansatz**, which is a common choice for NISQ algorithms. It alternates rotation layers (RY, RZ) with entangling CNOT layers." ] }, { "cell_type": "code", "execution_count": 24, "id": "3544f7c5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Circuit depth = 17\n", "Total number of gates = 69\n", "Number of qubits = 8\n", "Most common gates:\n", "ry: 24\n", "rz: 24\n", "cx: 21\n" ] } ], "source": [ "def create_hardware_efficient_ansatz(nqubits, nlayers):\n", " \"\"\"Create a Hardware Efficient ansatz circuit.\"\"\"\n", " circuit = Circuit(nqubits)\n", " for layer in range(nlayers):\n", " # Single qubit rotations\n", " for q in range(nqubits):\n", " circuit.add(gates.RY(q, theta=0.3)) \n", " circuit.add(gates.RZ(q, theta=0.4)) \n", " # Entangling layer\n", " for q in range(nqubits - 1):\n", " circuit.add(gates.CNOT(q, q + 1))\n", " return circuit\n", "\n", "# Create ansatz for different system sizes\n", "test_circuit = create_hardware_efficient_ansatz(nqubits=8, nlayers=3)\n", "test_circuit.summary()" ] }, { "cell_type": "markdown", "id": "79e45a07", "metadata": {}, "source": [ "### DMRG Optimization with HSMPO\n", "\n", "**mpstab** implements the Hybrid Stabilizer-MPO (HSMPO) formalism, which:\n", "1. Decomposes the circuit into Clifford stabilizer operations and Magic gates\n", "2. Represents the state as an MPO that efficiently captures the non-Clifford resources\n", "3. Uses DMRG to directly optimize the MPS tensors\n", "\n", "This approach is much more efficient than circuit-based VQE for finding ground states!" ] }, { "cell_type": "code", "execution_count": 25, "id": "26bb6905", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[Qibo 0.3.2|WARNING|2026-04-20 09:51:01]: Calculating the dense form of a symbolic Hamiltonian. This operation is memory inefficient.\n", "/Users/robbiati/Documents/tac/lib/python3.12/site-packages/qibo/backends/abstract.py:423: RuntimeWarning: divide by zero encountered in matmul\n", " return self.engine.matmul(array_1, array_2, **kwargs)\n", "/Users/robbiati/Documents/tac/lib/python3.12/site-packages/qibo/backends/abstract.py:423: RuntimeWarning: overflow encountered in matmul\n", " return self.engine.matmul(array_1, array_2, **kwargs)\n", "/Users/robbiati/Documents/tac/lib/python3.12/site-packages/qibo/backends/abstract.py:423: RuntimeWarning: invalid value encountered in matmul\n", " return self.engine.matmul(array_1, array_2, **kwargs)\n", "[Qibo 0.3.2|WARNING|2026-04-20 09:51:01]: Calculating the dense form of a symbolic Hamiltonian. This operation is memory inefficient.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "6-Qubit XXZ Optimization (Validation):\n", " DMRG Ground State Energy: -13.57771544\n", " Exact Ground State Energy: -13.57771544\n", " Converged: True\n", " Accuracy: 1.07e-14\n" ] } ], "source": [ "def optimize_xxz_dmrg(nqubits, nlayers, delta=2.0, bond_dims=[10, 20], max_sweeps=15):\n", " \"\"\"\n", " Optimize XXZ Hamiltonian using DMRG via HSMPO.\n", " \"\"\"\n", " # Create ansatz and HSMPO\n", " ansatz = HardwareEfficient(nqubits=nqubits, nlayers=nlayers)\n", " hsmpo = HSMPO(ansatz=ansatz)\n", " \n", " # Set engines\n", " hsmpo.set_engines(stab_engine=StimEngine(), tn_engine=QuimbEngine(backend=\"numpy\"))\n", " \n", " # Create Hamiltonian\n", " hamiltonian = create_xxz_hamiltonian(nqubits, delta=delta)\n", " \n", " # Run DMRG\n", " result = hsmpo.minimize_expectation(\n", " observables=hamiltonian,\n", " method=\"dmrg\",\n", " bond_dims=bond_dims,\n", " max_sweeps=max_sweeps,\n", " verbosity=0,\n", " )\n", " \n", " return result, hsmpo, hamiltonian\n", "\n", "# Optimize for 6 qubits (validation)\n", "result_6q, hsmpo_6q, ham_6q = optimize_xxz_dmrg(nqubits=6, nlayers=2, delta=2.0, bond_dims=[10, 20], max_sweeps=15)\n", "\n", "print(f\"6-Qubit XXZ Optimization (Validation):\")\n", "print(f\" DMRG Ground State Energy: {result_6q['energy']:.8f}\")\n", "print(f\" Exact Ground State Energy: {min(ham_6q.eigenvalues()):.8f}\")\n", "print(f\" Converged: {result_6q['converged']}\")\n", "print(f\" Accuracy: {abs(result_6q['energy'] - min(ham_6q.eigenvalues())):.2e}\")" ] }, { "cell_type": "markdown", "id": "7b4cafae", "metadata": {}, "source": [ "### Scaling to Large Systems\n", "\n", "Now let's see how DMRG performs on larger systems. We'll optimize a 35-qubit XXZ model with increasing bond dimensions to understand the energy improvement as we increase the MPS expressiveness." ] }, { "cell_type": "code", "execution_count": 26, "id": "c93afdfa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Optimizing 35-Qubit XXZ System with Bond Dimension Scaling...\n", "\n", " Running with BD=5... E=-84.789587, t=11.1s\n", " Running with BD=10... E=-84.812962, t=11.3s\n", " Running with BD=20... E=-84.813325, t=13.6s\n", " Running with BD=30... E=-84.813315, t=12.7s\n", " Running with BD=40... E=-84.813328, t=13.4s\n", " Running with BD=50... E=-84.813331, t=12.7s\n", "\n", "35-Qubit XXZ Optimization Complete\n", "Bond Dimensions: [5, 10, 20, 30, 40, 50]\n", "Final Energy (BD=50): -84.81333118\n" ] } ], "source": [ "import time\n", "\n", "# Optimize for 35 qubits with different bond dimension scales\n", "print(\"\\nOptimizing 35-Qubit XXZ System with Bond Dimension Scaling...\\n\")\n", "\n", "bond_dim_scales = [5, 10, 20, 30, 40, 50]\n", "energies_35q = []\n", "elapsed_times_35q = []\n", "\n", "for bd in bond_dim_scales:\n", " print(f\" Running with BD={bd}...\", end=\" \", flush=True)\n", " start_time = time.time()\n", " result_35q, hsmpo_35q, ham_35q = optimize_xxz_dmrg(\n", " nqubits=35, nlayers=2, delta=2.0, bond_dims=[bd], max_sweeps=3\n", " )\n", " elapsed_time = time.time() - start_time\n", " energies_35q.append(result_35q['energy'])\n", " elapsed_times_35q.append(elapsed_time)\n", " print(f\"E={result_35q['energy']:.6f}, t={elapsed_time:.1f}s\")\n", "\n", "print(\"\\n35-Qubit XXZ Optimization Complete\")\n", "print(f\"Bond Dimensions: {bond_dim_scales}\")\n", "print(f\"Final Energy (BD={bond_dim_scales[-1]}): {energies_35q[-1]:.8f}\")" ] }, { "cell_type": "markdown", "id": "5caf2644", "metadata": {}, "source": [ "### Energy Scaling with Bond Dimension\n", "\n", "Let's visualize how the ground state energy improves as we increase bond dimensions for this highly correlated system." ] }, { "cell_type": "code", "execution_count": 30, "id": "33827015", "metadata": {}, "outputs": [ { "data": { "image/png": "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AIDv06svPvzwQ1mxYoVVPkevPNFECj2pr//b58yZY753NVFAvyP1u9053tbvy8TERDMO+fzzz11O4DlLONWkSy65xHwfKR372oNMzvGyc+yidIw0cuRIM9bX8Up5V7HZx/QaYNMyCPp95yyfpved9Eo1HRPrcZH9BLCnjhNqo7/193EGwJ966ikzLtExsH0cWB06nnnjjTfMGETHyHocoftHg5z6U8c9GqzVjGU9Xvniiy/k6KOPNuNeZxKNfjb1OEePy/Snk15p5szk1T7VMbeW2tBxsY5T9PNb1rjYvj90nKXjMO1bzfjW1yyPtlWPe3W/6fGhljvQ5+lJBD1+dNK/H2ewVsfIelJej001+NqzZ0+57777zOdGj5n1Slb9TOh71/S+qAptvyaHKB2bazk151WaFQWggVrn7aK6QE3TSZfKK6juLJyus3CWV+C8rJu9KL67dOIt+8z0Zd10tkrn7K1OS5YsKXPb0oXi7ezrDz/88DKf/+STT5b7O9vpDKCHen5ZdBZ3+++rs9CWN/lVly5drN/73XffdZnJ848//rCeoxNh6czxzsf79u1rJhIqPenEoW72Cd3Km4ypIu68h85gX53J5HQCqMr8HuW9h90111xT5uvorLAVTVqwb98+R1RUlMtzxo8f76is33///aD3fu211w7arryJL5y3Tz/91CMTkentoYcecnne888/X+HfqU4uYp+4sLzJPir6bOkkh2W9dqdOnSrcD2Wx7/fybjr5oE6oWFp57Svvs1TepCe18Tku7z1uuOGGCl/73HPPPWT7dUIP+/+V0jedLENn0nbn963OBCAAAM/ZuXOn4/TTTz/kd5BzdnsdY55//vkVbqsTT7nzPVre5FzlTa5kX6+TbZb13a6TQOnY2knbW9YYPyEhwdGyZcsyxyb6nBYtWhz0nPbt25vH//zzT/M+pR/v1atXub/roY4Tyvte9GR/l9evOlYt63Xtv095+8GdicjsE2zpfqvodznvvPNcJntLTEwsd1udIFUnLHOyjw/LujknlnaO2aOjow/apk+fPhX+DqUnri3v9vbbb7s878svvzzoGKGsvy9P7Qt3JyJz5/ORlZVV5sRrevx5xBFHlPk3DHgD5RFQJ862ayabnuGLi4szZzI1G0vPXmp2pp4B7d27t7W9FlHXs/NXXXWVueRFLwvRbDw9+6aXcuilI85MucrQCc/0jOL1119vzpaWvmxfz2Lr2VDN6LLTOo3vvfeeqc+lZ1b1LLpmm7qblffJJ5+YLEk9w6uZBPo76RnTis6a2+nZ45deeslkHLtbv1QzKTVL0XmJjV7+7pzQyknb4CwxofvgoYceMtl39ktwNLuga9eu1rK+v2blOftOJ8TSfeGsYRtInn32WWuiLO0n3ff6WdSz25oZqPtVs10rQ2vF6tltPYvu/CzoOnsWQ1nlJPR9NQPcSTMyqpJ1WDqr1pl9W5qWzDj33HPNmXq9zF33u2bCa/a7nrF3J0O8PPq3nJSUZF5LLy3T/rC755575LvvvjPvoX/zur3+v9C/Q/3MalkSZ5mOqtLL27R8iv4t637Qv23NgrbXDKtO1of2mf6/099RM240G1wnVAyUz7GdZqjo/xfNntfsEv2s6GdYM1w0i9+dCTp0ey3botm2mlmi3xO63zWbRT/nmrWsbQUA+A/9Dtfvc83c1Ktc9DtXxx36Hanfuzqu0as9nFde6feHs3yTZgxqdqB+F2i2oY5JtMyCjlVrmn4H6dU3ehyiV2xpmzXTUt//jDPOsLbT9mr79bteM1v1eZopqZd52zNm7fQ52h961UtZV6Dod6mOrTWjU78btQ9vvfXWCkuyVeU4obb6W69m0hJ0etyl/aiZynpFlT172RP0ikEda+n4VctJaH19He84s4f1qkd7TVcdA2kWrB6fOdumN82e1uNWfUwzcp10fKjZ13olmma6at85J13V4yL7BMw6xtJ+1XJYpY8pK6J9r1d/6nvp503H4PoZ0d9Dj411XKwTCeuVjHa6r3TyMi1rp/2rv4c+T38XHZ8556yorX1RGdpO/R+h825of2pbnX9r9rrY/lhqD4ElSCO33m4EUFdp6QAdGOmlJ/olqzWc7LWRAE/Sf/dl1WK96KKLrMvYNWhunxTASWd71csKnYGyadOmsXMAAACqSSf6ciaQ6Il1ezk2ALV7bKTlJjRA7iyRpWUt9IQI4C3UtAW8SM/i6aRaOtmTBm4HDBhgsrrsk5wBnqJ1ozQLWjMCNAtD65RpnS1nwFYHLc5aw05ao0o/m1qzy0nPlgMAAACAv7rssstMApVm2Orx9+bNm83Vsc6ArWabe+tqNcCJoC3gZXpm3V50Xy9r0kuJAU/TAKxOCGWfhM9JA7Z66VbpScH0cjs7vQxPL2MDAAAAAH+lpfnKKzmopVT0ysLyJrMFagtBW8AHaOaj3oCadOaZZ8o///xjak/t2bPHzBSrZ5W1XuvNN98sPXr0KPe5zhpjZQV8AQAAAMCf6BWGWvtXSxbqFYg610Tbtm3NMZOWjNNyJYC3UdMWAAAAAAAAAHxIsLcbAAAAAAAAAAAoQdAWAAAAAAAAAHwINW19lNaa3LFjh5kESCcIAgAAqEscDodkZGRIs2bNJDiYPINAwjgXAADUZQ43x7kEbX2UBmxbtmzp7WYAAAB41datW6VFixbshQDCOBcAAEAOOc4laOujNMPWuQPj4+O93ZyAyerYvXu3NG7cmIydAME+DTzs08DDPg08tbVP09PTzQls55gIgYNxrufxvzbwsE8DD/s08LBPA0+xj41zCdr6KGdJBA3YErT13B9fbm6u6U8uswwM7NPAwz4NPOzTwFPb+5QyUYGHca7n8b828LBPAw/7NPCwTwNPsY+NcykQBgAAAAAAAAA+hKAtAAAAAAAAAPgQgrYAAAAAAAAA4EMI2gIAAAAAAACAD2EiMgAAIEVFRVJQUFAjxfz1dbWgP5NABgZP7NPQ0FAJCQlhkjEAAACgHARtAQCowxwOh+zatUv2799fY6+vQb6MjAwCdAHCU/tUg7aJiYmSkJDAZwMAAAAohaAtAAB1mDNgq8Gz6OhojwfPNMBXWFhoMis9/drwjuruU+fz09PTZefOnZKTkyNNmzatkbYCAAAA/oqgLQAAdbgkgjNg27Bhwxp5D4K2gcdT+zQuLk4iIiJkz5495jOombcAAAAADiBoW8fpgVdqdoFk5RVKTESo1I8OIxMKAOoIZw1bzbAFvCEmJkZ2795tPosEbQHURQU7dkhhamrZJ8j27ZPcPXvKPD4LrV9fwpo1q6VWAgC8gaBtHZWWUyCf/rpN3vthk2zel22tb90gWob2aCMXHddCEqLCvNpGAEDtoGwBvIXPHoC6HrBdf9YAceTnl7tNRjnrg8LDpf2c2QRuASCAEbStgxat2S03Tf1VcvKLDnpsy75sefLrf+SFeavlzauOk56HNfZKGwEAgXH1BgAAKJtm2FYUsK3wOzc/3zyfbFsACFzB3m4Aaj9gO3zST5JTUCQO/bIv9bhznT6u2+n2AAAc6uqNd5dslF7PL5RuT86X0577zvzU5UlLN0p6zoEyDDXpscceM1mbegsODpaEhAQ56qij5NZbb5VVq1YdtH2vXr3MtpdffvlBj2VkZEhUVJR5fPLkydb6YcOGWe+ht6SkJOnXr58sW7aszDbt3btXRo0aJZ07dzYlKPR25JFHyt133y2bNm2q8PdZuHChy3vZb2eddVaV+ggAAACA/yDTto4dVGuGrQnMlo7WlmIeDxKz/bIH+lAqAQBQxas3VskL89bIG1d2k16dEmu0FzXQ+u2331qB17/++kvefvttmTBhgkycOFGuuuoql+1jY2Plq6++kqysLFNb1enzzz83k2yVpV27dvLBBx+YrOINGzbIo48+KmeeeaZ5L33Mad26dXLGGWeYWq233367nHDCCSbg+ttvv8n48ePlhx9+KDfYazdp0iQ5/PDDXdbVq1ev0n0DAAAAwL8QtK1DtIatHlQfIl7rErjV7T/7bZsMP6VtDbcOAOCvV2+UdeWG2Nbp1RvXTP5ZJg0/sUbL7miG7cknn2wt9+3bV26++WYZNGiQXHvttdKjRw+XwOopp5wiv/76q/zvf/+TwYMHW+unT58u559/vkydOrXMwLDzPbp37y5t27Y1rzNjxgx54IEHrO2uuOIKKSwsNK/fzDZRTJ8+feSOO+4o87XLopm5xx9/vHiDBqbz8/MlIiLCK+8PAAAA1GWUR6gj9MBLJx2rislLN5nnAwBQ1as3dBPdXp9XmyIjI+W1114zwcd33nnH5THNpr344otNkNZp9+7dsmDBAhN0dcexxx5rfm7ZssVat3jxYvn555/l4YcfdgnYOoWHh8s111wjnqBlHs4++2z55JNPpFOnTiZ7WDN8169f77JdXl6ePPjgg9K6dWsThD3iiCNk2rRpLtto+QcNEs+aNUu6du1qttNMZGf2sb6+9qcGq3///XepX7++KUuhtI+1/EN6errLa2ppCs0w1tcEAAAA4D6CtnWETgyzeV+221m2Trq9Pm9/du0eZAMA/OTqDUflr96obVpTtnnz5mWWI9AM27lz50pqaqpZ/vjjj6VFixYmMOmOzZs3m5+acWuvR6u03m11FRUVmYxd+630idQ//vhDnn/+eXnmmWdMDV4tzVC6FMSll14qb731lqmn+/XXX5u6uLrN7NmzXbbbsWOHKedw1113yZw5c+SYY44xAdpLLrnE9ONnn30mQ4YMkSuvvNIEgp30tbRd9gC4evfdd03f9+/fv9p9AQAAANQllEeoI3Qm7+rIzCuU+jHhHmsPAMA3pecWyOpdGRVuo8G5t75fX+kTgWr8ovXSpVm8yb6sSKcmcRIfGSae0rJlS9m1a9dB60877TRJTEw0wUgtoaBBR3uphLI4A6cbN2405Rc0e3X48OEugU/ne5YOwNoDruXVzbWzl3twevLJJ00Wr9P+/ftNYLVx4wOlJzIzM017tm3bZgLQ3333nSkBocFpZyBZS0fs3LnT1OQdMGCA9VoavNZA7kknneQS8NWg9KeffmpKUOjvoFm19t9Zs241a1mDtDfccIPVT++//77p15CQkEP+rgAAAAACIGi7Zs0auffee2Xp0qXmksejjz7aHMT07t27zNmb9TK/7du3m4OR8ibw0MyYsp6vfvrpJzOJiProo49k9OjRpg16gKQzU2tbSr/WyJEj5e+//zYHbXpwpZcdektMRPV2dWw1nw8A8A8asL1k/KEnyKoKDVcmp+fJpW8tP+S2H9/YXU5o08Bz7+1wlBko1nWXXXaZCdZqQFPHFW+88Ua5r6Pf62FhJcFkDV5qOQRnwLT0a9vpWESfby/F0KhRowrbPWXKFFPKwE4zV+00G9b+/poRq5xB23nz5kmDBg1M2QQNpDpp4PbGG280wWRnULVhw4YuAVulpR60xq8GbJ3OPffcg9p63XXXSc+ePc3v2KVLF1MSISUlxWOlIAAAAIC6xG/LI2j9Nj3w0FmidZIPPRDSdWVl0WiGhwZ1D0UnKNGsE/ttxIgRJrvEOQmIZp/oJYF6kLNy5UpzYPfyyy/LuHHjrNfRzBud9EQDwHrJ4p133mleRzNcvKV+dJi0bhAtFec1HUy31+fVi/ZcthMAALVNA5hNmjQp8zHNrNWTrfp9rsHGo446qtzXad++vQliLl++3JQb0ACuZqJmZ2db2zjr2Op72ulkZfpczW51lwZsdQxivzVt2tRlm9Ino7VmrsrNzTU/9+zZI/v27TNttd90bKJjKR3vOCUlJR3UBn28dFA6Li7O1Le1O/30003d24kTJ5plzbrVddpnAAAAAOpA0FYPPtauXSujRo0ywdiOHTuaOm56wKSBVLs333zTXDZ4zz33HPJ19SBHD+icN802+fLLL83lf85sGb3MT7NNNGirM1BrcFZni3722WetSx7Hjx9vAr0vvviiOdjSTFy9ZFAPBr1F2z+0R5sqPXfYKW0OeRkrAAC+SjM/9WobPTlbluOOO858p7/yyiuHLI2ggUoNnGo26vXXX28Ckzrpl07EZZ8cTGmGq50GhPW5bdpU7fu4qjTLVoOuGjAu66blIZzK+r7XILFmBdtlZGRYQWE7DQRPnTrVBKxnzpxpTpwj8F1wwQVWiQwAAAB4hl9e867BVM3k0EsGu3XrZmY31mwXPejQAy+nf/75R5544gn58ccfZcOGDZV+H63/pqUV7DXbdNINvRTSLioqyhyc6GQkeiCmE52ceeaZLtvoBByacetNFx3XQl6Yt1pyCtybOCY4SCQyLEQu7NaiNpoHAPABWktWSxNURE9S3jb9d0lJz6tUXVsNBybGR8hrg491q6atJ2hg8bbbbjNjBQ0olkdPBOv3vl5NUxkXXnihnHLKKebE7B133GGCulonV0sqPfXUU3LeeecdlBlb23RM8txzz5mT0+5ceVSa/i46eZmejHaWSNCT2mUZOnSoPPTQQ6YfdbxEEK9u0M++lsF47733vN0UAACAgOGXQVs90FuwYIHJeNXL8/QAQgO2OsuxnuV3Blc1W0ZnU27VqlWVgrZ6eZ8GW7UenJMu64zKWp9Wyx/oDM16EOO8fFCDtlqiofTlhbqcnp4uOTk5JshbmrbXPguzbquKi4vNzRPiIkLkjSuOlWve+8UcOVcUuHUeS7955bHmeZ5qgzfp76CBhkD4XXAA+zTwsE+909/Om4qLCJXjWx/4Lq3IDae3kye/XlXp97zh9PZu16q1T9rlzrb6++iJU+dkXH/99ZdMmDDBjAEmTZpkJgwr/ZrOZT1B6zxJa+8P+/3y2qXlDrQerr6HXomjPvjgA+nTp485uXz77bebwKeOVzZt2mRONGsQWSciK+93dK7X36GgoMDlMQ0Max3b8tpUuu0atD3nnHPkrLPOMjX4NXCblZVlMpB1HPPOO+9U+PtpQPvEE0+Uiy66yNSt1ZPUL7zwgmmHjsns22uNXg1Uf/zxxyYTWbepaD8621jWeIfva/+h2eVaYgRALSuo3mTTAADf5lNBWz0o0DIDFVm1apXJsr3llltMoFYn/9AgqB5w6AGJXuanGS1askBLE1x11VVVaotmzmoNWp10zE4PVvQySK2fqwdR8fHxJrvgsccec5mgo7LGjBkjjz/++EHr9XLEsi4/rKrD64m8dF4HeWDmBsktOHBwVPpQSuO1kaHB8szZ7aVTgsNMIhII9OAvLS3NHBxWZ1/Bd7BPAw/7tHbp95j2udY1tU9Q5Y7zjm4iL8xbU+mrN847OqnS7+UO/T30xKizBEJsbKwJ0uoJVv0uP/zww13e1xksLK8tzvXO/nHeL+s5GrDSbFs9iauBX53US0/i6pU+uk6zD/XKHw1wavkkDfBquaWYmJhy318nB1NlTeKlNWJ1PFTe7+G8r6/hvK8TrWm2rdbi37JliyQkJJhyDUOGDDnk76c1fqdNm2YmVdXMYn2eBsP1RLaePC+9vY7HNGirWbeH2tf6uL6vXtlkn+DNWYLBH3z//fcmSUDnWNAT+J9//rlJLKiIlu/SmwbxlfbpI488IgMGDLC20bFl6bGhjoH//fffWm/766+/brbTxASdR0LLgWggH4B37R43Tlq+/ZYEcWwDAAEpyFGZNJYapgFKHbRXRGvOaaBWD3hSU1NN0NRJa9tq7TQN/moGimanOC+/dGZx6IGUXrZXVoDU7sknnzQDUq2BV/ogwnkgpANXrRH3zTffyMCBA01wU5d10g3NrBk7dqy1vWbfaHkEDRqWpaxM25YtWx70O3pKek6BfPb7dpn8w2bZsq9k8pSI0GC5/6xOcmG35hIfGViTj+n+18+Y7iOCtoGBfRp42Ke1S08KatBIA4mlJ5Vyx6I1u+WayT+bk3+HunpDv40nDTtBTj/MdUIr+Cc9sa0Bxu+++0569uzp8pgGa3///Xf5888/3foM6gSuGuQu/RnUsZBeQaVjp5oYC3mKTlK7dOlSU6JLg9ruBG2/+uorMybVsauOUTWwr0FR7TcN4DqDtp988om5usxJs7M1m7ks2gYNpJYet2q5MC0tVtYkc+60XSfQ0+C+ztmgtZx1fKtB+dWrV7vUQ9ZMW52YV9t8KLpv9cSBr+9bf/v+1GMR3SeMc/1HwY4dsv6sAeLIz6/ya9S/8kpJevgh5iDxA/ydBh72aeAprqXvU3fHQj6VaavBtNKzE5fFOUNz6Q7UZeeldJ9++qnJuHHSDFzNVtGA76FmMdbBswZZdYBaVsBW6UC7efPmVvZK9+7drbbr/VmzZrlsP3/+fLO+PHqZpN5K09+pJj4o9WIi5JpT28nwU9rKfZ+skI9/3X6gHaHBZl2gTjymv1dN9Sm8g30aeNintUf/F2p/O2+V1atTokwafqLcNPVXyck/kBlqj906XzEqLETevLKb9OxUEuCBf7n55ptNuQcN/umkr1qv99hjjzUnqp2fHT1Z/scff8iHH35oMnrd+Uw5P3tlfTf7y3e1Bq/tGbLu0Gxku6efftpk3i5fvtwK2jqDtDo57qHo+FevQtMgsPa/jlOVBlbPOOMMGTlypNx3331VavtLL71krjRzlg/R4K1OMqeT8GmiBICqC2vWTNrPmS3527fLluHX6OUHZn3MKadIo7vulH379pnJJO3/T3P/Wim7nnrK2jb1gw8kpEF9aXzLLewKAAgwPhW0dZcGPzXzQjM59FIyLY+gl+lppsagQYPMNqUDs3v27DE/tWRCvXr1zP2ffvrJBGY1U9YZgFXffvutea2yJizR19EMAr0UUrNDNLir2QaLFi2yttF6dpppoINjDRTr6+mlmTrA9TU6ADiyeT0raJueWyi7M/MkMa7yGVcAgLqn52GNZdkDfeSz37bJ5KWbZLPt6o1WDaJlaI82cn7XJKkfe3A9d/gPvfJHJ3TTcZBmBegVT/aJyZyBSL2iRcdnZZV1QNn06i0dS2qd4dIn+NeuXSvNmjUzWcj6mJbT0rkaStP9oAkDGkTXsa2W39CxrAZsNXO2rICtO/Lz803pBC07Zn8vrZPsrB9dHZ6cu6Guoya8/wpp0kTyf/zRCsKqeoMvl/DDD5eQ3bslvNRVghFHHCHB9evJjrtG6o436/a8Nk6C69eX+pdf7pXfAe7h7zTwsE8DT3EtzYXk7uv7ZdBWLwvTSce0zIEORrUmn2Yl6EzGWmfLXZqxqxkIpSf40AnItCae1r8ri17Cds8995gdqQNovRzMXtdLLzPVAK1OWPbKK6+Yicy05q7WfvNFHRJjXZbXJWcStAUAuC0hKsxcpTGsRxvZn10gmXmFEhsRKvWiD1ytUhM1bFG79KoiJ2fdW80CtXPWZ4V7NDNZx5GaBKA1mLU0QefOna3HtRTB5MmTTR1brTerpb1OO+00k+mstYRL0+CuJgroNldccYUJqmpwVTN4q0qD9BpULmuCXXttXX2fFStWmMCzjns1CF3WFWZaG1dvzprNnp67oS6jJrx/y/j8C+t+UGysZB12mGSmpJQ/H0fXrhI98i7JfuHAhNgq5cmnJCsoSMJ7967NpqMS+DsNPOzTwFNcS3MhuTt3g18GbdXxxx9v6qm5SzNjS5fvLWud0sk2KgoYu5NZoK+tdcn8QcdSQdu1KZnSo0PZ9dIAAKjo6o36MeHm5uRDpfMBn6LBWC0noQcGehWXZijrlVvOwK29bMHRRx9tgrg6uZ5evaVzOJRFs3A1y1brDOs8EJqIUBslr+x1dyuiJRz05qzjpqXFqGnruYNM3dfM3eB/ClNTJfXXX63l+H79JKlFi0Pv02uukb2FRbLHOY+KwyFZT4+W+i1bSsx/k3LCt/B3GnjYp4GnuJa+T92dT8Rvg7bwnMZxERIfGWpKI6h1KZl0LwAAQA0KDw+XDh06mPs6EZjOv6BXaL311ltlbq/lvQ477DBZt25dua+ZnJws119/vSlVoa+nV33pxLpVpckKWh9XX7f0+7hTa/dQmGfAs6gJ75+y5s/XOinWcvyggVag4FD7tNEN10tx6j7Z996UAysKC2X77XdI68mTJOroo2vnF0Cl8HcaeNingSeoFuZCcve1/WOGB9T4B7JjUslldmtT3EvTBgAEBrJhwWfPNzI78vLyyn08MzNT1q9fL02bNi23lIFOFqfzN3z22WdmzoYZM2aYkl7VCSxrQFlfy95OXa5ogl0A7kufWTKBdUjDhhJz0kmVOo5LvP9+iT+3ZHJDR3a2bL3+BsnbsIHdAAB+jqAtjA6NS0okkGkLAHVDWFiYVeMd8AatgapBB+dn0R9pMFXLHOhN6QRgen/Lli1mWSen1WCqnU7s9f3335s6wFrbVpd1joQrr7zS2kaDrVouQbf54Ycf5IILLjBZr4MHDz6oDRpI1XIKWj5BA7Vab1jLLMyfP99Mmvvyyy9Xqe1q5MiRZsJfndNh1apVctNNN5n9Nnz4cA/1IFB3FSQnS/Yvv1jL8f37S1CpeuGHEhQcLM2eflpie/a01hXt3y9brh0hBTt3erS9AIDaRXkEGB2TSoK2ezLzZV9WvjSw1SQEAAQeDQDpJdcpKSlmOTo62uP1L+2TVtVGbU3UvOruU+fzta6p3vQzqJ9Ff/XLL79Ib9vEPxrkVFqjVicS0wxYzZC107+5IUOGmAnGtLar1qzVuRr69u1rbbNt2zYToN27d6+pq3bqqafK8uXLzf2yLrEbPXq0mYRMs2OddIJerTdb1nPcabu67LLLzIRhjzzyiOzatUuOOeYYMyFw6cnJAFRe+uzZphatvTRCVQSFhUnzsS/LlmuulZz/5lUp3LlTtoy4TlpPfV9C69dn9wCAHwpycE2kT3JO0KCTU9TGBA0LV6fIsEk/W8sf3dBdTmzbQAKJZqHoQVJiYmKN1iZB7WGfBh72ae3TYYAGYvbv319jr6/7Vf/vErQNDJ7apxqo1e9kHe+U9Tq1PRZC7WHfeh7fn/5p46WXSe6ff5r7oU2bSodvFpjM2aru06K0NNl81dWSt3attS7y6KOl9aR3JTgmpoZ+C7iLv9PAwz4NPMW1FDdydyxEpi0Me01bZ4mEQAvaAgAOpsEyrZGpA5OCgoIaGfhopmDDhg05YRYgPLFPNUtXg7YE8gHUVflbtlgBWxU/YIAVsK2qkIQEafnOO7L5iiukYPt2s07fY9vtd0jLN9+QIFsmPgDA9xG0hdEsIVJiwkMkK//AzKVMRgYAdYsG0GriEnUN8Gm90sjISIK2AYJ9CgDVlz5rtstyVUsjlBaWlCitJr4jm668Sor27jXrspYulR2jHpBmLzxf7cAwAKD28B8bhma6tE9kMjIAAAAAqGnpM2da98Nbt5bIzp099trhbdpIy7ffcimJkD5rliQ/9bQpcQMA8A9k2sLSITFW/tyWZu6vTc6kZwAAAADAw3LXrHGpOxs/aJDHy8VEdekiLV5/XbZed504/it/lDptmoQ0aCCNb73Fo+8FBLqCHTukMDW17MlV9+2T3D17yvwb1kkAw5o1q6VWIhARtIWlY2JJXdtd6bmSkVsgcZFh9BAAAAAAeIhmvdrFDxxQI30bc/JJ0uylF2X7HXdqbRuzbs+4cRLSoL40uOKKGnlPIBADtuvPGiCO/Pxyt8koZ73WkW4/ZzaBW1QZ5RFg6Wgrj+CcjAwAAAAA4BmamWevZxvRqZNEdOhQY90b37evNHn8MZd1yU8+JemzXWvqAiibZthWFLCtiD6vrAxdwF0EbeFSHsFuLUFbAAAAAPCY3JV/S8GWLS6lEWpa/UsukcYjR5ascDhk+333S+aSpTX+3gCAqiNoC0vLBtESHlrykSDTFgAAAABqZgKymiyNUFrD60ZIg6FDS1YUFMi222+XnBUrauX9AQCVR9AWlpDgIGnfuCTblqAtAAAAAHiGo7jYpSxBVNeuEt6iRa10r06SlHj/fZJw3rkl7cnOlq033Ch569fXShsAAJVD0Bbl1rVdm1JeOW0AAAAAQGXk/PqrFCYnW8vxgwbWagcGBQdL06eektiePa11Rfv3y5ZrR0jBzp212hYAwKERtEW5dW23peZIdn4hPQQAAAAA1ZQ2a1bJQlCQxJ11Vq33aVBYmDQf+7JEHXecta5w1y4TuGXCJADwLQRtUW6mrcMhsmF3Fj0EAAAAANXgKCiQjDlzreXoE0+UsMREr/RpcFSUtHzjdYk47DBrXf6GDaZUQnEWx38A4CsI2sJFx6SSoK2iRAIAAAAAVE/W8h+lKDXVWo4fWLulEUoLSUiQlhMmSFjz5ta63D//lG233S6O/Hyvtg0AcABBW7ho3TBGQoODrGUmIwMAAACA6km3l0YIDZW4fn293qVhSYnS6t2JEtKwobUu64cfZMeoUeIoKvJq2wAABG1RSlhIsLRtFGMtr03OpI8AAAAAoIqK8/IkY/58aznmlB4SWr++T/RneOvW0mrC2xIcW3LFZfqs2ZL89NPi0Hp5QB1XsGWrt5uAOoxMW1Q4GRmZtgAAAABQdVmLF0txZkkyTMKgQT7VnZGdO0uL11+XoPBwa13qtOmyZ9zrXm0X4G2Zi5fIjgcfrNZrFGdne6w9qHsI2qLCycg27c2SvEIujQEAAACAqkibOdO6HxQRIbFn9PG5jow56URp/tKLIsElIYI9r78u+6Z+4NV2Ad6yb9o02XrjjeLIyanW6+x44EHJ37bNY+1C3ULQFgfpkBRn3S92iGzaw5khAAAAAKis4qwsyfxuobUc26uXhMSWlKPzJXFnnilNn3jcZZ2WSbAHnYFA5ygslF1PPS3JTzwp4oHazoXbtsmmSy6V7N9+80j7ULcQtEWFmbZqbUoGvQQAAAAAlZTx7XfiyM21luMHDvTpPqx38cXS+O6RJSscDtkx6gHJXLLUm80CakVRZqZsvflmSZ061fUBWwZ6lV43NVW2DB0maf/7X/UaiDon1NsNgO/RiciCgw5k2SomIwMAAACAykufNcu6HxwTI7E9T/f5bmw4YoQU7UuVfZMmHVhRUCDbbrtNWk+eJFFdu3q7eUCNKNi+XbbeeJPkrV1bsjIoSBLvu0/i+vWVov37D3qOTta3b98+adCggQQFBbk8ptunvPCi5K1adWDbggLZcd/9krdhgzS+/XYJqmYgGHUDQVscJDIsRFo1iJZNew+URWAyMgAAAAConKK0NMlcssRajjuzjwRHRvp8N2rwKfHee6Ro3z5J+/JLs07rem69/gZp/cFUiejQwdtNBDwq548/ZOstt0rR3r3WuqDoaGn+wvMSd8YZB1Y0b37Q84qLiyU0JUUiExMluIwgbPTxx8vOBx+SdFuJkb3j35L8jZuk2TNjJDgqij2JChHaR5k6JJbUtSVoCwAAAACVkzF/vslS9ZfSCHaaBdj0qSdNDV57EHrLiOukYMcOr7YN8HQ2/OYhQ10CtqFNmkibD6aWBGyrKDgiQpq98Lw0uu1Wl/UZc+fK5quHSEFKSrVeH4GPoC3K1DGppK7thj2ZUlhUTE8BAAAAQBVKI4QkJEhMjx5+1XdBYWHSfOzLEnXccda6wl27ZMu1I6QwNdWrbQOqS0sb7H7jDdk+8m5x5Odb6yOPPFLafDRDIo84wmOZ641vuUWavfiCBIWHW+tzV66UTZdeJrn/lU8AykLQFmXq0LgkaFtQ5JDN+w6USgAAAAAAVKxw927JWv6jtRzXv78JgvobLefQ8s03JOKww6x1+Rs3mlIJRZlZXm0bUFXF+fmy4/77Zc+rr7msj+vbV1q/P0XCEhM93rkJgwZJ6ynvSUjDhi4nQTZdeZVkfPONx98PgYGgLQ6ZaauYjAwAAAAA3JM+d54WvLSW4wcN8tuuC4mPl5bvTJCwFi2sdbl//SXbb7/NBL8Af1K4b59sGTZc0v/3lcv6htdfL81fGVujdWajjjlG2n40w+UkiCM7W7bdepvsnfiuyf4F7AjaokztbZm2al1KBj0FAAAAAG6wTzwU2rixRB9fUmLAH2nmYauJ70hIo0bWuqwflsmO++4XR1GRV9sGuCtv3TpTkiDnt99KVoaFSdPRoyVx5F2mlnNNC2veXFpPmyaxPXuWrHQ4JOX552Xn//2fS6kGgKAtyhQTESrN65WcYWIyMgAAAAA4tILt2yXn99+t5fiBAyQoJMTvuy68dWtpNeFtCY4tSfDJmDNHdj31FBmC8HmZS5fKpsFXSMG2bS61pvVkRL0LL6jVtoTExkiLN16XBkOHuqxP++RTakbDBUFbuFUiYW1KJj0FAAAAAIeQPnu2y3L8wIEB02c6OZMGm+wTKu2f/qHseW2cV9sFVCT1ww9NHebijJIriMPbtJE2Mz6UmBNP9Ern6YmcpAdGSZPHHxcJDbXWZ//8s2y6/HLJ27DRK+2CbyFoC7cmI9NM26Ji6qsAAAAAQEXSZs2y7msd2Mijjw6oDtMgV/OXXxKxXUq+5403ZN/7U73aLqA0Ld2RPGaM7HrscRFbGY/ok06SNh9ON4Fbb6t/2aUHMtjj4611BZu3mMBt1rJlXm0bvI+gLdzKtM0rLJbtqTn0FgAAAACUQ7Pj8v5Z5ZJlGxQUFHD9FdenjzR98gmXdclPPy1pX5fU8gW8qSgzS7bdcqvse2+Ky/p6l1wsrd6ZICH16omviOneXdp8+KGEtW5lrStOT5ct110vqTM+8mrb4F0EbVGuDolxLsvrdjMZGQAAAACUJ92WZaviBwVOaYTS6l10kSTec7fLuh2jRknm4iVeaxOgCnbskM1XXimZCxeWdEhQkCTee680eeIJCQoL87mOimjX1gRuo084oWRlYaHsevRRSR7zDBP+1VEEbVGuDoklmbZqbTJ1bQEAAACgLA6HwyVoG96hvUQcdlhAd1bDESOkwTXXlKwoLJRtt98uOX/84c1moQ7L+fNP2XjpZZK3erW1LigqSlq89qo0vPYan858D61f30yMlnDRhS7r9733nska1uxh1C0EbVGuhKgwSYyLsJaZjAwAAAAAypb377+Sv2FDwJdGKC3x3nsk4YILrGVHTo5sveFGyVu3zqvtQt2TPmeubL56iBTt2WOtC01KkjYfTJW4M88Uf6CT/DV96inzd6XZwU6aNbz5iitMFjHqDoK2cLuuLUFbAAAAAHCvNELCwMAtjWCngWmtbxvbu7e1rigtTbZcO4IAE2oty33P+Ldk+513iiMvz1of2bmztPlohvnpb39TDa+9VlqMe81kCTvlrVljsohzVqzwavtQewjaokIdbXVt16dkmn+GAAAAAIBSpRFmlgRtI7t08YmZ6WtLUGioNH/5JYk6/jhrXWFysgncFu7b59W2IbAV5+fLzlEPyO6xY13Wx/U9U1pPfV/CkpLEnyf80yxhzRZ20ixizSZOm8mkf3UBQVu4Xdc2M69QdqXn0mMAAAAAYKM1XO2XLWtphLomODJSWr7xhkQcfri1Ln/jRtl6/Q3U4kSNKExNlS3XXCNpX37psr7hdSOk+SuvSHB0tN/3/IFs4Y8k8sgjrXWO/HzZcfc9snvc6yTWBTiCtqgQk5EBAAAAQMXSZ812WY4fOKBOdllIfLy0mvC2hLVsaa3LXblStt12q8mIBDwlb8MG2XTZ5ZLzy68lK0NDpenTT0ni3XdLUHDghLvCkhKl9ftTJK5/f5f1e8aNkx333CvFtpIQCCyB8ylGjehoy7RV1LUFAAAAgBKOoiJJn1MStI067jgJa9q0znZRaOPG0mriOxLSqJG1LnvZctlx732mr4Dqylq2TDZdPlgKtmyx1gUnJEiriROl3kUXBWQHB0dFmRIkDW+8wWV9+syZsmXIUCm0Tb6GwEHQFhVqGBshDWLCreV1KZn0GAAAAAD8J/vnn6Vod0nAJH5Q3SuNUFp4q1Ym4zY4tiQJKGPuXNn1xJNczo1qSZ3xkWwZcZ0Up6eXfN5at5Y2H06XmJNODOje1ezhxDvvlGbPPiNBYWHWep2YbOOll0ru6jVebR88j6AtKlUiYV1KBj0GAAAAALZMN0tIiMSXuoS5roo84ghp+eYbEhQRYa3bP2OG7HntNa+2C/5Js7STn3lWdj36qIgtYzv6hBOkzYwPJaJtW6krEs47T1q9N1lC6te31hXu2CmbBw+WjIULvdo2eBZBW1QqaLsmOZMzowAAAADw34RA6fPmW30Rc/LJEtqwIX1jC6jpJd0azHba88absm/K+/QR3FaclSXbbrtd9k2e7LI+4cILD5TiqFevzvVmdLdu0uajGRLeob21rjg7W7bdfIvsmzKFuE2AIGiLStW1TcspkD2ZFJAHAAAAgMylS6U4Lc3qiPiBlEYoLe6MM6TpE0+4rEsePVrSvvqaDxAOqWDXLtl01dWS+e23JSuDgiTxnrvNpGNB4SXlHOua8JYtpc306RJz6qklK4uLJXn0GNn1+OPiKCjwZvPgAQRtcUgdE+NcltdSIgEAAAAAJH1WyQRkWmMyru+Z9EoZ6l10oSTee4/Luh0PPCCZixfTXyhXzl8rZdMll0reqlUlf2eRkdL81Vek4YgREhQUVOd7LyQuTlqOf1PqX3mlS1/s/3CGbLn+eimynVSC/yFoi0PqmFSSaavWMxkZAAAAgDquOCdHMr/5xlqOOf10CYmP92qbfFnDa6+VBtdeU7KisFC23X6HZP/+uzebBR+VPm+ebL76aincvdtaF9q4sbSeOlXi+/b1att8TVBoqDT5v4cl6f8edilFkr1suWy6fLDkb97s1fah6gja4pAS4yIkLjLUWl5L0BYAAABAHZe5aJGpIekUP3CAV9vjDxLvucfUIXVy5OTI1htvkry1a73aLvgOh8Mhe96eINtvv0McubnW+ogjjpA2H38kUUd28Wr7fFmDK6+UluPHS3BsSeJd/saNsunSyyTrp5+82jZUDUFbHJJecmCfjGxtcia9BgAAAKBOS585y7ofFBUlcb17e7U9/nJs2fSJxyX2jDOsdVoTeMuI66Rg+3avtg2+MbHfzgcfkt0vveSyXj8vbaa+L2FNmnitbf4i9rRTpc2H0yWsRQtrnZZI2HLtCNn/6WdebRsqj6AtKj0ZGZm2AAAAAOqyoowMk2nrpAHb4Ohor7bJny7lbv7SixJ9/PHWusLkZBNUKty3z6ttg/cUpqbKlmuulbTPP3dZ3+Caa6TFa69KcEyM19rmbyI6dJA2H82QqG7dSlYWFMjOhx6SlBdfFEdxsTebh0ogaItKT0a2JzNP9mfn03MAAAAA6qSMb74xWYFO8WcP8mp7/E1wZKS0ePMNiTj8cGtd/qZNsvX6G6QoM8urbUPty9NL+C+/XLJ/+aVkpdZpffIJSbrvXgmy1WmFe0IbNJBWkydJwnnnuqzfO+Ed2Xb77S6lXeC7CNrCLR1KTUa2jrq2AAAAAOooe2mE4Lg4iTn1VK+2x19nvW814W0Ja9XKWpe7cqVsu/VWKbYFxBHYspb/aCbLKti8xVoXHB8vrd6ZIPUvucSrbfN3weHh0vSZZ6TxnXe6rM9c8I1suuoqKdi1y2ttg3sI2sItHRq7Bm0pkQAAAACgrl7GnfXDD9ZyXN++JjiCygtt3FhaTXxHQho3stZlL18uO+65VxxFRXRpgNv/ySeyZcQIU9fYSYP4bT78UGJOPtmrbQsUWke60Y03SPOxYyUoMtJan/fPKtl0yaWS89dKr7YPFSNoC7c0rxclUWEllyQwGRkAAACAuihj7jwRW0AxftBAr7bH34W3bCmtJkwwGctOGfPmya4nnhSHw+HVtqFmaE3V5Oefl50P/59IYaG1Xusct5nxoUS0a0vXe1j8Wf2l9fvvmxMlToW7d8vmq6+WdP2fBp9E0BbufVCCg6SDbTKydbsz6TkAAAAAdU76zJnW/ZCGDSXmpJO82p5AEHn44dLyzTckKCLCWrd/xgzZ/eqrXm0XPE9rqWpN1X0T33VZn3D++dLy3YkSWr8+3V5Doo46Utp8/JFEHHGEtc6Rmyvb77hD9rz1NidJfBBBW7itoz1om5xBzwEAAACoUwqSk10mS4rv31+CQkO92qZAoVmWzV9+WcQ26dTeN8fLvinve7Vd8Ozfj9ZS1Zqqdo1HjpSmY0ZTZqQWhDVpIm2mvi+xffq4rN/98suyc9QD1JP2MQRt4bb2tqDtjrRcycgtoPcAAAAA1Bnps2eL2C7ZpzSCZ8Wd0VuaPvWUy7rk0aMl7auvPPxOqG05f/9taqhqLVUnrbHa/JVXpNH115naq6gdwTEx0uK1V6XhiGtd1qd9+aVsGX6NqdsN30DQFlXKtFXrd2fRewAAAADqjPRZs637oU2bStSxx3q1PYGo3gXnS+K997qs2/HAg5L5/fdeaxOqJ2PBAtl81dVSmJJirdPJ51q/P0Xi+/eje70gKDhYEu+5R5o+/ZSI7WqBnF9/PRBcX7eO/eIDCNrCbR2TSgrDq7WUSAAAAABQR+Rv2SK5f/5pLccPGGACH/C8htde45oFWFgo226/Q7J//53u9iM6kdzeiRNl2223iyMnx1ofcfjh0vajjyTqqKO82j6I1LvoImk1caKEJCRY3VGwbZtsunywZC5eQhd5Gd8wcFvL+lESHlrykWEyMgAAAFxwwQVSv359ufjii+kM1JksWxU/cKDX2lIXNL77bkm46EKXCZO23niT5K1d69V2wT2O/HzZ+fDDkvL8Cy4lRWJ79ZI2H0yVsKZN6UofEXPSidLmoxkS3ratta44M1O23nij7Js2zattq+sI2sJtoSHB0q5RjLW8LjmT3gMAAKjj7rjjDpkyZYq3mwHUuPSZM6374a1bS2SXzvR6DdIap00ff9xlwqTitDTZcu0Iyd+2nb73YUX798uW666XtE8/c1nfYOhQafH6OFNTFb5F/6e1+XC6RHc/uWRlUZEkP/Gk7HrqaXEUFnqzeXUWQVtUSgdbXdu1KQRtAQAA6rpevXpJXJxrGS0g0OSuWeOS4akTkDFxUs0LCg2V5i++INHHH2+t07qoW6+9Vgr37q2FFqCy8jdtMpfWZ//4Y8nKkBBp8thjkvTAKAkKCaFTfZSWSGj19ttS79JLXdanTp1qstyLMjK81ra6iqAtKqVjYsmAfGtqtuQWFNGDAAAAFfj+++/lnHPOkWbNmpkgzxdffHHI/nrzzTfl6KOPlvj4eHPr3r27zNZZ673Qttdff13atGkjkZGRctJJJ8lPP/3k8XYAvi691N8fpRFqT3BkpLR48w2JOOIIa13+5s2y9fobpCiTybF9SdaPP8nGyy43gVun4Lg4aTXhbal/+WVebRvcExQWJk0ePxBgl6Aga33WkiWyafBgyd+2ja6sRQRtUSkdk0oybbUszfrdZNsCAABUJCsrS7p27WqCn+5q0aKFPPPMM/Lrr7/KL7/8ImeccYacd9558vfff5e5/dKlS6WgoOCg9f/8848kJydXuW0zZsyQkSNHyqOPPiq//fab2bZ///6SYpsBHKgLkymlz5xlLUd06iQRHTp4tU11Tch/gb+wVq2sdbl//y3bbr1VivPyvNo2HLD/089ky4gRpoSFU1jLluaS+5gePegmP6IncU0pizdel+DoaGt9/rr1sumSSyX7t9+82r66JFT81Jo1a+Tee+81A9T8/HyTifDkk09K7969D9p27969ZoC5fft2SU1NlXr16pX5mgsXLizz+UozCk444QRz/6OPPpLRo0ebNjRu3FhuvfVW05ZDvc7OnTulSZMm4s862sojqHUpmdKlWcksgwAAAHA1YMAAc6sMzX61e/rpp0327fLly6VLly4ujxUXF8stt9wiHTt2lA8//FBC/rv0dPXq1SbYq0HX++67r0pte+mll+S6666T4cOHm+Xx48fLzJkz5d1335VRo0ZVa1dru/WG6tN+1MAi/VkzcleulIItW6zluIEDaryv2acHC27QQFpMeFu2XHmVFO3ZY9ZlL18u2++5R5q99JLPX3YfqPvUUVwse8aOlX3vTHRZH9WtmzR77VUJrV8/4H7nQN+nTjE9e0rLD6bK9ptvkcKdO826otRU2TJ0mCQ9+aQknOs6VgkExbW0T919fb8N2p599tlmYPrtt99KVFSUjB071qxbv379QYHRa6+91gR1NWhbkR49epjAqt3//d//yTfffCPH/1dDRy9Lu/LKK+W1116Tfv36yapVq8xAVtugwVs7HSjr5WxOiYmJ4u9aN4yRkOAgKSo+MPvjWiYjAwAAqFFFRUXy8ccfm6xYLZNQWnBwsMyaNUtOP/10GTJkiLz//vuyceNGE7A9//zzyw3YHoomRmim7wMPPODyXmeeeaYsW7as0q+n2bx6099H7d69W3Jzc6vUNhx88JeWlmYONHUfwbOyP/nEZTn/xBNrPNucfVqOiAiJfvYZybz9DnFkHSiNkDl/gWx64AGJvvtun64zHIj71JGTI1ljxkjB94td1of36ysR99wj+/QKkAC+MiMQ9+lB6teXmNfHSeZDD0vRqlVm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AABQe3SisfLo3AfO8lkAfJd9AjIJDpb4syiNAAAIXNXKtNUSAocaHEdGRkqLFi2kd+/ecvHFF0toaLXnPoMfT0b2z850q6YtAABATXnllVfMzTkmvfPOO+Whhx46aLu0tDTZv3+/mUAXgO9y5OdL+rx51nLMySdLaMOGXm0TAAA1qVoR1OLiYtm+fbusX7/eTODlLH2gl6ClpqZKhw4dJCEhQX788UdT//aZZ56RBQsWmNqxqNuTkW1LzZHs/EKJDieIDwAAPC8xMdGaa0HHpjrprN7sNJirV44dd9xxcvPNN7MbAB+W+cMPUpyWZi3HDxro1fYAAFDTqhUxe+qpp+T888+X9957z2Qn6ORcqqioSKZOnSr33HOPTJkyRU466SSzzXXXXScPPPCACeCi7ulgC9qq9SlZclSLBK+1BwAABK7Bgwebm9Irvh5++GEzgS6AACiNEBYmcX37erM5AAD4dtBWg7LDhw+Xq6++2mW9Bm+HDh0qK1eulLvuukuWLVsmw4YNMz+/+uqr6rYZfqpDYpzLsk5GRtAWAADUtO+++45OBvxYcU6OZH7zjbUce9ppEhIf79U2AQDg0xOR/fnnn1ZJhLLoYytWrLCW9dKzffv2Vect4cdaN4yWsJCSSUCYjAwAAADAoWQuWiTF2dnWMqURAAB1QbWCtk2bNpVPPvnE1LYtTdd99NFH0qRJE2vd3r17pUGDBtV5S/ixsJBgadsoxlpmMjIAAAAAlSmNEBQVJXG9e9NpAICAV63yCCNHjpTbbrtNTjnlFFOvtn379mb9unXrTN3an3/+WV599VVr+48//lhOPPHE6rcafqtjYpysSc409wnaAgAAAKhIUWamybR10oBtcHQ0nQYACHjVCtrecsstEhwcLI888oiMGDHCzMCrHA6HNGzY0ARsdRuVl5cnL7/8coXlFBD42tsmI9u8N0tyC4okMuzABHYAAAAAYJexYIE48vOtZUojAADqimoFbdVNN91kAra//PKLbN682axr3bq1HH/88RIWFmZtFxERIT179qzu28HPdbQFbYsdIhv3ZMkRTZlEAAAA1Bwt26WJBhXReRco4wX4nvRZJaURguPiJOa007zaHgAAfL6mbXZ2tsmmff75501wtnv37nL55Zebm963B2wBp45JJUFbRYkEAABQ066++mpzJVh5duzYIaeffjo7AvAx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1zwjI0Nuu+02OXbsWIPbAQAAYBeMcRnjAghNzLQFgDpoOHn48GETvubl5ZnAsKioyGcGqz73q1/9StatW2dm4p577rmyevVq+cMf/iDff/+9PPLII7XC2Ndee01uvfVWE4I+9thjMnbsWNm3b5+0adPGHPPFF1+YYDU1NdUszFBVVSUzZswws3wb6/YqLYewdu1a6d69+0mPnT17tglcNezNyckx1yAyMlLCwsLk6NGjpn2bNm0yYamWkrj33ns9r73//vvlnnvukV//+tfym9/8Rg4dOmReP3DgQPnss8/MHwhueq4RI0bIVVddZY5/5ZVX5I9//KP813/9l5kNov71r3/JHXfcYYLjKVOmSFlZmWzbtk0++ugjGT9+fJ3fg7ZRg+ehQ4fKLbfcIjt27JA5c+bI5s2b5YMPPjDfT33aAQAAYGWMcRnjMsYFLMIFAPAxd+5cnSJb6xEdHe2aN2+ez7FLly41z913330++6+++mqXw+Fw5eTkePbpcVFRUT77tm7davY//vjjnn1jxoxxxcTEuPbu3evZt337dld4eLg59lQmTpzoio+Pr/P5zz77zJxn6tSpnn2DBg0yD7d169aZY3r16uWqqKjw7L/mmmvM95WVleVzzgEDBrg6duzo2d6zZ49p7/333+9z3BdffOGKiIjw2a9fV7/W/PnzPfvKy8td7dq1c40dO9az74orrnD17NkzoL7bvXu32c7LyzPXfNiwYa7q6mrPcU888YQ57vnnn693OwAAAKyIMS5jXDfGuIA1UB4BAOrw5JNPmtmo+tDb/PWWeZ0xqjNl3VasWGFqTOkMUG9aLkFz2pUrV/rs19meWu7ArXfv3mZBsG+//dZsV1dXm5m6Y8aMkbPOOstz3M9+9jMZPnx4o/SVljNQhYWFpzx2woQJPjNRL7zwQvN93XjjjT7H6X4te6CzgpVeI6fTaWar6mxl96Ndu3aSmZlpZibXbJP3DGatsXvBBRd4rovSmbnfffedmSEbqLfeeksqKipMKQedHeymNX31ui9fvrze7QAAALAyxriMcRnjAtZAaAsAddCwTkNWfVx77bUm4OvRo4epS6tBoNq7d6+pkaqlDrxpyOp+3pt3EOumtVn1tnylJQRKS0tNsFmT1sptDFriQdVssz8125uUlGQ+av3emvs1pNXb7VR2drYJd/X70DIP3o+vv/7alJvw1qFDB1OLtq7rorRMgYaq2i96Xq1Lq+UNTsZ9/WteOx2odunSpVb/BNIOAAAAK2OMyxhXMcYFQh81bQEgQDpTU2fbPvrooyaU1IWt6ktn5fpTc9GypvTll1+aj926dWtwe0/1fWiAq+GnzjT2d6x7tm+g53MH4VqPdtmyZWbxtldffdUsMKZ1dLVmbWMIhf4BAABoToxxT2CMCyCUENoCQD24b/93z1bt2LGjuQVfSw14z1z95ptvPM/Xh85E1YW/NBSuSQPLxrBgwQITqF522WXSVLQEhAadujjZqRY7q4/4+HgZN26ceehsZ10wTBc8mz59usTExNQ63n399drpzFo3fe3u3bvNLGoAAICWjjFuYBjjAmhOlEcAgABVVlbKmjVrzK317vIHI0eONHVon3jiCZ9jH3nkEROMZmVl1ev66rv7Wrt26dKlsm/fPs9+LSmgtW5P1wMPPGC+Bw09/ZVgaCwapur3ojNga85S1e0ff/yx3ues+RrtBy1XoefTvvFHQ1k97rHHHvNpx3PPPWdKOYwaNare7QAAALATxriBY4wLoDkx0xYA6qC39rtnzGoN1kWLFpkZsHfffbdZxEqNHj3alEz405/+JHv27JE+ffqYUPSNN94wi195LzoWKA069fb/Sy65RG699VYz8+Hxxx835Ri2bdsW0Dn0Nbp4miorKzO1W//zn/+Y12t7//nPfzZpv+v3fd9995kZsHpddGE1nYmss1tff/11ufnmm+Wuu+6q1zmHDRtmFjK76KKLJD093QTZGpZr8FpXfV6duaxt0Gs6YsQI+dWvfmVm3WpZhfPPP99n0TEAAICWgDFuwzHGBdCcCG0BoA5aK9VNb70/55xzZM6cOfLb3/7WpwaYhqF67OLFi2Xu3LnSqVMneeihh+TOO+9s0LXt3bu3mVU7bdo0c15dHEtDx4MHDwYc2paXl8v1119vPo+Li5O0tDTp16+fOd+VV15p2t3UNNzW0gg669hdc1YXMNPwVcPT+tLr/sILL8jDDz9sylPodbnjjjvkz3/+80lfN3PmTBPeasA7depUSUlJMaHx3/72N4mMjGzw9wcAAGBFjHFPD2NcAM3F4WJ1FQAAAAAAAAAIGdS0BQAAAAAAAIAQQmgLAAAAAAAAACGE0BYAAAAAAAAAQgihLQAAAAAAAACEEEJbAAAAAAAAAAghhLYAAAAAAAAAEEIIbQEAAAAAAAAghBDaAgAAAAAAAEAIIbQFAAAAAAAAgBBCaAsAAAAAAAAAIYTQFgAAAAAAAABCCKEtAAAAAAAAAIQQQlsAAAAAAAAAkNDx/wFGuzX7ANoJmgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot energy scaling with bond dimension for 35-qubit system\n", "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5))\n", "\n", "# Energy vs bond dimension\n", "ax1.plot(bond_dim_scales, energies_35q, 'o-', linewidth=2.5, markersize=10, color='tab:blue', label='DMRG Energy')\n", "ax1.set_xlabel('Bond Dimension', fontsize=12)\n", "ax1.set_ylabel('Energy', fontsize=12)\n", "ax1.set_title('35-Qubit XXZ: Energy vs Bond Dimension', fontsize=13, fontweight='bold')\n", "ax1.grid(True, alpha=0.3)\n", "ax1.legend(fontsize=11)\n", "\n", "# Computational time vs bond dimension\n", "ax2.semilogy(bond_dim_scales, elapsed_times_35q, 's-', linewidth=2.5, markersize=10, color='tab:red')\n", "ax2.set_xlabel('Bond Dimension', fontsize=12)\n", "ax2.set_ylabel('Wall-clock time (s)', fontsize=12)\n", "ax2.set_title('Computational Cost Scaling', fontsize=13, fontweight='bold')\n", "ax2.grid(True, alpha=0.3, which='both')\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "9e539093", "metadata": {}, "source": [ "## Summary\n", "\n", "This notebook demonstrates DMRG optimization for finding ground states of quantum Hamiltonians using **mpstab**:" ] }, { "cell_type": "code", "execution_count": 31, "id": "65918c8f", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[Qibo 0.3.2|WARNING|2026-04-20 09:54:09]: Calculating the dense form of a symbolic Hamiltonian. This operation is memory inefficient.\n", "[Qibo 0.3.2|WARNING|2026-04-20 09:54:09]: Calculating the dense form of a symbolic Hamiltonian. This operation is memory inefficient.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "============================================================\n", "KEY RESULTS SUMMARY\n", "============================================================\n", "\n", "6-Qubit System (Validation):\n", " DMRG: -13.57771544\n", " Exact: -13.57771544\n", " Error: 1.07e-14\n", "\n", "35-Qubit System (Scaling Analysis):\n", " BD= 5: E=-84.789587, t= 11.13s\n", " BD=10: E=-84.812962, t= 11.29s\n", " BD=20: E=-84.813325, t= 13.57s\n", " BD=30: E=-84.813315, t= 12.66s\n", " BD=40: E=-84.813328, t= 13.36s\n", " BD=50: E=-84.813331, t= 12.67s\n", "\n", "============================================================\n", "KEY INSIGHTS\n", "============================================================\n", "- 6-qubit system validates DMRG against exact eigenvalues\n", "- XXZ model exhibits strong correlations requiring larger bond dims\n", "- Energy decreases (improves) with larger bond dimensions\n", "- Computational cost increases polynomially with bond dimension\n", "- DMRG scales to 35+ qubits efficiently even for highly correlated systems\n" ] } ], "source": [ "print(\"\\n\" + \"=\"*60)\n", "print(\"KEY RESULTS SUMMARY\")\n", "print(\"=\"*60)\n", "\n", "print(\"\\n6-Qubit System (Validation):\")\n", "print(f\" DMRG: {result_6q['energy']:.8f}\")\n", "print(f\" Exact: {min(ham_6q.eigenvalues()):.8f}\")\n", "print(f\" Error: {abs(result_6q['energy'] - min(ham_6q.eigenvalues())):.2e}\")\n", "\n", "print(\"\\n35-Qubit System (Scaling Analysis):\")\n", "for i, bd in enumerate(bond_dim_scales):\n", " print(f\" BD={bd:2d}: E={energies_35q[i]:.6f}, t={elapsed_times_35q[i]:6.2f}s\")\n", "\n", "print(\"\\n\" + \"=\"*60)\n", "print(\"KEY INSIGHTS\")\n", "print(\"=\"*60)\n", "print(\"- 6-qubit system validates DMRG against exact eigenvalues\")\n", "print(\"- XXZ model exhibits strong correlations requiring larger bond dims\")\n", "print(\"- Energy decreases (improves) with larger bond dimensions\")\n", "print(\"- Computational cost increases polynomially with bond dimension\")\n", "print(\"- DMRG scales to 35+ qubits efficiently even for highly correlated systems\")" ] } ], "metadata": { "kernelspec": { "display_name": "tac (3.12.12)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.12" } }, "nbformat": 4, "nbformat_minor": 5 }