Created
March 22, 2019 07:26
-
-
Save minaminao/61044c3fa8b1ea736646d4e086b5825f to your computer and use it in GitHub Desktop.
演習 彩色
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 演習 彩色" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "(q0+q6+q12-1)^2+(q1+q7+q13-1)^2+(q2+q8+q14-1)^2+(q3+q9+q15-1)^2+(q4+q10+q16-1)^2+(q5+q11+q17-1)^2+(q0+q1+q2+q3+q4+q5-q6-q7-q8-q9-q10-q11)^2+(q6+q7+q8+q9+q10+q11-q12-q13-q14-q15-q16-q17)^2\n", | |
| "[[ 0. 2. 2. 2. 2. 2. 0. -2. -2. -2. -2. -2. 2. 0. 0. 0. 0. 0.]\n", | |
| " [ 0. 0. 2. 2. 2. 2. -2. 0. -2. -2. -2. -2. 0. 2. 0. 0. 0. 0.]\n", | |
| " [ 0. 0. 0. 2. 2. 2. -2. -2. 0. -2. -2. -2. 0. 0. 2. 0. 0. 0.]\n", | |
| " [ 0. 0. 0. 0. 2. 2. -2. -2. -2. 0. -2. -2. 0. 0. 0. 2. 0. 0.]\n", | |
| " [ 0. 0. 0. 0. 0. 2. -2. -2. -2. -2. 0. -2. 0. 0. 0. 0. 2. 0.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. -2. -2. -2. -2. -2. 0. 0. 0. 0. 0. 0. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 1. 4. 4. 4. 4. 4. 0. -2. -2. -2. -2. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 1. 4. 4. 4. 4. -2. 0. -2. -2. -2. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 1. 4. 4. 4. -2. -2. 0. -2. -2. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 4. 4. -2. -2. -2. 0. -2. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 4. -2. -2. -2. -2. 0. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. -2. -2. -2. -2. -2. 0.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2. 2. 2. 2. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2. 2. 2. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2. 2. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]\n", | |
| "[[ 0. 12. 2. 12. 2. 2. 0. -2. -2. -2. -2. -2. 2. 0. 0. 0. 0. 0.]\n", | |
| " [ 0. 0. 12. 2. 12. 2. -2. 0. -2. -2. -2. -2. 0. 2. 0. 0. 0. 0.]\n", | |
| " [ 0. 0. 0. 2. 2. 12. -2. -2. 0. -2. -2. -2. 0. 0. 2. 0. 0. 0.]\n", | |
| " [ 0. 0. 0. 0. 12. 2. -2. -2. -2. 0. -2. -2. 0. 0. 0. 2. 0. 0.]\n", | |
| " [ 0. 0. 0. 0. 0. 12. -2. -2. -2. -2. 0. -2. 0. 0. 0. 0. 2. 0.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. -2. -2. -2. -2. -2. 0. 0. 0. 0. 0. 0. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 1. 14. 4. 14. 4. 4. 0. -2. -2. -2. -2. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 1. 14. 4. 14. 4. -2. 0. -2. -2. -2. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 1. 4. 4. 14. -2. -2. 0. -2. -2. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 14. 4. -2. -2. -2. 0. -2. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 14. -2. -2. -2. -2. 0. -2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. -2. -2. -2. -2. -2. 0.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 12. 2. 12. 2. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 12. 2. 12. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2. 2. 12.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 12. 2.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 12.]\n", | |
| " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "from blueqat import opt\n", | |
| "a = opt.opt()\n", | |
| "\n", | |
| "# alpha = 1\n", | |
| "# beta = 1\n", | |
| "gamma = 10\n", | |
| "s = \"\"\n", | |
| "\n", | |
| "for i in range(6):\n", | |
| " s += f\"+(q{i}+q{i+6}+q{i+12}-1)^2\"\n", | |
| "for k in range(2):\n", | |
| " t = \"\"\n", | |
| " for i in range(6):\n", | |
| " if i != 0:\n", | |
| " t += \"+\"\n", | |
| " t += f\"q{i + k*6}\"\n", | |
| " for i in range(6):\n", | |
| " t += f\"-q{i+(k+1)*6}\"\n", | |
| " s += f\"+({t})^2\"\n", | |
| "\n", | |
| "\n", | |
| "print(s[1:])\n", | |
| "a.qubo = opt.optm(s[1:], 18)\n", | |
| "print(a.qubo)\n", | |
| "\n", | |
| "# optm は係数で重み付けができない\n", | |
| "\n", | |
| "di = [1, 0]\n", | |
| "dj = [0, 1]\n", | |
| "for c in range(3):\n", | |
| " for i in range(2):\n", | |
| " for j in range(3):\n", | |
| " for k in range(2):\n", | |
| " ni = i + di[k]\n", | |
| " nj = j + dj[k]\n", | |
| " if 0 <= ni < 2 and 0 <= nj < 3:\n", | |
| " a.qubo[c * 6 + i * 3 + j][c * 6 + ni * 3 + nj] += gamma\n", | |
| "print(a.qubo)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Counter({'100010010001001100': 1, '100010001100010001': 1, '001100100010010001': 1, '010001001100100010': 1, '010001100010001100': 1})\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "res = a.sa(shots=5)\n", | |
| "counter = opt.counter(res)\n", | |
| "print(counter)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "012\n", | |
| "201\n", | |
| "\n", | |
| "021\n", | |
| "102\n", | |
| "\n", | |
| "120\n", | |
| "012\n", | |
| "\n", | |
| "201\n", | |
| "120\n", | |
| "\n", | |
| "102\n", | |
| "210\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "for r in list(counter):\n", | |
| " for i in range(2):\n", | |
| " for j in range(3):\n", | |
| " for c in range(3):\n", | |
| " if r[c * 6 + i * 3 + j] == '1':\n", | |
| " print(c, end='')\n", | |
| " print()\n", | |
| " print()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "0: red, 1: blue, 2: yellow" | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3", | |
| "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.7.2" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment