4/14(日) 足・靴・木型研究会「第2回研究集会」を開催します☆彡

21-30. QUBOアニーリング実力テスト2(ピタゴラス数)

やること

QUBOアニーリングのDiscordコミュニティで面白い問題が共有されました。アニーリングでピタゴラス数を見つける、というものです。

ピタゴラス数は、x2 + y2 = z2 を満たす自然数 (x, y, z) の組です。

ピタゴラス数(英: Pythagorean triple)とは、a2 + b2 = c2 を満たす3つの自然数の組 (a, b, c) のことである。これはピタゴラスの定理に由来しており(中略)最小のピタゴラス数は (3, 4, 5) である。

Wikipedia「ピタゴラス数」

「qubomaster」認定試験にちょうど良いので、実力テスト2として調整しました。腕に自信がある方は挑戦してみてください。認定試験として挑戦する場合は別途その指示に従ってください。

TYTANについて

「TYTAN」はOSSのアニーリングSDKです。

GitHub - tytansdk/tytan: Python SDK for large QUBO problems
Python SDK for large QUBO problems. Contribute to tytansdk/tytan development by creating an account on GitHub.

筆者はチュートリアルコースを担当しています。

GitHub - tytansdk/tytan_tutorial
Contribute to tytansdk/tytan_tutorial development by creating an account on GitHub.

discordコミュニティもあるので気軽に質問できます。どなたでも参加できます → https://discord.gg/qT5etstPW8

チュートリアルを終えて試験に合格するとblueqat社が認定する「qubomaster」という資格が与えられます。qubomasterになると(blueqatサイト上で)認定バッジが付与され、有償業務の受託可能者リストに入ります。

blueqat club qubomaster認定試験に向けての各種ポイント by Yuichiro Minato | blueqat
blueqat clubというのがありまして、認定試験を受けて合格するとblueqat.com上でバッジがもらえます。現在量子コンピュータ業界は人材不足でして、かといって就職するほどの需要はないので、間をとってギグワークやパートタイム、単発仕事が多いです。 特に最初は初心者・初級者向けに量子コンピュータの説明...

おさらい

QUBOで設定できる条件式についてはこちらの記事にまとめてあります。暗記する必要はありませんが概要は把握しておくと良さそうです。

これまでのQUBOアニーリング系の記事はサイドバーの「カテゴリ一覧」→「量子コンピュータ」から絞れます。

量子コンピュータ
「量子コンピュータ」の記事一覧です。

実力テスト問題2

ピタゴラス数は、x2 + y2 = z2 を満たす自然数 (x, y, z) の組です。参考→ Wikipedia「ピタゴラス数」

(x, y, z) ともに20未満のピタゴラス数(原始ピタゴラス数)をすべて求めてください。

想定される解は

  • 原始ピタゴラス数:(3, 4, 5), (5, 12, 13), (8, 15, 17)
  • それらの倍数:(6, 8, 10), (9, 12, 15)

の5組で、少なくとも原始ピタゴラス数の3組が見つかれば良いこととします。また、xとyは入れ変わっても差し支えありません。

提出方法、注意事項など

解答は、そのまま実行するだけのpythonコードを「.py」または「.ipynb」のファイル形式で以下フォームから提出してください。すぐに自動返信メールが届きます。

メールアドレス(必須)

提出ファイル(必須)

Discordネームまたはニックネーム(必須)

※100KBまでの.py, .ipynbファイルのみ受け付けます
※受付完了メールが自動送信されます

▼注意事項

  • テキスト欄やコメントアウトにより最低限の説明や思考過程を含めてください
  • その際、チュートリアルの「おすすめコース」のどれと関連があるかにも触れてください
  • 説明のための図は必ずしも必要ありません
  • アニーリングのソルバーには必ずTYTANパッケージを使用してください
  • 必ずしも1回の実行で正解が得られる必要はなく、正解が得られることが期待できるコードであれば問題ありません

▼合格条件

  • QUBO条件式が妥当であること
  • 説明や思考過程が妥当であること
  • 十分な可読性のPythonコードであること
  • チュートリアル「おすすめコース」を把握していること
タイトルとURLをコピーしました