{ "cells": [ { "cell_type": "markdown", "id": "557d6090", "metadata": {}, "source": [ "# Violation Distance Correlation (VDC)" ] }, { "cell_type": "code", "execution_count": 3, "id": "023e937a", "metadata": {}, "outputs": [], "source": [ "import math\n", "\n", "from pyxla import vdc\n", "from pyxla.util import load_data\n", "from pyxla.sampling import HilbertCurveSampler" ] }, { "cell_type": "code", "execution_count": 2, "id": "44c56636", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:root:The Hilbert curve with dimension 1 is just a number line. You are sampling around points on a number line.\n" ] } ], "source": [ "sphere_sample = {\n", " \"name\": \"Sphere\",\n", " \"X\": HilbertCurveSampler(sample_size=100, dim=1, l_bound=-5, u_bound=5, seed=42),\n", " \"F\": lambda x: x**2,\n", " \"V\": [lambda x: x**2 - 2, lambda x: 8 * math.sin(20 * x)]\n", "}\n", "\n", "load_data(sphere_sample)" ] }, { "cell_type": "code", "execution_count": 4, "id": "d136c3d0", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:root:No D file is present, thus, computing the D file... Computing an entire D file can be time consuming. Instead, you can call the function with the keyword argument `compute_D_file` set to `False` to speed up computation, as only the required distances will be calculated.\n", "INFO:root:D file has been loaded to the current sample and is saved to ./Sphere_D.csv\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7f7cd3c597174755b7c5d46631df1100", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/2 [00:00)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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fvpJ9erVU2ZmpnsfbVN8ougDbGHIkCFau3atvvnmG82aNUunn366unbtGtI5tm3bpsWLF6tHjx7uxmPgwIGSpNdee63KsbVp00aStGXLFo/tLVu21M8//6xff/3V532bNWumsrIybdy40WP7nj17dODAATVr1qzKcfnTtWtXNWnSJODtmWeeicjju7gmBq9atcpj+88//6wdO3Z4TBw+66yz9NVXX1VarX7FihWqWbOmWrVq5bHd9X6cccYZ4Q8cAETbFG7hapvatWun5OTkSm1LaWmp1qxZ49G2+HPvvfdq+vTpmjhxogYPHlxp/7Zt2yRJV199tZo3b+6+7dy5UwsXLlTz5s316quvetyHtik+kTDBFlxX7B5++GGtWbMm5Ct4v/76qwYPHqzjx4/roYcecm+/5ppr1L59e/3lL3/RsmXLKt3v4MGDHsd706NHD0mVv/QPGjRIxhhNmDCh0n1cXfKXXnqpJGnSpEke+5977jlJ0mWXXRbgmVXNP//5T82bNy/g7eabbw7bYx49elQ//PCDxxW/tm3bqk2bNnr55Zc9ripOnTpVSUlJuuaaa9zbrrnmGu3Zs0fvvvuue9u+ffv09ttva+DAgZXGjq9evVoOh0Nt27YN23MAgPJom8IrXG2Tw+FQ37599dprr7nnhUnSP/7xDx06dEjXXnute9vhw4f1ww8/VJpT9PTTT+uZZ57Rgw8+qDFjxnh9nIsuukizZ8+udGvYsKG6dOmi2bNnu5NfF9qmOGVdvQnAU8+ePd0VcjZu3Oj1GFVYTX3y5Mlm+PDhpk6dOiY5OdlMnDix0n02btxomjVrZpKTk81vf/tbM2XKFPPyyy+bMWPGmIYNG5pWrVoFjK1du3ZeF0+96aabjCQzYMAA8/zzz5uJEyeaq6++2rzwwgvuY4YOHWokmeuuu85MmTLF/fNVV13lcS5fVXdclYjKL+gaTf/973/N448/bh5//HHTunVrU6dOHffPH3zwgfu4LVu2GElm6NChHvf/97//bZKSksxFF11kXn75ZTN69GhTrVo1M3z4cI/jjh07Zrp3725q1aplJkyYYKZMmWLatm1rateubX744YdKcbVr1y7qCzYCSDy0TfZsm1avXm1SU1PN2WefbaZOnWoeeughk5aWZi655BKvcZavvPfuu+8aSeb00083//jHPyrddu/e7fexAy1c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PfXUSr9nTzzxhC2egyTdcsstleLr37+/xzG//vqrhgwZoszMTNWpU0fDhg3ToUOHbPMcvLVHSUlJevrpp93HWPk+fPfddxo0aJA7hkmTJlXpnEeOHNHIkSNVv3591apVS4MGDdKePXuq/Bwi8TyCaet69+5d6b248847bfMcHn300UrxtWnTxuOYcL8X4X4O3n7fk5KSNHLkSPcxYXkfTBx74403TEpKinn11VfNd999Z4YPH27q1Klj9uzZ4/X4L774wlSvXt089dRTZt26deaPf/yjqVGjhvn2229tG/P06dNNZmam2bVrl/u2e/fuqMX70UcfmYceesi8++67RpKZPXu23+M3b95satasacaNG2fWrVtnXnjhBVO9enXzySef2DLeTz/91Egy69ev93iNjx8/HpV4+/XrZ6ZPn27Wrl1r1qxZYy699FLTtGlTc+jQIZ/3sfr3uCoxW/17/MEHH5g5c+aYDRs2mPXr15sHH3zQ1KhRw6xdu9br8Va/xqHGa/Xri+gKd9t34MAB07dvX/Pmm2+aH374wSxbtsycc845pnPnzh7nadasmXnsscc8fs/8/d1H8zkYY8zQoUNN//79PeL79ddfPc7Tv39/07FjR7N8+XLz2WefmdNOO80MHjzYNs+hfOy7du0yr776qklKSjKbNm1yH2Pl+/Dll1+ae+65x7z++usmKyvLTJw4sUrnvPPOO01ubq5ZsGCBWbVqlenevbvp2bNnlZ5DpJ5HMG1dr169zPDhwz3ei4KCAts8h0ceecS0bdvWI769e/d6HBPO9yISz+GXX37xiH/evHlGkvn000/dx4TjfYjrhOmcc84xI0eOdP98/Phxk52dbfLy8rwef91115nLLrvMY1u3bt3MHXfcEdE4yws15unTpxuHwxGl6PwLJgG57777TNu2bT22XX/99aZfv34RjMy7UBKm/Pz8qMQUyC+//GIkmcWLF/s8xg6/x+UFE7Odfo9d6tata1555RWv++z2GhvjP147vr6InGi0fV9++aWRZLZu3ere1qxZM69faKoiEs9h6NCh5sorr/T5mOvWrTOSzMqVK93bPv74Y5OUlGR27txpi+dQ0ZVXXmkuuugij21Wvg/BxBHonAcOHDA1atQwb7/9tvuY77//3kgyy5Yts83zqMhbW9erVy8zZsyYqoRcSSSewyOPPGI6duzo837hfi+i8T6MGTPGtGzZ0pSVlbm3heN9iNsheaWlpVq9erX69u3r3latWjX17dtXy5Yt83qfZcuWeRwvSf369fN5fLhVJWZJOnTokJo1a6bc3FxdeeWV+u6776IRbpVY/RpX1VlnnaUmTZro4osv1hdffGFZHAUFBZKkevXq+TzGbq9xMDFL9vk9Pn78uN544w0VFRWpR48eXo+x02scTLySfV5fRFa02r6CggIlJSWpTp06HtufeOIJ1a9fX2effbaefvppHTt2zFbPYdGiRWrUqJFat26tESNGaP/+/R7nqFOnjrp06eLe1rdvX1WrVk0rVqywzXNw2bNnj+bMmaNhw4ZV2mfV+xCOc65evVpHjx71OKZNmzZq2rRplR43Es/DG19t3T//+U81aNBA7dq10/jx43X48OGQzx3J57Bx40ZlZ2erRYsWGjJkiLZt2+beF873IhrvQ2lpqV577TXdeuutSkpK8th3su9DclgitKF9+/bp+PHjaty4scf2xo0b64cffvB6n927d3s9PlrzVaoSc+vWrfXqq6+qQ4cOKigo0DPPPKOePXvqu+++U05OTjTCDomv17iwsFDFxcVKT0+3KDLvmjRpohdffFFdunRRSUmJXnnlFfXu3VsrVqxQp06dohpLWVmZxo4dq3PPPVft2rXzeZzVv8flBRuzHX6Pv/32W/Xo0UNHjhxRrVq1NHv2bJ155plej7XDaxxKvHZ4fREd0Wj7jhw5ovvvv1+DBw9WZmame/vo0aPVqVMn1atXT0uXLtX48eO1a9cuPffcc7Z4Dv3799fVV1+t5s2ba9OmTXrwwQc1YMAALVu2TNWrV9fu3bvVqFEjj3MkJyerXr16If9tR+N9mDlzpmrXrq2rr77aY7uV70M4zrl7926lpKRUSsar+hkbiedRka+27re//a2aNWum7OxsffPNN7r//vu1fv16vfvuu7Z4Dt26ddOMGTPUunVr7dq1SxMmTND555+vtWvXqnbt2mF9L6LxPrz33ns6cOCAbrnlFo/t4Xgf4jZhShQ9evTwuKrcs2dPnXHGGXrppZf0+OOPWxhZfGjdurVat27t/rlnz57atGmTJk6cqH/84x9RjWXkyJFau3atPv/886g+7skINmY7/B63bt1aa9asUUFBgf71r39p6NChWrx4sc8kxGqhxGuH1xfx4ejRo7ruuutkjNHUqVM99o0bN879/w4dOiglJUV33HGH8vLylJqaGu1QK7nhhhvc/2/fvr06dOigli1batGiRerTp4+FkVXNq6++qiFDhlQq4GL39yEe+Wrrbr/9dvf/27dvryZNmqhPnz7atGmTWrZsGe0wKxkwYID7/x06dFC3bt3UrFkzvfXWW157Lu1u2rRpGjBggLKzsz22h+N9iNsheQ0aNFD16tUrVfLYs2ePsrKyvN4nKysrpOPDrSoxV1SjRg2dffbZ+vHHHyMR4knz9RpnZmbarnfJl3POOSfqr++oUaP04Ycf6tNPPw3YI2D177FLKDFXZMXvcUpKik477TR17txZeXl56tixo55//nmvx9rhNQ4l3ors/jmBqotk2+dKlrZu3ap58+Z59C55061bNx07dkw//fSTbZ5DeS1atFCDBg3cfwdZWVn65ZdfPI45duyYfv3115D/tiP9HD777DOtX79et912W8BYovk+hOOcWVlZKi0t1YEDB8LyuJF4HuWF0tZ169ZNkkL+7I30c3CpU6eOWrVq5fE3Ea73ItLPYevWrZo/f37QfxNSaO9D3CZMKSkp6ty5sxYsWODeVlZWpgULFvgc59+jRw+P4yVp3rx5fucFhFNVYq7o+PHj+vbbb9WkSZNIhXlSrH6Nw2HNmjVRe32NMRo1apRmz56thQsXqnnz5gHvY/VrXJWYK7LD73FZWZlKSkq87rP6NfbGX7wV2eH1RWREqu1zJUsbN27U/PnzVb9+/YCxrFmzRtWqVas0zM2q51DRjh07tH//fvffQY8ePXTgwAGtXr3afczChQtVVlbm/oJll+cwbdo0de7cWR07dgwYSzTfh3Ccs3PnzqpRo4bHMevXr9e2bduq9LiReB5S1dq6NWvWSFLIn72Reg4VHTp0SJs2bXLHF873ItLPYfr06WrUqJEuu+yygMdW6X04qZIRNvfGG2+Y1NRUM2PGDLNu3Tpz++23mzp16rjL6d50003mgQcecB//xRdfmOTkZPPMM8+Y77//3jzyyCOWlBUPJeYJEyaYuXPnmk2bNpnVq1ebG264waSlpZnvvvsuKvEePHjQfP311+brr782ksxzzz1nvv76a3flpAceeMDcdNNN7uNdZcXvvfde8/3335spU6ZEtax4qPFOnDjRvPfee2bjxo3m22+/NWPGjDHVqlUz8+fPj0q8I0aMMA6HwyxatMijHObhw4fdx9jt97gqMVv9e/zAAw+YxYsXmy1btphvvvnGPPDAAyYpKcn85z//8Rqv1a9xqPFa/foiusLd9pWWlporrrjC5OTkmDVr1nj8XZeUlBhjjFm6dKmZOHGiWbNmjdm0aZN57bXXTMOGDc3NN99si+dw8OBBc88995hly5aZLVu2mPnz55tOnTqZ008/3Rw5csR9nv79+5uzzz7brFixwnz++efm9NNPP6my4pH4DlJQUGBq1qxppk6dWukxrX4fSkpK3G1skyZNzD333GO+/vprs3HjxqDPaYyzlHXTpk3NwoULzapVq0yPHj1Mjx49qvQcIvU8ArV1P/74o3nsscfMqlWrzJYtW8z7779vWrRoYS644ALbPIc//OEPZtGiRWbLli3miy++MH379jUNGjQwv/zyi/uYcL4XkXgOxjir7TVt2tTcf//9lR4zXO9DXCdMxhjzwgsvmKZNm5qUlBRzzjnnmOXLl7v39erVywwdOtTj+Lfeesu0atXKpKSkmLZt25o5c+ZEOeLQYh47dqz72MaNG5tLL73UfPXVV1GL1VV2u+LNFePQoUNNr169Kt3nrLPOMikpKaZFixZm+vTpto33ySefNC1btjRpaWmmXr16pnfv3mbhwoVRi9dbrJI8XjO7/R5XJWarf49vvfVW06xZM5OSkmIaNmxo+vTp404+vMVrjLWvcajxWv36IvrC2fZt2bLF59+1a62T1atXm27duhmHw2HS0tLMGWecYf761796JCNWPofDhw+bSy65xDRs2NDUqFHDNGvWzAwfPrzSemT79+83gwcPNrVq1TKZmZnmd7/7nTl48KAtnoPLSy+9ZNLT082BAwcq7bP6ffD1u1Lxe4C/cxpjTHFxsfn9739v6tata2rWrGl+85vfmF27dlX5OUTieQRq67Zt22YuuOACU69ePZOammpOO+00c++991Z5HaZIPIfrr7/eNGnSxKSkpJhTTjnFXH/99ebHH3/0eMxwvxeR+H2aO3eue83MisL1PiQZY0zw/VEAAAAAkDjidg4TAAAAAJwsEiYAAAAA8IGECQAAAAB8IGECAAAAAB9ImAAAAADABxImAAAAAPCBhAkAAAAAfCBhAgAAAAAfSJiAMOjdu7fGjh0rSTr11FM1adIkS+MBAIC2CQgPEiYgzFauXKnbb789qGNpwAAA0UDbBFRdstUBAPGmYcOGVocAAIAH2iag6uhhAkJUVFSkm2++WbVq1VKTJk307LPPeuwvf2XOGKNHH31UTZs2VWpqqrKzszV69GhJzqESW7du1d13362kpCQlJSVJkvbv36/BgwfrlFNOUc2aNdW+fXu9/vrrHo/Ru3dvjR49Wvfdd5/q1aunrKwsPfroox7HHDhwQHfccYcaN26stLQ0tWvXTh9++KF7/+eff67zzz9f6enpys3N1ejRo1VUVBTmVwsAEA20TUDkkDABIbr33nu1ePFivf/++/rPf/6jRYsW6auvvvJ67DvvvKOJEyfqpZde0saNG/Xee++pffv2kqR3331XOTk5euyxx7Rr1y7t2rVLknTkyBF17txZc+bM0dq1a3X77bfrpptu0pdffulx7pkzZyojI0MrVqzQU089pccee0zz5s2TJJWVlWnAgAH64osv9Nprr2ndunV64oknVL16dUnSpk2b1L9/fw0aNEjffPON3nzzTX3++ecaNWpUpF42AEAE0TYBEWQABO3gwYMmJSXFvPXWW+5t+/fvN+np6WbMmDHGGGOaNWtmJk6caIwx5tlnnzWtWrUypaWlXs9X/lh/LrvsMvOHP/zB/XOvXr3Meeed53FM165dzf3332+MMWbu3LmmWrVqZv369V7PN2zYMHP77bd7bPvss89MtWrVTHFxccB4AAD2QdsERBY9TEAINm3apNLSUnXr1s29rV69emrdurXX46+99loVFxerRYsWGj58uGbPnq1jx475fYzjx4/r8ccfV/v27VWvXj3VqlVLc+fO1bZt2zyO69Chg8fPTZo00S+//CJJWrNmjXJyctSqVSuvj/Hf//5XM2bMUK1atdy3fv36qaysTFu2bAn4OgAA7IO2CYgsij4AEZSbm6v169dr/vz5mjdvnn7/+9/r6aef1uLFi1WjRg2v93n66af1/PPPa9KkSWrfvr0yMjI0duxYlZaWehxX8f5JSUkqKyuTJKWnp/uN69ChQ7rjjjvcY9bLa9q0aShPEQAQY2ibgNCQMAEhaNmypWrUqKEVK1a4P7zz8/O1YcMG9erVy+t90tPTNXDgQA0cOFAjR45UmzZt9O2336pTp05KSUnR8ePHPY7/4osvdOWVV+rGG2+U5BzzvWHDBp155plBx9mhQwft2LFDGzZs8Holr1OnTlq3bp1OO+20oM8JALAn2iYgshiSB4SgVq1aGjZsmO69914tXLhQa9eu1S233KJq1bz/Kc2YMUPTpk3T2rVrtXnzZr322mtKT09Xs2bNJDmrFi1ZskQ7d+7Uvn37JEmnn3665s2bp6VLl+r777/XHXfcoT179oQUZ69evXTBBRdo0KBBmjdvnrZs2aKPP/5Yn3zyiSTp/vvv19KlSzVq1CitWbNGGzdu1Pvvv8/EWgCIQbRNQGSRMAEhevrpp3X++edr4MCB6tu3r8477zx17tzZ67F16tTR3/72N5177rnq0KGD5s+fr3//+9+qX7++JOmxxx7TTz/9pJYtW7rXyPjjH/+oTp06qV+/furdu7eysrJ01VVXhRznO++8o65du2rw4ME688wzdd9997mvGHbo0EGLFy/Whg0bdP755+vss8/Www8/rOzs7Kq9KAAAS9E2AZGTZIwxVgcBAAAAAHZEDxMAAAAA+EDCBAAAAAA+kDABAAAAgA8kTAAAAADgAwkTAAAAAPhAwgQAAAAAPpAwAQAAAIAPJEwAAAAA4AMJEwAAAAD4QMIEAAAAAD6QMAEAAACAD/8fT7P9RJx+azQAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vdc(sphere_sample)" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.3" } }, "nbformat": 4, "nbformat_minor": 5 }