Skip to content

Instantly share code, notes, and snippets.

@minaminao
Created March 22, 2019 07:26
Show Gist options
  • Save minaminao/61044c3fa8b1ea736646d4e086b5825f to your computer and use it in GitHub Desktop.
Save minaminao/61044c3fa8b1ea736646d4e086b5825f to your computer and use it in GitHub Desktop.
演習 彩色
Display the source blob
Display the rendered blob
Raw
{
"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