2022年6月29日(水)に開催した「製造業向け量子コンピュータ時代のDXワークショップ~シフト最適化の中身を覗いてみよう~」の当日資料です。
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group Copyright © Fixstars Group【エンジニア向け】製造業向け量子コンピュータ時代のDXセミナー~最適化の中身を覗いてみよう: 最適シフト編~
View Slide
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Corporation www.fixstars.com2本日のAgenda第一部 15:00-15:45➢ はじめに➢ 会社紹介➢ 組合せ最適化・イジングマシン及び製造業における事例の紹介➢ Fixstars Amplifyの紹介第二部 15:50-17:00➢ Amplify活用のワークショップ• 最適シフト質問は随時ZoomのチャットかQ&Aでお願いします対応可能なメンバーが対応いたします
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group本セミナーの位置づけ 弊社では、Amplifyセミナーを「ビジネス向け」と「プログラマー向け」に分けて定期的に開催しております(オンライン・無料)ビジネス向けプログラマー向け(シフト最適化)1/26(1h)プログラマー向け(生産計画最適化)2/24(1.5h)プログラマー向け(経路最適化)3/23(1.5h)4/20(1.5h)ビジネス向けプログラマー向け(シフト最適化)5/25(1h)プログラマー向け(生産計画最適化)6/29(1.5h)プログラマー向け(経路最適化)7/20(1.5h)8/24(1.5h)ビジネス向けプログラマー向け組合せ最適化問題や量子アニーリング・イジングマシンの概要やビジネス上の効果を解説します特定のテーマ・事例を用いて、問題設定、定式化、実装などのポイントを解説します 今後の予定 セミナー紹介ページ: https://amplify.fixstars.com/ja/news/seminar← 本日3
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group本セミナーのゴール⮚ 製造業に組合せ最適化問題がたくさんあることを知る⮚ 組合せ最適化問題を解くためのフレームワークや、問題設定の考え方、目的関数や制約条件の定式化のポイントを理解する⮚ 最適シフト作成のサンプルコードを活用しながら、実際に量子アニーリング・イジングマシンを動かしてみることで、実問題への適用の足掛かりを得る質問は随時ZoomのチャットかQ&Aでお願いします対応可能なメンバーが対応いたします4
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupワークショップの準備 (1)• ご自身のPC (ブラウザ上) でPythonプログラミングを行います。Google colaboratoryを使うので、事前にログイン出来ることを確認をお願いします (Googleアカウントが必要です)• https://colab.research.google.com/• Fixstars Amplify のトークンを取得済みか確認をお願いします。まだの人はFixstarsAmplifyホームページのサインアップよりユーザ登録の上、無料トークンの取得をお願いします (1分で終わります)• https://amplify.fixstars.com/ja/register5
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupワークショップの準備 (2)• お持ちのAmplifyのトークンを用いて、以下のURLにあるサンプルコードが動くか確認をお願いします。サンプルコードは閲覧のみ可能ですので、「ドライブにコピー」の上、ご自身のトークンを入力し、Shift+Enterで実行をしてください (警告が出る場合がありますが、「このまま実行」を選択下さい)• https://colab.research.google.com/drive/1evYBKqKfVrEzrQOa-SWwciROfvqjL8qm?usp=sharingこの部分に、ご自身のトークン番号(32桁)を入力の上、Shift+Enterで実行下さい。ご自身のトークン番号は、Amplify HPよりご確認いただけます• ご自身のトークンを入力の上、以下の結果が出力されればOKです6
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupワークショップの準備 (3)• ワークショップで使うサンプルコードを以下のURLより取得して下さい• それぞれのサンプルコードにご自身のトークンを入力いただく必要があります。それぞれのサンプルコードを「ドライブにコピー」の上、トークンを入力し実行して下さいStep1 https://colab.research.google.com/drive/1M9_fty7GQ4gPVa87lkLA9jdJR2OEqvvC?usp=sharingStep2 https://colab.research.google.com/drive/1ZSgLMVgZTjIGODDy_YIJy29zr827OI6Y?usp=sharingStep3 https://colab.research.google.com/drive/100KyhLplCh9oZ854BEXY0aadeE3IkSWl?usp=sharingStep4 https://colab.research.google.com/drive/1wzffv95TAr1cx7j_WiYnXEWzU1z3uIZE?usp=sharing7
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group Copyright © Fixstars Group会社紹介
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Corporation www.fixstars.com9フィックスターズの概要会社名 株式会社フィックスターズ本社所在地東京都港区芝浦3-1-1 msb Tamachi田町ステーションタワーN 28階設立 2002年8月上場区分 東証プライム(証券コード:3687)代表取締役社長 三木 聡資本金 5億5,446万円(2021年9月現在)社員数(連結) 258名(2021年9月現在)主なお客様キオクシア株式会社株式会社ネクスティ エレクトロニクス株式会社日立製作所キヤノン株式会社グループ体制株式会社フィックスターズ株式会社Fixstars Autonomous Technologies株式会社ネクスティ エレクトロニクスとのJV自動運転向けソフトウェア開発当社完全子会社米国での営業及び開発概要株式会社Sider株式会社Smart Opinion当社完全子会社開発支援SaaS「Sider」を運営当社連結子会社乳がんAI画像診断支援事業を運営Fixstars Solutions, Inc.オスカーテクノロジー株式会社当社連結子会社ソフトウェア自動並列化サービスを提供株式会社Fixstars Amplify当社完全子会社量子コンピューティングのクラウド事業を運営2021/10/1 設立
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Corporation www.fixstars.comソフトウェア高速化サービス (概要)• お客様にソースコードをご提供いただき、• 最適化やアルゴリズムの改良を施して高速化してお返しします当社 お客様オリジナルソースコードのご提供高速化したソースコードコンサルティング 高速化 サポート性能評価ボトルネックの特定アルゴリズムの改良・開発ハードウェアへの最適化レポート作成レポートやコードへのQ&A実製品への組込み支援10
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group11フィックスターズの強みフィックスターズは、コンピュータの性能を最大限に引き出し大量データの高速処理を実現する、高速化のエキスパート集団です。低レイヤソフトウェア技術アルゴリズム実装力各産業・研究分野の知見
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupフィックスターズの量子技術への取り組み122017年日本で初めてD-Wave Systems社と提携2018年NEDOのプロジェクトに採択「イジングマシン共通ソフトウェア基盤の研究開発」2019年SIPの研究開発に参画「光・量子を活用したSociety 5.0実現化技術:光電子情報処理」2021年•2月:量子アニーリングクラウドサービス「Fixstars Amplify」提供開始•10月:子会社Fixstars Amplifyを設立•11月:Q-STAR 量子技術による新産業創出協議会に特別会員として加入次世代技術を先取りし今ある課題の解決を目指す
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group Copyright © Fixstars Group組合せ最適化・イジングマシン及び製造業における事例の紹介
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group量子アニーリング・イジングマシンと組合せ最適化問題量子アニーリング・イジングマシン ⇒ 組合せ最適化問題を解くための専用マシンスケジューリング 配送計画 スマートシティー 集積回路設計膨大な選択肢から、制約条件を満たし、ベストな選択肢を探索する(組合せ最適化問題)参考: 慶應義塾大学 田中宗 准教授 「量子コンピュータ最前線とイジングマシンの可能性」14
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group目的関数:制約条件:解を取得定式化実装問題設定膨大な解候補(組合せ)から最適解を選ぶ・解候補一つ一つの計算は可能・候補数が膨大ですべての解候補を計算できないこれを最小化(最大化)する解が最適解が必ず満たすべき条件数式で表現数式をPythonのプログラムで記述Amplifyが最適解を探索バイキングで最も安く必要な栄養が取れる組合せは?目的関数: 合計金額(最小化)制約条件:炭水化物:300g以上タンパク質:150g以上脂質:50g以上(10g単位) 炭水化物 タンパク質 脂質 金額ごはん 8g 1g 1g 10円パン 7g 1g 2g 12円ハンバーグ 1g 5g 4g 50円焼き魚 1g 8g 1g 35円組合せ最適化問題の例ごはん:380g焼き魚:140g金 額:870円最適メニュー組合せ最適化問題は統一的なフレームワークで解くことができる15
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group製造業における品質管理の4M本日の事例やワークショップの対象ManMachineMethodMaterial4Mとは16
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group組合せ最適化の取り組み事例シフト作成自動化 生産計画最適化 搬送経路最適化倉庫を走行する多数の搬送ロボット (AGV) が効率よく動作するよう、最適経路だけでなく迂回や交差点での待機などリアルタイムに指示します人の直観で時間をかけて行っていた生産ラインや物流倉庫の業務シフト作成を、スキルや勤務時間などの条件をもとに最適化します製造工場の設備の利用割り当て(ジョブショップスケジューリング) を、納期や段取り時間などを考慮して最適化します6/29セミナーのテーマ 7/20セミナーのテーマ 8/24セミナーのテーマ← 本日17
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group最も効率的な作業員のシフトは?チーム編成とタスク割り当て解を取得定式化実装問題設定目的関数:業務要求の満足度最適化・スキルや業務時間平滑化、個人の希望などの考慮制約条件:チーム人数や一人1タスクなどの制約・従来、ホワイトボードを使い、朝・夕30分程度ずつかけて作成・Amplifyが10秒で推薦配置を提示18
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group最も効率的な生産スケジュールは?製品製造工程順序の最適化October 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Machine 1Machine 2Machine 3Machine 4Machine 5Machine 6Machine 7Machine 8Machine 9Machine 10解を取得定式化実装問題設定目的関数:製造完了時間(最小化)・段取り時間、納期、稼動率などを考慮制約条件:機械数や製造可能な製品の制約・従来技術だと数時間かかることも・Amplifyがより高速に妥当な解を提示19
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group20装置1装置2装置xA B BB B B BC E E DA電気機器製造メーカー A社様複数の製品事業部から様々なプリント基盤の注文を受け、生産を行う部門生産する基盤に応じて製造装置の部品や材料を交換する「段取り時間」が必要。段取り時間を考慮した効率的な生産スケジュールを作成したい従来は、専任者が、一日数回・毎回数十分かけて経験に基づいてスケジュールを作成。更なる生産性向上やノウハウ継承のため、生産スケジュール作成の自動化に着手課題次期フェーズでは、Amplifyの活用領域の拡大を検討中!最適化未経験のご担当者様1人がプログラム試作開始から約1~2ヵ月間取り組んでこの効果を実現現在は試作段階で、実運用に向けてモデルを改良中!効果 段取りのための製造装置の停止回数の削減!(10%以上削減)段取り時間段取り時間 段取り時間生産スケジュール作成の時間・コストの大幅な削減!(一日あたり数時間 → 数分)
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group最も効率的な部材や製品の搬送方法は?AGV(無人搬送車)の待ち時間を最小化するリアルタイム経路選択解を取得定式化実装問題設定目的関数:各AGVの次の一定時間の待ち時間(最小化)制約条件:各AGVが衝突しない、など・Amplifyが他のAGVの行動を考慮し、次の最適動作をリアルタイムに指示・最短経路だけでなく、迂回・交差点制御なども実現21
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Amplify: メディア掲載https://amplify.fixstars.com/ja/news/mediaSoftware Design「はじめての量子プログラミング体験」(2021年6月号~2022年1月号まで連載)Interface「Pythonで体験!量子コンピュータ」(2022年6月号)22
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group Copyright © Fixstars GroupFixstars Amplify のご紹介
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group量子コンピュータとその周辺1量子コンピュータIBM/Google/Rigetti/IonQ2イジングマシン富士通/日立/東芝/Fixstars3量子アニーリングD-Wave/NEC1. 量子コンピュータ量子ゲート方式古典汎用コンピュータの上位互換。量子力学の重ね合わせ状態を制御する量子ゲートを操作し、特定の問題を汎用的かつ高速に処理する。2. イジングマシン二値二次多項式模型二次の多変数多項式で表される目的関数の最適化問題 (QUBO) を扱う専用マシン。変数は0,1または±1。統計物理学におけるイジング模型(磁性体の性質を表す模型) に由来。様々な実装により実現されている。3. 量子アニーリング方式量子焼きなまし法イジングマシンの一種であり、量子焼きなまし法の原理に基づいて動作する。量子イジング模型を物理的に搭載したプロセッサで実現する。自然計算により低エネルギー状態が出力される。Amplify AE24
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupクラウドサービス :Fixstars Amplify様々な量子コンピュータ・イジングマシンに対応したアプリケーションを開発出来る、クラウドプラットフォームです。量子コンピューティング時代を見据え、シンプルで効率的な開発環境の提供を目指しています。・・・適用分野 (一例)金融 物流 ライフサイエンス様々なマシンに対応各社が提供する量子アニーリング・イジングマシンをFixstars Amplifyから利用することが出来ます。シンプルで効率的なアプリ開発複雑で専門性の高いプロセスを自動化し、効率的にマシンを使うための学習コストを、圧倒的に低くします。PoCから実問題まで対応大規模問題の入力と高速実行が可能で、PoCや実問題を視野に入れたアプリケーション開発が行えます。すぐに開発を開始可能開発環境と実行環境がセットで提供されるため、すぐに開発を開始することが出来ます。主な特長サービス概要25
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group二次計画問題• 最適化問題の分類• 組合せ最適化問題• 決定変数が離散値 (整数など)• 整数計画問題 (決定変数が整数)• 0-1整数計画問題 (決定変数が二値)• 連続最適化問題• 決定変数が連続値 (実数など)• 量子アニーリング・イジングマシンQuadratic 二次形式Unconstrained 制約条件なしBinary 0-1整数 (二値)Optimization 計画𝑓 = 𝑖𝑄𝑖𝑗𝑞𝑖𝑞𝑗+ 𝑖𝑄𝑖𝑖𝑞𝑖𝑞𝑖∈ 0,1 or 𝑞𝑖∈ ±1問題設定(入力・定数)決定変数(出力・変数)評価値(目的関数)• QUBO模型 (0-1整数二次計画問題)26
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupイジングマシンの実行手順1. 数理モデル検討 解きたい課題の「目的関数」「決定変数」「制約条件」を検討する2. QUBO定式化 (論理)「 2値決定変数+二次形式」で「目的関数」と「決定変数」を記述 (変換) する「制約条件」は直接扱えないので「ペナルティ関数」で表現する3. QUBO定式化 (物理)各マシンの仕様や制限に準拠した形式にQUBO模型を変換する(例: 二次項に制約がある場合は「グラフマイナー埋め込み」問題を解く)4. 入力データの準備 各マシンのSDKやAPI仕様に合わせてQUBO模型 (物理) をデータ化する5. マシンの実行 マシンを実行して出力の変数値やエネルギー値(コスト値)を解析する上記の逆の手順を辿り解きたい課題の「決定変数」を解釈するSWによる支援と自動化27
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Amplify の特長– いつでも 開発環境と実行環境がセットのためすぐにプログラミングと実行が出来る– 誰でも ハードウェアや専門的な知識が不要無料で開発がスタート可能– 高速に 26万ビットクラスの大規模問題の高速処理と高速実行が可能– あらゆる 一般に公開されている全てのイジングマシンを利用可能28
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Amplify クラウドの構成Amplify クラウドが量子アニーリングマシン・イジングマシンの大規模実行環境を提供Amplify SDK で書かれた最適化エンジンは他社製も含め全ての商用イジングマシンで実行可能量子アニーリング・イジングマシン (Amplify AE)組合せ最適化問題の定式化やマシンを高度に操るための最先端の技術や知見をライブラリ化したシンプルなインターフェースを提供専門知識が不要で量子アニーリングイジングマシンを用いた最適化エンジンの開発に取り組めるAmplify SDK組合せ最適化問題を含むアプリケーションはAmplify SDK を用いることで効率的かつ簡便に組合せ最適化の定式化が可能研究・開発ではAmplifyクラウドは無償提供されるため直ぐに開発をスタートできるアプリケーション29
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupAmplify の対応マシンhttps://news.fixstars.com/2361/ : IBM-Q対応 (6/14発表)https://news.fixstars.com/2199/ : グロビ対応 (5/18発表)30
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Amplifyによる課題解決◼ イジングマシンのための革新的な開発環境簡単 多くのマシンに対応 始めやすい✓ SDKをインストールするだけですぐに使える (pip installamplify)✓ ハードウェアの専門知識不要でアプリケーションが開発できる✓ 進化の早いマシンの発展に追従すべての量子アニーリング/イジングマシンに対応✓ 26万ビット級のアニーリングマシン実行環境が利用可能✓ 研究・開発用途には開発環境と実行環境が無償で利用可能✓ 多くのチュートリアル、サンプルコードを整備・拡充多くの人が始めやすい開発プラットフォームを無料で提供https://amplify.fixstars.com31
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group Copyright © Fixstars GroupFixstars Amplify の技術
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupAmplify SDKのワークフロー◼ 従来のプログラミングワークフローとの比較実行方法33
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupAmplify SDKによるシンプルプログラミング数独を解くサンプルアプリ 富士通・デジタルアニーラの設定用コードSDKなし最適化しても200行以上出典: WikipdiaSDKなし59行SDKあり30行程度SDKあり1行日立CMOSアニーリングマシンの設定用コードSDKなし183行SDKあり1行34
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupAmplify による巡回セールスマン問題の実装例35
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupAmplify Annealing Engine• NVIDIA GPU V100/A100 で動作• 独自の並列化シミュレーテッドアニーリングアルゴリズム• WEB経由で計算機能を提供• Amplify SDK の実装を直ぐに実行可能• 社会課題への取り組み・PoC・検証が加速• 商用マシンでは最大規模かつ最高速レベル• 128Kビット (全結合) / 256Kビット超 (疎結合)Amplify Cloud36
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupAmplify Annealing Engine◼ 実問題やPoCを視野に入れたアプリケーション開発にも対応研究・開発利用において無償提供 37
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupAmplify 標準提供マシン最先端の量子技術最先端の並列化技術NVIDIA A100/V100最大26万ビット以上D-Wave Advantage5000量子ビット出典:https://www.nvidia.com/ja-jp/data-center/dgx-2/38
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Corporation www.fixstars.com39ベーシックプラン研究・開発用途の無料プラン(現Developerプランの後継)スタンダードプラン実運用レベルで使いたい人は(現Businessプランの後継)プレミアムプラン最高性能で計算したい人は研究・開発フェーズでの利用実運用フェーズでの利用サポート ベーシック スタンダード プレミアム利用料金 無料 / 1ユーザー 月額10万円 / 1ユーザー月額20万円 / 1ユーザー月額60万円 / 5ユーザー計算環境 スモール ミディアム ラージNew定式化や実装を手厚く支援します!Amplifyクラウド利用料料金のご案内開発支援サービス(個別見積り)コンサル・システム開発等数百万円~数千万円月額利用料百万円~
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Corporation www.fixstars.comセミナー・トレーニングのご案内40無料セミナー・ワークショップ企業向けプライベートトレーニングお客様が抱える実際の課題やデータを使ったカスタムメイドのトレーニングです!ビジネス向け、エンジニア向けに分けて毎月開催しています!お客様の実際に課題解決をご支援するために、無料セミナーや有償トレーニングを提供していますhttps://amplify.fixstars.com/ja/news/seminar本日次回9月予定
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group Copyright © Fixstars GroupAmplify活用のワークショップ・最適シフト作成
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group42最適シフト作成【問題】業務で求められる役割・役職・スキルと個人の能力や要求を考慮した最適シフトとは業務要求各従業員情報・・・要求管理者数 要求スキル量(各従業員が持つスキル値の合計)ライン 責任者 主任技師 合計 前工程 後工程 組立て 合計LineA 1 1 2 8 4 5 17LineB 1 1 2 6 9 3 18LineC 1 1 2 7 6 5 18合計 3 3 6 21 19 13 53要求配置(0=NG, 1=OK, 2=要求)従業員ID LineA LineB LineC0 1 0 01 1 1 12 1 2 023 1 1 124 1 1 0担当可能役職 スキル値(1=初級, 2=中級, 3=上級)従業員ID 責任者 主任技師 技師 前工程 後工程 組立て0 1 1 1 3 3 31 0 1 1 3 3 22 0 0 1 2 1 0・・・・・・23 0 0 1 0 0 224 0 0 1 1 0 1マッチング
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group43① 従業員は同時に1ラインのみに配置可② 各ラインが要求する管理職を配置することなど目的関数:制約条件:最適シフト作成解を取得定式化実装問題設定 各ラインの要求を満たすシフトの作成複数の要求のバランス(充足率の平均の最大化、分散の最小化、配置要求とのマッチングの最大化)LineA LineB LineC 充足率
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group自動配置(アニーリング)手動配置一部事前配置自動配置結果の微調整各種条件を満たすように、未配置のメンバーを一括割り当て事例紹介: 人員配置の効率化・自動最適化関連インタビュー動画(4:00~): https://www.youtube.com/watch?v=UyvomUej2Xw充足率の平均の最大化、充足率の分散の最小化を最適化する問題をイジングマシンで実行44
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupワークショップ: 問題設定15名の従業員を5名ずつ3つの生産ラインへ振り分けます。各従業員は、各ラインに対するスキル値を持ちます。各ラインに配置された従業員のスキル値 (ラインスキル値) の合計がなるべく高く、また、各ラインのラインスキル値のばらつきが少ない、という2つの目的のバランスの取れたシフトの作成を目指します。全てを一度にやるのは難しいので4つのステップに分けてアルゴリズムの完成を目指しますAライン(5名)Bライン(5名)Cライン(5名)組合せは約1,400万通り!45
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupワークショップ: 試しに人の手でやってみましょう46
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupワークショップ: 4 Stepまず、2つの制約だけを考慮して配置シフトを求めます制約➀: 従業員は同時に1つの製造ラインのみに配置が可能制約②: 各ラインの配置人数が5名ずつになることStep1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的➀を追加し、複数の解の候補から目的を実現するシフトを求めます解の候補多数ありStep1Step2Step2に「ラインスキル値のばらつきを最小化」という目的②を追加して、2つの目的を同時に実現するシフトを求めますStep3Step4Step3に目的➀と目的②の重みを調整する「パラメーター」を追加し、最適なバランスのシフトを作成します15名の従業員を5名ずつ3つの生産ラインへ振り分けます。各従業員は、各ラインに対するスキル値を持ちます。各ラインに配置された従業員のスキル値 (ラインスキル値) の合計がなるべく高く、また、各ラインのラインスキル値のばらつきが少ない、という2つの目的のバランスの取れたシフトの作成を目指します。全てを一度にやるのは難しいので4つのステップに分けてアルゴリズムの完成を目指します47
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupまず、2つの制約だけを考慮して配置シフトを求めますStep1Step1のサンプルコードのレビュー(尚、本ワークショップでは、最適化のコードにフォーカスし、下準備や可視化のコードの詳細は割愛します)48
Fixstars Corporation www.fixstars.comCopyright © Fixstars Groupまず、2つの制約だけを考慮して配置シフトを求めますStep1決定変数の準備実装イジングマシンによる計算で最適な(0,1)の組合せを探す従業員3はline_Cに配置BinaryPoly型(15×3)= 45 [qbit]1: 配置0: 非配置決定変数49
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group定式化𝑙3𝑞𝑖,𝑙= 1𝑖15𝑞𝑖,𝑙= 5制約②: 各ラインの配置人数が要求人数(5名)と一致すること → equal_to制約 (等式制約)Step1制約➀: 従業員は同時に1つの製造ラインのみに配置が可能 → one_hot制約まず、2つの制約だけを考慮して配置シフトを求めます50
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep1実装まず、2つの制約だけを考慮して配置シフトを求めますhttps://amplify.fixstars.com/ja/demo【補足】制約条件の取り扱いに関する詳細は、こちらにあるチュートリアルも合わせてご参照下さい51
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep1求解無料版は1ジョブ10秒まで設定可。スタンダードプランでは1分、プレミアムプランでは10分まで設定可能Amplify AEまず、2つの制約だけを考慮して配置シフトを求めます• modelに格納してマシンに投げます• 制約条件だけを与えた場合、制約条件を満たす解を探してきてくれます52
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep1結果の取得可視化確認まず、2つの制約だけを考慮して配置シフトを求めます53同じ人が複数のラインに配置されることなく、各ラインに5人ずつ配置するという二つの制約を満たすシフトを作ることができました。但し、解の候補はたくさんあり、最適化の余地も大きいそうです
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep2 Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的➀を追加し、複数の解の候補から目的を実現するシフトを求めますここでは、工場全体のアウトプットの最大化を目指し、各従業員をできるだけ高いスキル値を持つラインへ配置することを目指しますAライン(5名)ラインスキル値Bライン(5名)Cライン(5名)全ラインのスキル値の合計これを最大化したい!ラインスキル値ラインスキル値54
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep2のサンプルコードのレビューStep2 Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的➀を追加し、複数の解の候補から目的を実現するシフトを求めます55
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep2定式化各列の要素同士の掛け算の和 ⇒ 各ラインのラインスキル値Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的➀を追加し、複数の解の候補から目的を実現するシフトを求めます𝑠𝑘𝑖𝑙𝑙_𝑠𝑐𝑜𝑟𝑒 = 𝑙3𝑖15𝑞𝑖,𝑙∙ 𝑠𝑖,𝑙決定変数目的➀: 全ラインの合計スキル値の最大化56
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep2実装Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的➀を追加し、複数の解の候補から目的を実現するシフトを求めます制約条件には適切な値の重みを設定する必要があります。典型的なスキル値より大きくしておく必要があるため 150 としました: 追加コードイジングマシンは、このobjectiveの値が最小になる組合せを探します (全ラインの合計スキル値は大きいものを選びたいので、skill_scoreにマイナスをつけたものをobjectiveとしています)57
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep2結果の取得可視化確認Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的➀を追加し、複数の解の候補から目的を実現するシフトを求めますばらつき大58二つの制約を満しながら、全ラインの合計スキル値が最大化されたシフトを作ることができました (Step1の全ラインの合計スキル値は1,265) 。但し、ライン間のスキル値のばらつきが大きいので、更なる最適化をかけたい状況です
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep3 Step2に「ラインスキル値のばらつきを最小化」という目的②を追加して、2つの目的を同時に実現するシフトを求めます目的②: ラインスキル値のばらつき (分散)を最小化定式化 実装𝑣𝑎𝑟𝑖𝑎𝑛𝑐𝑒 =σ𝑙3 σ𝑖15 𝑞𝑖,𝑙∙ 𝑠𝑖,𝑙23−σ𝑙3 σ𝑖15 𝑞𝑖,𝑙∙ 𝑠𝑖,𝑙32: 追加コードばらつきは小さい方が選ばれるようにしたいのでプラスで足します59
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group結果の取得可視化確認Step3 Step2に「ラインスキル値のばらつきを最小化」という目的②を追加して、2つの目的を同時に実現するシフトを求めますばらつきなし!60二つの制約を満しながら、全ラインの合計スキルが高く、各ライン間のばらつきが全くないシフトを作ることができました(Step1の全ラインの合計スキル値は1,265で、Step2は1,475)。最後に、目的➀と目的②のバランスをチューニングして最適なシフトの作成を目指します。
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep4 Step3に目的➀と目的②の重みを調整する「パラメーター」を追加し、最適なバランスのシフトを作成します実装: 追加コード61
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group最適なバランスのシフトが完成しました!結果の取得可視化確認Step4 Step3に目的➀と目的②の重みを調整する「パラメーター」を追加し、最適なバランスのシフトを作成しますばらつき極小!62
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupStep1スキル値合計: 1,265ワークショップ: おさらい制約のみからスタートして、複数の目的を加え、重みを調整することで最適なバランスのシフトを作りましたスキル値最大化スキル値ばらつき調整重みを調整制約Step2スキル値合計: 1,475Step3スキル値合計: 1,440Step4スキル値合計: 1,460制約スキル値最大化制約スキル値最大化スキル値ばらつき調整制約63
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group類似の実アプリの紹介64
Fixstars Corporation www.fixstars.comCopyright © Fixstars GroupFixstars Amplify: オンラインデモ & チュートリアルページhttps://amplify.fixstars.com/ja/demo65
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group次回のセミナーのご案内 弊社では、Amplifyセミナーを「ビジネス向け」と「プログラマー向け」に分けて定期的に開催しております(オンライン・無料)ビジネス向けプログラマー向け(シフト最適化)1/26(1h)プログラマー向け(生産計画最適化)2/24(1.5h)プログラマー向け(経路最適化)3/23(1.5h)4/20(1.5h)ビジネス向けプログラマー向け(シフト最適化)5/25(1h)プログラマー向け(生産計画最適化)6/29(1.5h)プログラマー向け(経路最適化)7/20(1.5h)8/24(1.5h)ビジネス向けプログラマー向け組合せ最適化問題や量子アニーリング・イジングマシンの概要やビジネス上の効果を解説します特定のテーマ・事例を用いて、問題設定、定式化、実装などのポイントを解説します 今後の予定 セミナー紹介ページ: https://amplify.fixstars.com/ja/news/seminar← 次回66
Fixstars Corporation www.fixstars.comCopyright © Fixstars Group Copyright © Fixstars GroupQ&A