From 540c61a2cd3db671aa526fe86933f41c018edc6b Mon Sep 17 00:00:00 2001 From: Alexandre Ricardo Date: Wed, 18 Mar 2026 14:09:48 -0300 Subject: [PATCH 1/6] Updating Grovers algorithm workshop --- .../grover_workshop/assets/grover.png | Bin 0 -> 147691 bytes .../grover_workshop/assets/oracle.png | Bin 0 -> 32759 bytes .../assets/reflect-about-mean.png | Bin 0 -> 16689 bytes .../assets/reflect-about-zero.png | Bin 0 -> 18553 bytes .../grover_workshop/grover_workshop.ipynb | 433 ++++-------------- 5 files changed, 89 insertions(+), 344 deletions(-) create mode 100644 tutorials/workshops/grover_workshop/assets/grover.png create mode 100644 tutorials/workshops/grover_workshop/assets/oracle.png create mode 100644 tutorials/workshops/grover_workshop/assets/reflect-about-mean.png create mode 100644 tutorials/workshops/grover_workshop/assets/reflect-about-zero.png diff --git a/tutorials/workshops/grover_workshop/assets/grover.png b/tutorials/workshops/grover_workshop/assets/grover.png new file mode 100644 index 0000000000000000000000000000000000000000..b91f986afc688dde889620ef35e9d31d83f571e7 GIT binary patch literal 147691 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 Jvd$@?2>@HX6Ey$; literal 0 HcmV?d00001 diff --git a/tutorials/workshops/grover_workshop/assets/oracle.png b/tutorials/workshops/grover_workshop/assets/oracle.png new file mode 100644 index 0000000000000000000000000000000000000000..921b63db4258bf9948501a448791f9b0ce99d76c GIT binary patch literal 32759 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 literal 0 HcmV?d00001 diff --git a/tutorials/workshops/grover_workshop/assets/reflect-about-mean.png b/tutorials/workshops/grover_workshop/assets/reflect-about-mean.png new file mode 100644 index 0000000000000000000000000000000000000000..a96125f5889a269aabc9faa6738b2aa272337ffe GIT binary patch literal 16689 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 HQ$iB}y?4A$ literal 0 HcmV?d00001 diff --git a/tutorials/workshops/grover_workshop/grover_workshop.ipynb b/tutorials/workshops/grover_workshop/grover_workshop.ipynb index c2bd5d5b1..d5ea50faa 100644 --- a/tutorials/workshops/grover_workshop/grover_workshop.ipynb +++ b/tutorials/workshops/grover_workshop/grover_workshop.ipynb @@ -61,31 +61,26 @@ "id": "6", "metadata": {}, "source": [ - "Write a function that prepares the minus state $|{-}\\rangle=\\frac{1}{\\sqrt2}(|{0}\\rangle-|{1}\\rangle)$, assuming it recives the qubit $|{x}\\rangle=|{0}\\rangle$ \n", + "Write a function that prepares the plus state $|{+}\\rangle^{\\otimes n}=\\left[\\frac{1}{\\sqrt2}(|{0}\\rangle+|{1}\\rangle)\\right]^{\\otimes n}$, assuming the state of the input quantum variable is $|x\\rangle^{\\otimes n}$ \n", "\n", "
\n", "\n", "HINT\n", "\n", "\n", - "Use `H(x)`,`X(x)`\n", + "Use either `apply_to_all()` with `H(x)`, or `hadamard_transform()`.\n", "
" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 2, "id": "7", "metadata": {}, "outputs": [], "source": [ "from classiq import *\n", - "\n", - "\n", - "@qfunc\n", - "def prepare_minus_state(x: QBit):\n", - " pass\n", - " # TODO complete here" + "from classiq.qmod.symbolic import pi" ] }, { @@ -98,15 +93,18 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "id": "9", "metadata": {}, "outputs": [], "source": [ + "n = 5\n", + "\n", + "\n", "@qfunc\n", - "def main(x: Output[QBit]):\n", - " allocate(1, x)\n", - " prepare_minus_state(x) # Prepare the minus state" + "def main(x: Output[QArray[QBit]]):\n", + " allocate(5, x)\n", + " hadamard_transform(x) # Prepare the minus state" ] }, { @@ -182,7 +180,7 @@ "id": "15", "metadata": {}, "source": [ - "### Uniform Superposition" + "## Grover's algorithm - Summary" ] }, { @@ -190,110 +188,34 @@ "id": "16", "metadata": {}, "source": [ - "Let's continue warming up with creating a function that receives a quantum register and creates a uniform superposition for all qubits within this array. You should use the function `apply_to_all(gate_operand=, target=)`:" + "Before diving into Grover's algorithm implementation, it is important to analyze its different building blocks. We start by looking at the overall quantum algorithm and then start a step-by-step build of it.\n", + "\n", + "![Visualization](assets/grover.png)" ] }, { - "cell_type": "code", - "execution_count": 31, + "cell_type": "markdown", "id": "17", "metadata": {}, - "outputs": [], "source": [ - "@qfunc\n", - "def create_initial_state(reg: QArray):\n", - " pass\n", - " # TODO complete here apply_to_all(gate_operand=, target=)" + "* **Initial state preparation**: The algorithm starts by preparing a uniform superposition $\\lvert + \\rangle^{\\otimes n}$ using Hadamard gates. This ensures that all possible states are explored simultaneously. At this stage, each state has equal probability amplitude.\n", + "\n", + "* **Grover Oracle**: The oracle encodes the problem by marking the solution state(s). It does this by applying a phase flip, effectively distinguishing \"good\" states from \"bad\" ones. Importantly, it does not reveal the solution directly, only modifies its phase.\n", + "\n", + "* **Grover Diffuser**: The diffuser amplifies the probability of the marked states through a reflection about the average amplitude. This step increases the likelihood of measuring the correct solution. Repeating the oracle and diffuser gradually concentrates probability on the target state." ] }, { "cell_type": "markdown", "id": "18", "metadata": {}, - "source": [ - "Test yout function by creating a new main function, synthesizing and viewing the circuit:" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "19", - "metadata": {}, - "outputs": [], - "source": [ - "@qfunc\n", - "def main(x: Output[QArray]):\n", - " allocate(7, x)\n", - " create_initial_state(x)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "20", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Quantum program link: https://platform.classiq.io/circuit/2yjA3FxJAIoqaq58u2aQbECoUar\n" - ] - } - ], - "source": [ - "qprog = synthesize(main)\n", - "show(qprog)" - ] - }, - { - "cell_type": "markdown", - "id": "21", - "metadata": {}, - "source": [ - "### Function of a function" - ] - }, - { - "cell_type": "markdown", - "id": "22", - "metadata": {}, - "source": [ - "In our Grover example we will have 3 variables `a,b,c`. We want to prepare all of them in an initial state of equal superposition. Create a fucntion that receives these 3 quantum variables as quantum integers (`QNum`) and applies the `create_inital_state` function to each:" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "23", - "metadata": {}, - "outputs": [], - "source": [ - "@qfunc\n", - "def create_initial_states(a: QNum, b: QNum, c: QNum):\n", - " pass\n", - " # TODO Complete here" - ] - }, - { - "cell_type": "markdown", - "id": "24", - "metadata": {}, - "source": [ - "You can create a main function, synthesize and visualize the generated circuit if you want to test yourself." - ] - }, - { - "cell_type": "markdown", - "id": "25", - "metadata": {}, "source": [ "## Oracle - Reflection around bad states" ] }, { "cell_type": "markdown", - "id": "26", + "id": "19", "metadata": {}, "source": [ "### Theoretical Background" @@ -301,7 +223,7 @@ }, { "cell_type": "markdown", - "id": "27", + "id": "20", "metadata": {}, "source": [ "Overall we can understand the Grover operator as composed of two reflection operators:\n", @@ -313,18 +235,18 @@ }, { "cell_type": "markdown", - "id": "28", + "id": "21", "metadata": {}, "source": [ - "![Oracle](assets/graph1.jpg)" + "![reflect](assets/reflect-about-zero.png)" ] }, { "cell_type": "markdown", - "id": "29", + "id": "22", "metadata": {}, "source": [ - "The above figures describes geometrically the reflection of some state $|{\\psi}\\rangle=\\alpha|{\\psi_\\text{good}}\\rangle+\\beta|{\\psi_\\text{bad}}\\rangle$ around the state $|{\\psi_\\text{bad}}\\rangle$ such that\n", + "The above figure describe geometrically the reflection of some state $|{\\psi}\\rangle=\\alpha|{\\psi_\\text{good}}\\rangle+\\beta|{\\psi_\\text{bad}}\\rangle$ around the state $|{\\psi_\\text{bad}}\\rangle$ such that\n", "$\\begin{equation}\n", "R(\\alpha|{\\psi_\\text{good}}\\rangle+\\beta|{\\psi_\\text{bad}}\\rangle) = -\\alpha|{\\psi_\\text{good}}\\rangle+\\beta|{\\psi_\\text{bad}}\\rangle\n", "\\end{equation}$\n", @@ -339,7 +261,7 @@ }, { "cell_type": "markdown", - "id": "30", + "id": "23", "metadata": {}, "source": [ "### Implementation" @@ -347,58 +269,19 @@ }, { "cell_type": "markdown", - "id": "31", + "id": "24", "metadata": {}, "source": [ "Now we will actually implement the black box, the oracle, that people are speaking about in quantum algorithms. The beauty of Classiq is that we just need to specify its functionality, and Classiq automatically implements it for us.\n", - "For our purposes, we want to find all the states that obey $2a+b=c$ so there are 3 quantum variables. In addition, we want to store our results somewhere, i.e. to indicate for each tupple of 3 numbers (a,b,c) (e.g. (1,2,2)) if the state is what we are looking for ($2*1+2=4!=2$ so the result is FALSE in this case). \n", - "\n", - "We will store the result in the variable `res` such that: $\\begin{equation} \\text{res} = \\text{res} \\oplus (2a+b==c) \\end{equation}$" - ] - }, - { - "cell_type": "markdown", - "id": "32", - "metadata": {}, - "source": [ - "What we really want to implement here is graphically described as:" - ] - }, - { - "cell_type": "markdown", - "id": "33", - "metadata": {}, - "source": [ - "![res](assets/oracle1.jpg)" - ] - }, - { - "cell_type": "markdown", - "id": "34", - "metadata": {}, - "source": [ - "Adapt the following function so it will apply the desired equation: " - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "35", - "metadata": {}, - "outputs": [], - "source": [ - "@qperm\n", - "def oracle_black_box(res: QNum, a: Const[QNum], b: Const[QNum], c: Const[QNum]):\n", - " # TODO Adapt with the correct statement\n", - " res ^= a + b + c == 8" + "For our purposes, we want to find all the states that obey $2a+b=c$ so there are 3 quantum variables. In addition, we want to store our results in the relative phase of such states. In other words, we want:" ] }, { "cell_type": "markdown", - "id": "36", + "id": "25", "metadata": {}, "source": [ - "Now let's go quantum! We want to store the result of the above operation in the phase of the state $|{a,b,c}\\rangle$. That is, we want $\\begin{equation} |{a,b,c}\\rangle\\rightarrow(-1)^{(2a+b==c)}|{a,b,c}\\rangle\\end{equation}$\n", + "$\\begin{equation} |{a,b,c}\\rangle\\rightarrow(-1)^{(2a+b==c)}|{a,b,c}\\rangle\\end{equation}$\n", "\n", "There is a common procedure in quantum algorithms that applies this and it is called phase kickback. It's working by applying the above `oracle_black_box` function to an initial `res` qubit to the state $|{-}\\rangle$ (has anyone prepared a function `prepare_minus(x)` by any chance?)\n", "\n", @@ -407,15 +290,15 @@ }, { "cell_type": "markdown", - "id": "37", + "id": "26", "metadata": {}, "source": [ - "![phase_kickback_scheme](assets/oracle2.jpg)" + "![phase_oracle](assets/oracle.png)" ] }, { "cell_type": "markdown", - "id": "38", + "id": "27", "metadata": {}, "source": [ "Now we can implement it using our oracle:" @@ -423,28 +306,19 @@ }, { "cell_type": "code", - "execution_count": 36, - "id": "39", + "execution_count": null, + "id": "28", "metadata": {}, "outputs": [], "source": [ - "@qperm(disable_perm_check=True)\n", + "@qperm\n", "def oracle_function(a: Const[QNum], b: Const[QNum], c: Const[QNum]):\n", - " aux = QBit()\n", - "\n", - " allocate(aux)\n", - " prepare_minus_state(aux)\n", - "\n", - " oracle_black_box(aux, a, b, c)\n", - "\n", - " # We want to bring the aux state back to it's initial value and to free it up for further use\n", - " invert(lambda: prepare_minus_state(aux))\n", - " free(aux) # and that it can be re-used" + " control((2 * a + b == c), phase(pi))" ] }, { "cell_type": "markdown", - "id": "40", + "id": "29", "metadata": {}, "source": [ "## Diffuser - Reflection around initial guess" @@ -452,7 +326,7 @@ }, { "cell_type": "markdown", - "id": "41", + "id": "30", "metadata": {}, "source": [ "### Theoretical Background" @@ -460,7 +334,7 @@ }, { "cell_type": "markdown", - "id": "42", + "id": "31", "metadata": {}, "source": [ "The second part of the Grover operator is the diffuser, which can be viewed as the reflection operator around our initial guess. " @@ -468,15 +342,15 @@ }, { "cell_type": "markdown", - "id": "43", + "id": "32", "metadata": {}, "source": [ - "![diffuser](assets/graph2.jpg)" + "![diffuser](assets/reflect-about-mean.png)" ] }, { "cell_type": "markdown", - "id": "44", + "id": "33", "metadata": {}, "source": [ "As with the oracle reflection operator, we can describe any state $|{\\psi}\\rangle$ as a superposition of the initial state $|{\\psi_0}\\rangle$ such that and the orthogoanl state to it $|{\\psi_0^{\\bot}}\\rangle$ \n", @@ -485,7 +359,7 @@ "|{\\psi}\\rangle = \\alpha |{\\psi_0}\\rangle +\\beta |{\\psi_0^{\\bot}}\\rangle\n", "\\end{equation}$\n", "\n", - "Here what we want to implement is to add a $(-)$ phase for all states that are not equal our initial guess, that is the reflection operator (our diffuser) is defined as:\n", + "Here what we want to implement is to add a $\\pi$ phase for all states that are not equal our initial guess, that is the reflection operator (our diffuser) is defined as:\n", "\n", "$\\begin{equation}\n", "R(\\alpha |{\\psi_0}\\rangle +\\beta |{\\psi_0^{\\bot}}\\rangle) = \\alpha |{\\psi_0}\\rangle -\\beta |{\\psi_0^{\\bot}}\\rangle\n", @@ -494,10 +368,10 @@ }, { "cell_type": "markdown", - "id": "45", + "id": "34", "metadata": {}, "source": [ - "In order to implement the reflection around our initial state, we will implement a reflection around the zero state $|{0}\\rangle$, and then squeeze it between to state preperations operators for our initial state $|{\\psi_0}\\rangle$. That is, if $U_{\\psi_0}|{0}\\rangle=|{\\psi_0}\\rangle$ then we will implement the desired $R$ operator with:\n", + "In order to implement the reflection around our initial state, we will implement a reflection around the zero state $|{0}\\rangle$, and then squeeze it between two state preparations operators for our initial state $|{\\psi_0}\\rangle$. That is, if $U_{\\psi_0}|{0}\\rangle=|{\\psi_0}\\rangle$ then we will implement the desired $R$ operator with:\n", "$\\begin{equation}\n", "R = U_{\\psi_0}R_0 U_{\\psi_0}^{\\dagger}\n", "\\end{equation}$\n", @@ -510,7 +384,7 @@ }, { "cell_type": "markdown", - "id": "46", + "id": "35", "metadata": {}, "source": [ "### Implementation" @@ -518,97 +392,30 @@ }, { "cell_type": "markdown", - "id": "47", - "metadata": {}, - "source": [ - "First we will implement the not equal zero function which takes `aux` and `x` as inputs and applies \n", - "$\\begin{equation}\n", - "\\text{res} = \\text{res} \\oplus (x\\ne0)\n", - "\\end{equation}$" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "48", - "metadata": {}, - "outputs": [], - "source": [ - "@qperm\n", - "def not_equal_zero(aux: QBit, x: Const[QNum]):\n", - " aux ^= x == 0\n", - " X(aux)" - ] - }, - { - "cell_type": "markdown", - "id": "49", - "metadata": {}, - "source": [ - "Now we will use the common trick of phase kick back again. As the `aux` qubit for the `not_equal_zero` funciton we need to insert the $|{-}\\rangle$ state after it has been initialized and apploied, and after the application of the function we need to return `aux` to its initial state and to free it up (We did this precedure before).\n", - "\n", - "
\n", - "\n", - "HINT\n", - "\n", - "\n", - "1. Declare the auxilary qubit\n", - "2. Initalize it using `allocate`\n", - "3. Prepare the $|{-}\\rangle$ state\n", - "4. Apply the `not_equal_zero` funciton\n", - "5. Reverse the $|{-}\\rangle$ with the `invert` operation\n", - "6. Free the auxilary qubit\n", - "\n", - "
\n" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "50", - "metadata": {}, - "outputs": [], - "source": [ - "@qfunc\n", - "def zero_diffuser(x: QNum):\n", - " pass\n", - " # TODO complete here" - ] - }, - { - "cell_type": "markdown", - "id": "51", + "id": "36", "metadata": {}, "source": [ - "Now after we've implemented the zero diffuser, we need to sandwich it with the state preparations of our initial state `a,b,c`. The tricky part here is that the zero diffuser expects to receive only 1 quantunm variable `x` but we have three. So what should we do? We combine them to one quantum variable with the `bind` operation, treating them as one variable, and then splitting them back into 3 variables with the `bind` operation again." + "We will use the controlled `phase` operation once more. To \"squeeze\" it between two Hadamard transforms, we use `within_apply`:" ] }, { "cell_type": "code", - "execution_count": 39, - "id": "52", + "execution_count": null, + "id": "37", "metadata": {}, "outputs": [], "source": [ - "size_a = 2\n", - "size_b = 2\n", - "size_c = 3\n", - "\n", - "\n", "@qfunc\n", - "def initial_state_diffuser(a: QNum, b: QNum, c: QNum):\n", - " create_initial_states(a, b, c)\n", - "\n", - " abc = QNum()\n", - " bind([a, b, c], abc)\n", - " zero_diffuser(abc)\n", - " bind(abc, [a, b, c])\n", - " invert(lambda: create_initial_states(a, b, c))" + "def grover_diffuser(state: QNum) -> None:\n", + " within_apply(\n", + " lambda: hadamard_transform(state),\n", + " lambda: control(state != 0, lambda: phase(pi)),\n", + " )" ] }, { "cell_type": "markdown", - "id": "53", + "id": "38", "metadata": {}, "source": [ "## Putting all together" @@ -616,17 +423,17 @@ }, { "cell_type": "markdown", - "id": "54", + "id": "39", "metadata": {}, "source": [ "That's it! You've made it! Now is the time to harvest the fruits of the hard work and put everything together!\n", - "Complete your grover operator by implementing the two functions that you've built, first the `oracle_fucntion` and then the `inital_state_diffuser`:" + "Complete your grover operator by implementing the two functions that you've built, first the `oracle_function` and then the `grover_diffuser`:" ] }, { "cell_type": "code", "execution_count": 40, - "id": "55", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -638,7 +445,7 @@ }, { "cell_type": "markdown", - "id": "56", + "id": "41", "metadata": {}, "source": [ "Now that we have our Grover operator, we can run it within our code. We have 3 steps here:\n", @@ -650,7 +457,7 @@ { "cell_type": "code", "execution_count": 41, - "id": "57", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -666,7 +473,7 @@ }, { "cell_type": "markdown", - "id": "58", + "id": "43", "metadata": {}, "source": [ "Synthesize your model:" @@ -675,7 +482,7 @@ { "cell_type": "code", "execution_count": 42, - "id": "59", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -684,7 +491,7 @@ }, { "cell_type": "markdown", - "id": "60", + "id": "45", "metadata": {}, "source": [ "And view it within the IDE:" @@ -693,7 +500,7 @@ { "cell_type": "code", "execution_count": null, - "id": "61", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -702,7 +509,7 @@ }, { "cell_type": "markdown", - "id": "62", + "id": "47", "metadata": {}, "source": [ "Is it what you were expecting?\n", @@ -712,19 +519,19 @@ { "cell_type": "code", "execution_count": null, - "id": "63", + "id": "48", "metadata": {}, "outputs": [], "source": [ - "qprog = synthesize(\n", + "qprog_depth_optimized = synthesize(\n", " main, constraints=Constraints(optimization_parameter=\"depth\")\n", ") # or 'width'\n", - "show(qprog)" + "show(qprog_depth_optimized)" ] }, { "cell_type": "markdown", - "id": "64", + "id": "49", "metadata": {}, "source": [ "### CONGRATULATIONS!\n", @@ -734,7 +541,7 @@ }, { "cell_type": "markdown", - "id": "65", + "id": "50", "metadata": {}, "source": [ "#### The full solution for your reference" @@ -743,70 +550,25 @@ { "cell_type": "code", "execution_count": null, - "id": "66", + "id": "51", "metadata": {}, "outputs": [], "source": [ "from classiq import *\n", - "\n", - "\n", - "@qfunc\n", - "def prepare_minus_state(x: QBit):\n", - " X(x)\n", - " H(x)\n", - "\n", - "\n", - "@qfunc\n", - "def create_initial_state(reg: QArray):\n", - " apply_to_all(gate_operand=H, target=reg)\n", - "\n", - "\n", - "@qfunc\n", - "def create_initial_state(reg: QArray):\n", - " apply_to_all(lambda qb: H(qb), reg)\n", - "\n", - "\n", - "@qfunc\n", - "def create_initial_states(a: QNum, b: QNum, c: QNum):\n", - " create_initial_state(a)\n", - " create_initial_state(b)\n", - " create_initial_state(c)\n", + "from classiq.qmod.symbolic import pi\n", "\n", "\n", "@qperm\n", - "def oracle_black_box(res: QNum, a: Const[QNum], b: Const[QNum], c: Const[QNum]):\n", - " res ^= 2 * a + b == c\n", - "\n", - "\n", - "@qperm(disable_perm_check=True)\n", "def oracle_function(a: Const[QNum], b: Const[QNum], c: Const[QNum]):\n", - " aux = QBit()\n", - "\n", - " allocate(aux)\n", - " prepare_minus_state(aux)\n", - "\n", - " oracle_black_box(aux, a, b, c)\n", - "\n", - " # We want to bring the aux state back to it's initial value and to free it up for further use\n", - " invert(lambda: prepare_minus_state(aux))\n", - " free(aux) # and that it can be re-used\n", - "\n", - "\n", - "@qperm\n", - "def not_equal_zero(aux: QBit, x: Const[QNum]):\n", - " aux ^= x == 0\n", - " X(aux)\n", + " control((2 * a + b == c), lambda: phase(pi))\n", "\n", "\n", "@qfunc\n", - "def zero_diffuser(x: QNum):\n", - " aux = QBit()\n", - " allocate(aux)\n", - "\n", - " prepare_minus_state(aux)\n", - " not_equal_zero(aux, x)\n", - " invert(lambda: prepare_minus_state(aux))\n", - " free(aux)\n", + "def grover_diffuser(state: QNum) -> None:\n", + " within_apply(\n", + " lambda: hadamard_transform(state),\n", + " lambda: control(state != 0, lambda: phase(pi)),\n", + " )\n", "\n", "\n", "size_a = 2\n", @@ -815,20 +577,9 @@ "\n", "\n", "@qfunc\n", - "def initial_state_diffuser(a: QNum, b: QNum, c: QNum):\n", - " create_initial_states(a, b, c)\n", - "\n", - " abc = QNum()\n", - " bind([a, b, c], abc)\n", - " zero_diffuser(abc)\n", - " bind(abc, [a, b, c])\n", - " invert(lambda: create_initial_states(a, b, c))\n", - "\n", - "\n", - "@qfunc\n", "def my_grover_operator(a: QNum, b: QNum, c: QNum):\n", " oracle_function(a, b, c)\n", - " initial_state_diffuser(a, b, c)\n", + " grover_diffuser([a, b, c])\n", "\n", "\n", "@qfunc\n", @@ -836,23 +587,22 @@ " allocate(size_a, a)\n", " allocate(size_b, b)\n", " allocate(size_c, c)\n", - " create_initial_states(a, b, c)\n", + " hadamard_transform([a, b, c])\n", " my_grover_operator(a, b, c)\n", "\n", "\n", - "qmod = create_model(main)\n", "qprog = synthesize(main)\n", "show(qprog)\n", "\n", - "qmod = set_constraints(qmod, optimization_parameter=\"depth\") # or 'width'\n", - "qprog = synthesize(qmod)\n", - "show(qprog)" + "constraints = Constraints(optimization_parameter=\"depth\") # or 'width'\n", + "qprog_depth_optimized = synthesize(main, constraints=constraints)\n", + "show(qprog_depth_optimized)" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "venv", "language": "python", "name": "python3" }, @@ -866,12 +616,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" - }, - "vscode": { - "interpreter": { - "hash": "529b62266d4f537a408698cf820854c65fe877011c7661f0f70aa11c4383fddc" - } + "version": "3.11.14" } }, "nbformat": 4, From 41598c6fc2fab7c95e907a165192cc827ae0ecca Mon Sep 17 00:00:00 2001 From: Alexandre Ricardo Date: Fri, 20 Mar 2026 13:51:14 -0300 Subject: [PATCH 2/6] Fixing lint hooks --- .../grover_workshop/grover_workshop.ipynb | 71 +++++++++++++------ 1 file changed, 48 insertions(+), 23 deletions(-) diff --git a/tutorials/workshops/grover_workshop/grover_workshop.ipynb b/tutorials/workshops/grover_workshop/grover_workshop.ipynb index d5ea50faa..41b343435 100644 --- a/tutorials/workshops/grover_workshop/grover_workshop.ipynb +++ b/tutorials/workshops/grover_workshop/grover_workshop.ipynb @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 1, "id": "2", "metadata": {}, "outputs": [], @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 2, "id": "3", "metadata": {}, "outputs": [], @@ -74,7 +74,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "7", "metadata": {}, "outputs": [], @@ -93,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "9", "metadata": {}, "outputs": [], @@ -109,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 5, "id": "10", "metadata": {}, "outputs": [], @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 6, "id": "11", "metadata": {}, "outputs": [ @@ -127,7 +127,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Quantum program link: https://platform.classiq.io/circuit/2yjA2tiLZD0kptA5ufekX5I4Gil\n" + "Quantum program link: https://platform.classiq.io/circuit/3BDZ0CrFpw76x6WbQ3GSz1oh9aD\n" ] } ], @@ -306,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "28", "metadata": {}, "outputs": [], @@ -400,7 +400,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "37", "metadata": {}, "outputs": [], @@ -432,7 +432,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 9, "id": "40", "metadata": {}, "outputs": [], @@ -456,11 +456,16 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 10, "id": "42", "metadata": {}, "outputs": [], "source": [ + "size_a = 2\n", + "size_b = 2\n", + "size_c = 3\n", + "\n", + "\n", "@qfunc\n", "def main(a: Output[QNum], b: Output[QNum], c: Output[QNum]):\n", " allocate(size_a, a)\n", @@ -481,7 +486,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 11, "id": "44", "metadata": {}, "outputs": [], @@ -499,10 +504,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "46", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Quantum program link: https://platform.classiq.io/circuit/3BDZ0Oj00fjmqsR9QKcsGqmJ0HB\n" + ] + } + ], "source": [ "show(qprog)" ] @@ -518,10 +531,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "48", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Quantum program link: https://platform.classiq.io/circuit/3BDZ0fTM0RneZZeGNTJ9XxpiAx6\n" + ] + } + ], "source": [ "qprog_depth_optimized = synthesize(\n", " main, constraints=Constraints(optimization_parameter=\"depth\")\n", @@ -549,10 +570,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "51", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Quantum program link: https://platform.classiq.io/circuit/3BDZ1HvwH1GQxmlAVeElrmEtqZm\n", + "Quantum program link: https://platform.classiq.io/circuit/3BDZ2l0vxNe8XvU6ZbqoUsEvTnN\n" + ] + } + ], "source": [ "from classiq import *\n", "from classiq.qmod.symbolic import pi\n", @@ -571,11 +601,6 @@ " )\n", "\n", "\n", - "size_a = 2\n", - "size_b = 2\n", - "size_c = 3\n", - "\n", - "\n", "@qfunc\n", "def my_grover_operator(a: QNum, b: QNum, c: QNum):\n", " oracle_function(a, b, c)\n", From 2e8d4be5d1f25b0b23569f26d86b36ec094da992 Mon Sep 17 00:00:00 2001 From: Alexandre Ricardo Date: Fri, 20 Mar 2026 13:55:42 -0300 Subject: [PATCH 3/6] Text improvement --- tutorials/workshops/grover_workshop/grover_workshop.ipynb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tutorials/workshops/grover_workshop/grover_workshop.ipynb b/tutorials/workshops/grover_workshop/grover_workshop.ipynb index 41b343435..759e2424c 100644 --- a/tutorials/workshops/grover_workshop/grover_workshop.ipynb +++ b/tutorials/workshops/grover_workshop/grover_workshop.ipynb @@ -156,7 +156,7 @@ "source": [ "Some basic guidelines about the modeling language (QMOD):\n", "\n", - "1. Every quantum variable should be declared, either as a parameter of a funciton e.g. `def prepare_minus(x: QBit)` or within the function itself with `x = QBit('x')`\n", + "1. Every quantum variable should be declared, either as a parameter of a funciton e.g. `def main(x: Output[QBit])` or within the function itself with `x = QBit('x')`\n", "\n", "2. Some quantum variables need to be initalized with the `allocate` function. This is required in 2 cases:\n", "* A variable is a parameter of a function with the declaration `Output` like `def main(x: Output[QNum])`\n", @@ -283,9 +283,7 @@ "source": [ "$\\begin{equation} |{a,b,c}\\rangle\\rightarrow(-1)^{(2a+b==c)}|{a,b,c}\\rangle\\end{equation}$\n", "\n", - "There is a common procedure in quantum algorithms that applies this and it is called phase kickback. It's working by applying the above `oracle_black_box` function to an initial `res` qubit to the state $|{-}\\rangle$ (has anyone prepared a function `prepare_minus(x)` by any chance?)\n", - "\n", - "You can work out the math to see that the following scheme implements what we want:" + "In a visual representation, this is what we want:" ] }, { @@ -301,7 +299,7 @@ "id": "27", "metadata": {}, "source": [ - "Now we can implement it using our oracle:" + "Now we can implement it by defining the `oracle_function`:" ] }, { From babb7668e8aa306478999bd8c0b7fd26d5379302 Mon Sep 17 00:00:00 2001 From: Alexandre Ricardo Date: Fri, 20 Mar 2026 13:57:06 -0300 Subject: [PATCH 4/6] Updating tests --- tests/notebooks/workshops/test_grover_workshop.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/notebooks/workshops/test_grover_workshop.py b/tests/notebooks/workshops/test_grover_workshop.py index 12aa11256..9f80e3487 100644 --- a/tests/notebooks/workshops/test_grover_workshop.py +++ b/tests/notebooks/workshops/test_grover_workshop.py @@ -10,9 +10,6 @@ def test_notebook(tb: TestbookNotebookClient) -> None: # warning: the `qmod` and `qprog` are being overriden too many times - # test models - validate_quantum_model(tb.ref("qmod")) - # test quantum programs validate_quantum_program_size( tb.ref_pydantic("qprog"), From 850db55b899fc74bf482d7ec3362533190af8f42 Mon Sep 17 00:00:00 2001 From: Alexandre Ricardo Date: Fri, 20 Mar 2026 14:01:50 -0300 Subject: [PATCH 5/6] Updating depth in tests --- tests/notebooks/workshops/test_grover_workshop.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/notebooks/workshops/test_grover_workshop.py b/tests/notebooks/workshops/test_grover_workshop.py index 9f80e3487..5955e27bf 100644 --- a/tests/notebooks/workshops/test_grover_workshop.py +++ b/tests/notebooks/workshops/test_grover_workshop.py @@ -14,7 +14,7 @@ def test_notebook(tb: TestbookNotebookClient) -> None: validate_quantum_program_size( tb.ref_pydantic("qprog"), expected_width=30, # actual width: 19 - expected_depth=250, # actual depth: 143 + expected_depth=650, # actual depth: 593 ) # test notebook content From 559459d9d936e67d2a5539529cf8db769c3b0301 Mon Sep 17 00:00:00 2001 From: Alexandre Ricardo Date: Fri, 10 Apr 2026 09:50:45 -0300 Subject: [PATCH 6/6] Updating Grover's algorithm --- .../grover_workshop/grover_workshop.ipynb | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/tutorials/workshops/grover_workshop/grover_workshop.ipynb b/tutorials/workshops/grover_workshop/grover_workshop.ipynb index 759e2424c..8074bae10 100644 --- a/tutorials/workshops/grover_workshop/grover_workshop.ipynb +++ b/tutorials/workshops/grover_workshop/grover_workshop.ipynb @@ -93,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "9", "metadata": {}, "outputs": [], @@ -104,7 +104,7 @@ "@qfunc\n", "def main(x: Output[QArray[QBit]]):\n", " allocate(5, x)\n", - " hadamard_transform(x) # Prepare the minus state" + " hadamard_transform(x) # Prepare the plus state" ] }, { @@ -154,15 +154,15 @@ "id": "13", "metadata": {}, "source": [ - "Some basic guidelines about the modeling language (QMOD):\n", + "Some basic guidelines about the modeling language (Qmod):\n", "\n", - "1. Every quantum variable should be declared, either as a parameter of a funciton e.g. `def main(x: Output[QBit])` or within the function itself with `x = QBit('x')`\n", + "1. Every quantum variable should be declared, either as a parameter of a funciton e.g. `def main(x: Output[QBit])` or within the function itself with `x = QBit()`\n", "\n", "2. Some quantum variables need to be initalized with the `allocate` function. This is required in 2 cases:\n", "* A variable is a parameter of a function with the declaration `Output` like `def main(x: Output[QNum])`\n", - "* A variable that was declared within a function like `a = QNum('a')`\n", + "* A variable that is declared within a function like `a = QNum()`\n", "\n", - "3. For the `main` function, you will always use `Output` for all variables, as the function does not receive any input" + "3. For the `main` function, you should always use `Output` for all variables, as the function does not receive any input" ] }, { @@ -172,7 +172,7 @@ "source": [ "Important tip!\n", "\n", - "You can see all the declarations of the functions with what are their input arguments in the `functions.py` file within the classiq package (or by just right clicking a function and presing `Go To Defintion`)" + "You can see all the declarations of the functions with their parameters in the `functions.py` file within the classiq package (or by just right clicking a function and presing `Go To Defintion`)" ] }, { @@ -188,7 +188,7 @@ "id": "16", "metadata": {}, "source": [ - "Before diving into Grover's algorithm implementation, it is important to analyze its different building blocks. We start by looking at the overall quantum algorithm and then start a step-by-step build of it.\n", + "Before diving into Grover's algorithm implementation, it is important to analyze its different building blocks. We start by looking at the overall quantum algorithm and then start build it step-by-step.\n", "\n", "![Visualization](assets/grover.png)" ] @@ -210,7 +210,7 @@ "id": "18", "metadata": {}, "source": [ - "## Oracle - Reflection around bad states" + "## Oracle - Reflection about bad states" ] }, { @@ -227,8 +227,8 @@ "metadata": {}, "source": [ "Overall we can understand the Grover operator as composed of two reflection operators:\n", - "1. Around the superposition of 'bad states' (i.e. not the solutions)\n", - "2. Around the initial guess state\n", + "1. about the superposition of 'bad states' (i.e. not the solutions)\n", + "2. about the initial guess state\n", "\n", "In this section we will build the first reflection operator which is also the implementation of the oracle function. Geometrically it can be understood in the 2D vector space of $\\text{Span}\\{|{\\psi_{\\text{good}}}\\rangle,|{\\psi_{\\text{bad}}}\\rangle\\}$." ] @@ -246,7 +246,7 @@ "id": "22", "metadata": {}, "source": [ - "The above figure describe geometrically the reflection of some state $|{\\psi}\\rangle=\\alpha|{\\psi_\\text{good}}\\rangle+\\beta|{\\psi_\\text{bad}}\\rangle$ around the state $|{\\psi_\\text{bad}}\\rangle$ such that\n", + "The above figure describe geometrically the reflection of some state $|{\\psi}\\rangle=\\alpha|{\\psi_\\text{good}}\\rangle+\\beta|{\\psi_\\text{bad}}\\rangle$ about the state $|{\\psi_\\text{bad}}\\rangle$ such that\n", "$\\begin{equation}\n", "R(\\alpha|{\\psi_\\text{good}}\\rangle+\\beta|{\\psi_\\text{bad}}\\rangle) = -\\alpha|{\\psi_\\text{good}}\\rangle+\\beta|{\\psi_\\text{bad}}\\rangle\n", "\\end{equation}$\n", @@ -272,7 +272,7 @@ "id": "24", "metadata": {}, "source": [ - "Now we will actually implement the black box, the oracle, that people are speaking about in quantum algorithms. The beauty of Classiq is that we just need to specify its functionality, and Classiq automatically implements it for us.\n", + "Now we turn to actually implementing the oracle. With Qmod quantum expressions, capturing the intent becomes straightforward. The compiler does the heavy-lifting of synthesizing the reversible circuits for us.\n", "For our purposes, we want to find all the states that obey $2a+b=c$ so there are 3 quantum variables. In addition, we want to store our results in the relative phase of such states. In other words, we want:" ] }, @@ -319,7 +319,7 @@ "id": "29", "metadata": {}, "source": [ - "## Diffuser - Reflection around initial guess" + "## Diffuser - Reflection about initial guess" ] }, { @@ -335,7 +335,7 @@ "id": "31", "metadata": {}, "source": [ - "The second part of the Grover operator is the diffuser, which can be viewed as the reflection operator around our initial guess. " + "The second part of the Grover operator is the diffuser, which can be viewed as the reflection operator about our initial guess. " ] }, { @@ -357,7 +357,7 @@ "|{\\psi}\\rangle = \\alpha |{\\psi_0}\\rangle +\\beta |{\\psi_0^{\\bot}}\\rangle\n", "\\end{equation}$\n", "\n", - "Here what we want to implement is to add a $\\pi$ phase for all states that are not equal our initial guess, that is the reflection operator (our diffuser) is defined as:\n", + "Here we want to apply a $\\pi$ phase to all states that are not equal our initial guess. The reflection operator (our diffuser) is defined as:\n", "\n", "$\\begin{equation}\n", "R(\\alpha |{\\psi_0}\\rangle +\\beta |{\\psi_0^{\\bot}}\\rangle) = \\alpha |{\\psi_0}\\rangle -\\beta |{\\psi_0^{\\bot}}\\rangle\n", @@ -369,12 +369,12 @@ "id": "34", "metadata": {}, "source": [ - "In order to implement the reflection around our initial state, we will implement a reflection around the zero state $|{0}\\rangle$, and then squeeze it between two state preparations operators for our initial state $|{\\psi_0}\\rangle$. That is, if $U_{\\psi_0}|{0}\\rangle=|{\\psi_0}\\rangle$ then we will implement the desired $R$ operator with:\n", + "To implement a reflection about the initial state $\\vert \\psi_0 \\rangle$, we instead perform a reflection about the computational zero state $\\vert 0 \\rangle$, conjugated by our state-preparation unitary for the initial state $\\vert \\psi_0 \\rangle$. That is, if $U_{\\psi_0}|{0}\\rangle=|{\\psi_0}\\rangle$ then we will implement the desired $R$ operator with:\n", "$\\begin{equation}\n", "R = U_{\\psi_0}R_0 U_{\\psi_0}^{\\dagger}\n", "\\end{equation}$\n", "\n", - "where $R_0$ is the reflection operator around the zero state:\n", + "where $R_0$ is the reflection operator about the zero state:\n", "$\\begin{equation}\n", "R_0|{x}\\rangle = (-1)^{(x\\ne0)}|{x}\\rangle= (2|{0}\\rangle\\langle{0}|-I)|{x}\\rangle\n", "\\end{equation}$" @@ -393,7 +393,7 @@ "id": "36", "metadata": {}, "source": [ - "We will use the controlled `phase` operation once more. To \"squeeze\" it between two Hadamard transforms, we use `within_apply`:" + "We will use the controlled `phase` operation once more. To conjugate it within Hadamard transforms, we use `within_apply`:" ] }, { @@ -424,8 +424,7 @@ "id": "39", "metadata": {}, "source": [ - "That's it! You've made it! Now is the time to harvest the fruits of the hard work and put everything together!\n", - "Complete your grover operator by implementing the two functions that you've built, first the `oracle_function` and then the `grover_diffuser`:" + "That's it! Complete your grover operator by implementing the two functions that you've built, first the `oracle_function` and then the `grover_diffuser`:" ] }, {