はじめに
最近話題のAmazonの生成AI「Amazon Q」を使って,数理最適化を体験できるWebアプリケーションを作ってみた.今回は**巡回セールスマン問題(TSP)**を題材にしたインタラクティブなクイズゲームである.
WSL2にAmazon Qをセットアップする手順から,実際のアプリケーション開発までを紹介する.
目次
WSL2環境の準備
WSL2のインストール
まず,Windows 11でWSL2を有効化する.
# PowerShellを管理者権限で実行
wsl --install
Ubuntuを起動する.
# Ubuntuの起動
wsl -d Ubuntu
- 初期起動時はユーザアカウント作成(ユーザ名,パスワード)およびログインが必要
Amazon Qのインストール
Amazon Q Developer CLI のインストール
# AWS CLI v2のインストール
curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
unzip q.zip
./q/install.sh
設定後,ブラウザが開いてAWSコンソールでの認証が求められる.
巡回セールスマン問題クイズの開発
Amazon Qの起動
# Amazon Qの起動
q chat
Amazon Qを活用した開発プロセス
Amazon Qを起動すると,プロンプトが表示される.
ここに,作成したいゲームの要件を入力する.
1. アルゴリズムの実装相談
プロンプト例:
巡回セールスマン問題を題材にした,最短経路を当てる4択クイズを作成したい.
デフォルトでは都市数を10ヵ所,ランダムに都市を配置しつつ,
任意の都市数,都市配置を設定できるような選択肢も与えたい.
クイズの4つの選択肢は,距離がわからないように可視化した経路を出力したい.
都市数が10以下の場合は厳密解,それ以上は近似解を使い分けたい.
実際の動作例
巡回セールスマン問題クイズからWebブラウザで動作する.
10都市の問題(厳密解)
10都市の問題(厳密解)に対する解答
まとめ
Amazon QとWSL2を組み合わせることで,Webアプリケーションを比較的簡単に作成できた.
LLM単体の場合,細かな指示やstep by stepでの指示が必要な場合が多いが,Amazon Qの場合,レスポンスに少し時間を要するが,指示した結果,意図した結果を出してくれる.
今後は,以下のようなことも試行していきたい.
今後の展望
- 他の最適化問題: ナップサック問題,グラフ彩色問題
- 機械学習との組み合わせ: 強化学習による解法
- リアルタイム可視化: アルゴリズムの動作過程を表示