量子時代のプログラミングセミナー～ Fixstars Amplify で実装するシフト最適化 ～

14:00 開始予定
マイク、カメラをOFFにしてしばらくお待ちください
Zoomの表示名は、セミナー申し込み時のお名前としていただけますようご協力お願いいたします

Fixstars Amplify ではさまざまな専門性を持つエンジニアを募集しています
詳細は https://amplify.fixstars.com/ja/careers まで
Copyright© Fixstars Group

量子時代のプログラミングセミナー～ Fixstars Amplifyで実装するシフト最適化 ～Copyright© Fixstars Group本日のAgenda
第一部 14:00-14:45
•
•
•
•
•

はじめに
会社紹介
組合せ最適化事例のご紹介
Fixstars Amplifyのご紹介
ワークショップ事前準備のご連絡

第二部 14:50-16:00•

Fixstars Amplifyを用いた最適化ワークショップ• シフト最適化•

Wrap Up 及び Q&A

Copyright© Fixstars Group

3

はじめに

Copyright© Fixstars Group

本セミナーのゴール⚫ 身の回りには組合せ最適化問題がたくさんあることを知る⚫ 組合せ最適化問題を解くための専用マシン（イジングマシン）があることを知り、イジ
ングマシンを使って問題を解くための統一的なフレームワークや、問題設定の考え方、目的関数や制約条件の定式化のポイントを理解する⚫ ワークショップを通して、実際に量子アニーリング・イジングマシンを動かしてみることで、実問題への適用の足掛かりを得る

質問は随時Zoomのチャットか Q&A でお願いします

Copyright© Fixstars Group

5

会社紹介

Copyright© Fixstars Groupフィックスターズの基本情報
会社名

株式会社フィックスターズ

本社所在地

東京都港区芝浦3-1-1 msb Tamachi
田町ステーションタワーN 28階

設立

2002年8月

資本金5億5,446万円

社員数（連結）263名（2022年9月現在）
キオクシア株式会社
ルネサスエレクトロニクス株式会社

上場区分

東証プライム（証券コード：3687）

代表取締役社長三木

主なお客様

トヨタグループ（トヨタ自動車株式会社・
豊田通商株式会社・株式会社デンソー）
みずほ証券株式会社聡

キヤノン株式会社

グループ会社
Fixstars Solutions, Inc.

2021/10/1 設立(株)Fixstars Autonomous Technologies
株式会社ネクスティ エレクトロニクスとのJV
自動運転向けソフトウェアを開発(株)Fixstars Amplify

完全子会社
米国での営業及び開発を担当(株)Sider(株)Smart Opinion

オスカーテクノロジー(株)完全子会社
開発支援SaaS「Sider」を運営

連結子会社
乳がんAI画像診断支援事業を運営

連結子会社
ソフトウェア自動並列化サービスを提供

Copyright© Fixstars Group

完全子会社
量子コンピューティングのクラウド事業を運営

7

フィックスターズのサービス概要
お客様専任のエンジニアが直接ヒアリングを行い、高速化を実現するために乗り越えるべき課題や問題を明確にしていきます。
高速化のワークフロー

コンサルティング

高速化

サポート

先行技術調査アルゴリズムの改良・開発

レポートやコードへのQ&A

性能評価・ボトルネックの特定

ハードウェアへの最適化

実製品への組込み支援

レポート作成Copyright© Fixstars Group8

フィックスターズの量子技術への取り組み
次世代技術を先取りし今ある課題の解決を目指す

2018年
NEDOのプロジェクトに採択「イジングマシン共通ソフトウェア
基盤の研究開発」

2023年

2022年

9月: 新製品 Fixstars Amplify Scheduling Engine リリース
11月: Toshiba SQBM+を標準マシンに追加
12月: 累計実行回数3,000万回突破

5月: Fixstars Amplify がGurobi、IBM-Quantumをサポート
7月: 累計実行回数1,000万回突破

2021年

2月: 量子アニーリングクラウドサービス「Fixstars Amplify」提供開始
10月: 子会社Fixstars Amplifyを設立
11月: Q-STAR 量子技術による新産業創出協議会に特別会員として加入

2017年

日本で初めてD-Wave Systems社と提携

2019年
SIPの研究開発に参画「光・量子を活用したSociety 5.0実現化技術：光電子情報処理」
Copyright© Fixstars Group9

量子コンピューティング事業
多様なハードウェアでのソフトウェア高速化サービスに加え、量子コンピュータ活用支援とシステム開発を提供しています。

お客様の課題

ご支援内容

量子コンピューティングが課題の解決に役立つか確信が持てない

セミナー・トレーニング
量子コンピュータの研究動向や活用事例、実際の利用方法等

クラウド実行環境のご提供

量子コンピューティングの検討をどう進めたら
良いかわからない

クラウド経由での量子コンピュータ利用サービスを提供

コンサルティング
セットアップ支援、処理の分割や変換等のコンサル作りたいアプリケーションがあるが、開発がソフトウェア高速化・開発支援サービス

難しい

量子コンピュータを組み合わせてシステムの高速化を実現
Copyright© Fixstars Group10産業界での活動
Q-STAR 量子技術による新産業創出協議会
量子関連の産業・ビジネスの創出を目的として設立された協議会

Q-STAR/NEDO 量子テストベッド*にAmplifyが採用*国内の量子アニーリングマシンを統一されたインターフェースで利用できるクラウド基盤の開発・検証プロジェクト

代表取締役会長

三木が参加

出展：一般社団法人

Fixstars Amplify
メンバーが参加

量子技術による新産業創出協議会 https://qstar.jp/

Copyright© Fixstars Group※構想時点での図です。変更される場合があります11

組合せ最適化事例のご紹介

Copyright© Fixstars Group

量子アニーリング・イジングマシンと組合せ最適化問題
膨大な選択肢から、制約条件を満たし、ベストな選択肢を探索する（組合せ最適化問題）

スケジューリング

配送計画

スマートシティー

集積回路設計

参考: 慶應義塾大学 田中宗 准教授 「量子コンピュータ最前線とイジングマシンの可能性」

量子アニーリング・イジングマシン ⇒ 組合せ最適化問題を解くための専用マシン
Copyright© Fixstars Group13

組合せ最適化問題を解く統一的なフレームワーク
問題設定

定式化

組合せ最適化問題の例

どのような状況で何を最小化 (最大化) したいのか
膨大な解候補（組合せ）から最適解を選ぶ

決定変数を使って目的関数と制約条件を数式で表現

バイキングで最も安く必要な栄養が取れる組合せは？
(10g単位)

炭水化物

タンパク質

脂質

金額

ごはん

8g

1g

1g

10円

決定変数: 0か1を取る変数

パン

7g

1g

2g

12円

目的関数: これが最小になる解 (決定件数の組合せ) を探したい

ハンバーグ

1g

5g

4g

50円

制約条件: 解が必ず満たすべき条件

焼き魚

1g

8g

1g

35円

目的関数: 合計金額（最小化）

実装

解を取得

数式をPythonのプログラムで記述

制約条件:

Fixstars Amplify AE（イジングマシン）が最適解を探索最適メニューCopyright© Fixstars Group

炭水化物：300g以上
タンパク質：150g以上
脂質：50g以上
ごはん：380g
焼き魚：140g
金 額：870円

14組合せ最適化の取り組み事例
シフト作成自動化

生産計画最適化

経路指示リアルタイム制御

人の直観で時間をかけて行っていた生産ラインや物流倉庫の業務シフト作成を、スキル
や勤務時間などの条件をもとに最適化します製造工場の設備の利用割り当て(ジョブショップスケジューリング) を、納期や段取り時間などを考慮して最適化します

倉庫を走行する多数の搬送ロ
ボット (AGV) が効率よく動作するよう、最適経路だけでなく迂回や交差点での待機などリアルタイムに指示します

本日のセミナーのテーマ

4/24のセミナーのテーマ

TBD

Copyright© Fixstars Group15

最適配置自動化サービス（物流梱包業務のDX）
https://www.fixstars.com/ja/services/cases/amplify-bellemaison
業務内容：
梱包業務担当者（１チーム３名）をコンベア前のブースに割り当て
従来の方法：
前日夕方に、翌日の予測出荷目標数と出勤予定に基づいて、３人程度のリーダーが相談し数時間をかけて決定課題：
公平になるよう、様々な配慮を行う必要があり、割り当て担当者に心理的負担がかかっていた

成果： → 2022年10月より実稼働開始！
アニーリング技術を活用して自動化・デジタル化• 作業時間 → 15分程度に• 心理負担 → ほぼゼロに

梱包
効率
最大化
チーム
3名

上流下流
ローテーシ
ョン

公平
感

勤務時間が
近い

相性
Good
/NG

国家プロジェクトSIP「光・量子を活用したSociety 5.0実現化技術」の一環として、
住友商事、SCSK、ベルメゾンロジスコと、
2019年より共同研究

Copyright© Fixstars Group手動配置
一部事前配置
自動配置結果の微調整

自動配置（アニーリング）
各種条件を満たす形で未配置のメンバーを一
括割り当て

割当業務の
時間削減

担当者の
心理的負担低減

配置情報の
デジタル化

Smileboard
Connectと連携※Smileboard Connect: 住友商事様開発の物流業務可視化サービス

生産計画最適化 (電気機器製造メーカー A社様)
複数の製品事業部から様々なプリント基板の注文を受け、生産を行う部門
段取り時間

課
題

生産する基板に応じて製造装置の部品や材料を交換する「段取り時間」が必要。段取り時間を考慮した効率的な生産スケジュールを作成したい
従来は、専任者が、一日数回・毎回数十分かけて経験に基づいてスケジ
ュールを作成。更なる生産性向上やノウハウ継承のため、生産スケジュール作成の自動化に着手

装置1

A

A

装置2

B

B

B
B

B

段取り時間

装置x

C

E

B

段取り時間

E

D

生産スケジュール作成の時間・コストの大幅な削減！
効
果(一日あたり数時間 → 数分)

段取りのための製造装置の停止回数の削減！
(10%以上削減)

最適化未経験のご担当者様1人がプログラム試作開始から約1～2ヵ月間取り組んでこの効果を実現
現在は試作段階で、実運用に向けてモデルを改良中！

次期フェーズでは、Amplifyの活用領域の拡大を検討中！

Copyright© Fixstars Group

17

生産計画最適化 (機器製造メーカー B社様)
各製品の生産数に応じて製造人員数の計画をする部門

効
果

必要人員数と日毎の人員数の増減の最小化！
計画立案の業務負荷削減・属人化解消！

人員数

課
題

少量多品種の機器を製造している。それぞれの製品は生産が開始できる時期や納期が決まっていて、各製品をどの生産ラインでいつ製造するかによって日々の必要人員数が変化する。人員数と日毎の人員数の増減を最小化したい。
従来は、専任者が2名で日々計画を立案・修正していたが、効率的な生産計画の立案、業務負荷削減、属人化解消のため自動化に着手。

製品 A

調整▼納期

調整

1000台

▼納期

製品 B

2000台
納期▼

製品 C

7000台
順番入れ替え

製品 D

納期▼

200台

人員数の増減を最小化！

時間（日）Copyright© Fixstars Group18

Fixstars Amplify を活用した研究事例
大学

研究室

論文タイトル

量子ア
ニーリ
ング/イ
ジング
マシン
に関す
る研究

早稲田大学

戸川研究室

イジングマシンによる制約付きグラフ彩色問題の彩色数最小化手法 (リンク)東京大学

Prof. Codognet

Modeling the Costas Array Problem in QUBO for Quantum Annealing (リンク)

名古屋大学

片桐研究室

Amplifyを用いたCMOSアニーリングマシンの特性の分析 (リンク)

東北大学

小松研究室

組み合わせクラスタリングによるアニーリングマシンの評価 (リンク)

応用
研究

慶應大学

村松研究室 (材料工学)

Phase-fieldモデルの量子アニーリングシミュレータ (リンク)東京大学

長谷川研究室 (量子ゲート)

ISAAQ:イジングマシンを活用した量子コンパイラ (リンク)山梨大学

鈴木研究室 (情報工学)

量子アニーリングによる疎行列直接解法向けフィルイン削減オーダリング (リンク) クス最適化

東京大学

津田研究室 (MI)Designing metamaterials with quantum annealing and factorization machines (リンク)京都大学

野田研究室 (電子工学)

量子アニーリングを活用したフォトニック結晶レーザーの構造最適化 (リンク)東京大学

津田研究室 (MI)Chemical Design with GPU-based Ising Machines (リンク)ブラックボッ

Copyright© Fixstars Group

19

アカデミアにおける応用事例: インタビュー記事
https://amplify.fixstars.com/ja/customers#interview

Copyright© Fixstars Group20

Fixstars Amplify：メディア掲載
https://amplify.fixstars.com/ja/news/media

Software Design

Interface「はじめての量子プログラミング体験」「Pythonで体験！量子コンピュータ」（2021年6月号～2022年1月号まで連載）（2022年6月号）

Copyright© Fixstars Group21

Fixstars Amplify のご紹介

Copyright© Fixstars Group

量子技術とFixstars Amplifyの対応領域
1. 量子コンピュータ

3. イジングマシン

量子ゲート方式

二値二次多項式模型

古典汎用コンピュータの上位互換。
量子力学の重ね合わせ状態を制御する量子ゲートを操作し、特定の問題を汎用的かつ高速に処理する。

二次の多変数多項式で表される目的関数の組合せ最適化問題 (QUBO)
を扱う専用マシン。

QAOA に よ り 組 合 せ 最 適 化 問 題(QUBO) を取り扱うことが可能。

1

3

量子コンピュータ
IBM/Google/Rigetti/IonQ2
量子アニーリングイジングマシン
富士通/日立/東芝/Fixstars

変数は0,1または±1。統計物理学におけるイジング模型 (磁性体の性質を表す模型) に由来。様々な実装により実現されている。

D-Wave/NEC

2. 量子アニーリング方式
量子焼きなまし法
イジングマシンの一種であり、量子焼きなまし法の原理に基づいて動作する。量子イジング模型を物理的に搭載したプロセッサで実現する。自然計算により低エネルギー状態が出力される。組合せ最適化問題 (QUBO) を扱う専用マシン。
Copyright© Fixstars GroupAmplify AE
23

二次計画問題
組合せ最適化問題

量子アニーリング・イジングマシン⚫ 決定変数が離散値 (整数など)• 整数計画問題 (決定変数が整数)• 0-1整数計画問題 (決定変数が二値)⚫ 連続最適化問題• 決定変数が連続値（実数など）

Quadratic

二次形

Unconstrained

制約条件なしBinary0-1整数 (二値)

Optimization

計画（最適化）

QUBO模型 (0-1整数二次計画問題)

𝒇 𝒒 = ෍ 𝑄𝑖𝑗 𝑞𝑖 𝑞𝑗 + ෍ 𝑄𝑖𝑖 𝑞𝑖
𝑖<𝑗
目的関数

𝒇 𝒒 を最小化するような 𝒒
を求める

𝑖
決定変数

係数
Copyright© Fixstars Group24

クラウドサービス: Fixstars Amplify⚫ 量子コンピューティングを想定したシステム開発・運用のクラウドプラットフォーム⚫ 量子コンピュータや独自開発のGPUアニーリングマシンなど、組合せ最適化問題の専用マシンを効率的に実行できる
https://amplify.fixstars.com/ja/
サービス概要⚫ SDKをインストールするだけです

簡単

ぐに使える (pip install amplify)⚫ ハードウェアの専門知識不要でア
プリケーションが開発できる⚫ すべての量子アニーリング/イジン

ポータブル

⚫

グマシンに対応
Fixstarsの26万ビット級のアニー
リングマシン実行環境も利用可能⚫ 評価・検証用途には開発環境と実行
適用分野 (一例)
・・・
金融

物流

始めやすい

ライフサイエンス

Copyright© Fixstars Group

環境が無償で利用可能⚫ 多くのチュートリアル、サンプルコードを整備・拡充

25

イジングマシンの実行手順
1. 数理モデル検討

解きたい課題の「目的関数」「決定変数」「制約条件」を検討する

2. QUBO定式化 (論理)「 2値決定変数+二次形式」で「目的関数」と「決定変数」を記述 (変換) する「制約条件」は直接扱えないので「ペナルティ関数」で表現する

3. QUBO定式化 (物理)

各マシンの仕様や制限に準拠した形式にQUBO模型を変換する(例: 二次項に制約がある場合は「グラフマイナー埋め込み」問題を解く)

SWによる支援と自動化

4. 入力データの準備

各マシンのSDKやAPI仕様に合わせてQUBO模型 (物理) をデータ化する

5. マシンの実行マシンを実行して出力の変数値やエネルギー値(コスト値)を解析する
上記の逆の手順を辿り解きたい課題の「決定変数」を解釈する
Copyright© Fixstars Group26

Fixstars Amplify の特長– いつでも 開発環境と実行環境がセットのためすぐにプログラミングと実行が出来る– 誰でもハードウェアや専門的な知識が不要
無料で開発がスタート可能
多くの解説、サンプルコード– 高速に

26万ビットクラスの大規模問題の高速処理と高速実行が可能– あらゆる 一般に公開されている全てのイジング
マシンを利用可能
Copyright© Fixstars Group27

Fixstars Amplify クラウドの構成
アプリケーション
組合せ最適化問題を含むアプリケーションはAmplify SDK を用いることで効率的かつ簡便に組合せ最適化の定式化が可能
評価・検証ではAmplifyクラウドは無償提供されるため直ぐに開発をスタートできる

Amplify SDK
組合せ最適化問題の定式化やマシンを高度に操るための最先端の技術や知見をライブラリ化したシンプ
ルなインターフェースを提供
専門知識が不要で量子アニーリングイジングマシンを用いた最適化エンジンの開発に取り組める

量子アニーリング・
イジングマシン (Amplify AE)
Amplify クラウドが量子アニーリングマシン・イジ
ングマシンの大規模実行環境を提供
Amplify SDK で書かれた最適化エンジンは他社製も含め全ての商用イジングマシンで実行可能

Copyright© Fixstars Group28

Fixstars Amplify の対応マシンの一例
標準マシン は、
• ベンダ各社と個別マシン利用契約なし、• 評価・検証用ベーシックプランなら無料、で利用可能！←「いつでも」、「誰でも」今後も幅広い対応マシンの追加が続々と行われる予定です！←「あらゆる」https://news.fixstars.com/4025/ : 2024/11/28 SQBM+を標準マシンとして追加
Copyright© Fixstars Group29

Fixstars Amplify の技術⚫ Fixstars Amplify SDK（開発環境）⚫ Fixstars Amplify Annealing Engine（実行環境の1つ）

Copyright© Fixstars Group

開発環境：Fixstars Amplify SDK
Fixstars Amplify SDK ならアニーリングのプログラミングが圧倒的に短縮されます
開発環境インストール$ pip install amplify

最適化コード例

Copyright© Fixstars Group31

Fixstars Amplify SDKによるシンプルプログラミング
数独を解くサンプルアプリ
SDKなし
最適化しても200行以上

SDKあり
30行程度

富士通・デジタルアニーラの設定用コード
SDKなし
59行

SDKあり
1行

日立CMOSアニーリングマシンの設定用コード
SDKなし
183行

出典:
Wikipdia

SDKあり
1行

SDKが、各マシンに対して最適な形式に実装式を多段変換！
Copyright© Fixstars Group32

Amplify Annealing Engine⚫ NVIDIA GPU V100/A100 で動作•

独自の並列化シミュレーテッドアニーリングアルゴリズム⚫ WEB経由で計算機能を提供•

社会課題への取り組み・PoC・検証が加速•

Amplify SDK の実装を直ぐに実行可能⚫ 商用マシンでは最大規模かつ最高速レベル•

128Kビット (全結合) / 256Kビット超 (疎結合)

Amplify
Amplify CloudCloud

Copyright© Fixstars Group33

実行環境：Fixstars Amplify Annealing Engine (AE)NVIDIA GPU V100/A100 で動作• 独自の並列化シミュレーテッド

アニーリングアルゴリズム

WEB経由で計算機能を提供• 社会実装・PoC・検証が加速• Amplify SDK の実装を直ぐに実行可能

商用マシンでは最大規模・最高速レベル• 120,000 ビット（全結合）• 260,000 ビット超（疎結合）※評価・検証用途では無償提供
Copyright© Fixstars Group34

Amplify SDK/AE パフォーマンス
Amplify は最速レベルの定式化・求解速度を達成しています
SDK 定式化処理速度

AE 求解性能・速度

MAX-CUT 2,000 vars

TSP 10,000 vars

Gurobi

Amplify AE

x1000
Faster2024/1: SDK v1でさらに高速に

Copyright© Fixstars Group35

オンラインデモ & チュートリアル

Copyright© Fixstars GroupAmplify デモ

検索https://amplify.fixstars.com/ja/demo36様々な分野で利用が拡大しています
住友商事株式会社

600

登録社・組織数: 約

累計実行回数:3,500万回超Copyright© Fixstars Group37

Fixstars Amplify ご利用プラン

Copyright© Fixstars Group料金のご紹介https://amplify.fixstars.com/ja/pricing

Fixstars Amplifyクラウド利用料

開発支援サービス(個別見積り)→ 近日中に新プラン発表予定

コンサル・システム開発等
数百万円～数千万円

月額利用料
百万円～

定式化や実装を手厚く支援します！
Copyright© Fixstars Group

39

セミナー・トレーニングのご紹介
https://amplify.fixstars.com/ja/news/seminar
お客様の実際の課題解決をご支援するために、無料セミナーや有償トレーニングを提供しています。
無料セミナー・ワークショップ
ビジネス向け、エンジニア向けに分けて開催しています！

企業向けプライベートトレーニング
お客様が抱える実際の課題やデータを使ったカスタムメイドのトレーニングです！

Copyright© Fixstars Group40

ワークショップ
～事前準備～

Copyright© Fixstars Groupワークショップの事前準備 (1)• ご自身のPC (ブラウザ上) でPythonプログラミングを行います。Google Colaboratoryを使うので、事前にログイン出来ることを確認をお願いします（要Googleアカウント）
Google Colab検索

https://colab.research.google.com/• Fixstars Amplify ホームページよりユーザ登録の上、無料トークンの取得をお願いします（1分で終わります）
Fixstars Amplify

検索

https://amplify.fixstars.com/

Copyright© Fixstars Group42

ワークショップの事前準備 (2)【事前メールに記載】• 取得されたトークンを用いて、トークンチェック用サンプルコードが動くか確認をお願いします
https://colab.research.google.com/drive/1evYBKqKfVrEzrQOa-SWwciROfvqjL8qm?usp=sharing (URLはZoomのチャット欄を参照）• サンプルコードは閲覧のみ可能な状態です。「ファイル」→「ドライブにコピーを保存」の上、ご自身のトークンを入力してください。その後、Shift + Enterで実行下さい。
! pip install amplify
token = "********************************" # ご自身のトークンを入力「Amplify AE」のセクションにある「Amplify AE Basic」
プランが今回使う無料トーク
ンになります• ご自身のトークン番号は、Amplifyウェブページ →よりご確認いただけます。

• 実行後、以下の結果が出力されればOKです。
result: [q_0, q_1] = [1. 1.] (f = 0.0)
Copyright© Fixstars Group43

ワークショップの事前準備 (3)⚫
⚫

ワークショップで使うサンプルコードを以下のURLより取得して下さい
それぞれのサンプルコードにご自身のトークンを入力いただく必要があります。それぞれのサンプ

ルコードを「ドライブにコピー」の上、トークンを入力し実行して下さい➢ サンプルコード
Step1

https://colab.research.google.com/drive/1M9_fty7GQ4gPVa87lkLA9jdJR2OEqvvC?usp=sharing

Step2

https://colab.research.google.com/drive/1ZSgLMVgZTjIGODDy_YIJy29zr827OI6Y?usp=sharing

Step3

https://colab.research.google.com/drive/100KyhLplCh9oZ854BEXY0aadeE3IkSWl?usp=sharing

Step4

https://colab.research.google.com/drive/1wzffv95TAr1cx7j_WiYnXEWzU1z3uIZE?usp=sharing

質問は随時、Zoomの チャット か Q&A でお願いします。
対応可能なメンバーが対応致します。
Copyright© Fixstars Group44

ワークショップ
～シフト最適化～

Copyright© Fixstars Group最適シフト作成
業務で求められる役割・役職・スキルと個人の能力や要求を考慮した最適シフトとは
業務要求

要求管理者数

要求スキル量（各従業員が持つスキル値の合計）

要求配置(0=NG, 1=OK, 2=要求)

ライン

責任者

主任技師

合計

前工程

後工程

組立て

合計

従業員ID LineA

LineB

LineC

LineA

1

1

2

8

4

5

17

0

1

0

0

LineB

1

1

2

6

9

3

18

1

1

1

1

LineC

1

1

2

7

6

5

18

2

1

2

0

合計

3

3

6

21

19

13

53

23

1

1

1

24

1

1

0

・
・
・

マッチング

各従業員情報担当可能役職スキル値(1=初級, 2=中級, 3=上級)

従業員ID

責任者

主任技師

技師

前工程

後工程

組立て

0

1

1

1

3

3

3

1

0

1

1

3

3

2

2

0

0

1

2

1

23
24

0
0

0

・
・
・

1

0

0

Copyright©
0 Fixstars Group
1

1

0

0
・
・
・

2
1

46

46

ワークショップ: 問題設定
15名の従業員を5名ずつ3つの生産ラインへ振り分けます。各従業員は、各ラインに対するスキル値を持ちます。各ラインに配置された従業員のスキル値 (ラインスキル値) の合計がなるべく高く、また、各ラインのラインスキル値のばらつきが少ない、という2つの目的のバランスの取れたシフトの作成を目指します。
組合せは約1,400万通り!

Aライン
(5名)

Bライン
(5名)

Cライン
(5名)
Copyright© Fixstars Group47

ワークショップ: 試しに人の手でやってみましょう

Copyright© Fixstars Group

48

組合せ最適化問題を解くイメージ
問題を設定
15名の従業員を5名ずつ3つの生産ラインへ振り分ける。各従業員は、各ラインに対するスキル値を持ち、各ラインに配置された従業員のスキル値 (ラインスキル値) の合計がなるべく高く、また、各ラインのラインスキル値のばらつきが少ない、という2つの目的のバラ
ンスの取れたシフトの作成を目指します。

入力情報を準備
従業員の各ラインのスキル値

1: 配置、0: 非配置

Pythonで記述してマシンで求解定式化

決定変数を用意

目的関数1: 全ラインの合計スキル値の最大化
315𝑠𝑘𝑖𝑙𝑙_𝑠𝑐𝑜𝑟𝑒 = ෍ ෍ 𝑞𝑖,𝑙 ∙ 𝑠𝑖,𝑙𝑙𝑖

目的関数2: ラインスキル値のばらつき (分散) を最小化

𝑣𝑎𝑟𝑖𝑎𝑛𝑐𝑒 =σ3𝑙 σ15𝑖 𝑞𝑖,𝑙 ∙ 𝑠𝑖,𝑙32−σ3𝑙 σ15𝑖 𝑞𝑖,𝑙 ∙ 𝑠𝑖,𝑙32

制約条件1: 従業員は同時に1つの製造ラインのみに配置可能
3

෍ 𝑞𝑖,𝑙 = 1
𝑙Copyright© Fixstars Group

・
・
・

49

ワークショップ: 4 Step
15名の従業員を5名ずつ3つの生産ラインへ振り分けます。各従業員は、各ラインに対するスキル値を持ちます。各ラインに配置された従業員のスキル値 (ラインスキル値) の合計がなるべく高く、また、各ラインのラインスキル値のばらつきが少ない、という2つの目的のバランスの取れたシフトの作成を目指します。全てを一度にやるのは難しいので4つのステップに分けてアルゴリズムの完成を目指します

Step1

まず、2つの制約だけを考慮して配置シフトを求めます
制約1: 従業員は同時に1つの製造ラインのみに配置が可能
制約2: 各ラインの配置人数が5名ずつになること

解の候補多数あり

Step2

Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的1を追加し、複数の解の候補から目的を実現するシフトを求めます

Step3

Step2に「ラインスキル値のばらつきを最小化」という目的2を追加して、2つの目的を同時に実現するシフトを求めます

Step4

Step3に目的1と目的2の重みを調整する「パラメーター」を追加し、最適なバランスのシフトを作成しますCopyright© Fixstars Group50

Step1

まず、2つの制約だけを考慮して配置シフトを求めます

Step1のサンプルコードのレビュー(尚、本ワークショップでは、最適化のコードにフォー
カスし、下準備や可視化のコードの詳細は割愛します)

Copyright© Fixstars Group51

Step1

まず、2つの制約だけを考慮して配置シフトを求めます
得られる解の例

決定変数の準備
BinaryPoly型
15×3 = 45 [qbit]

イジングマシンで最適な(0,1)の組合せを探す

1: 配置
0: 非配置従業員3は
line_Cに配置

実装

決定変数
Copyright© Fixstars Group52

Step1

まず、2つの制約だけを考慮して配置シフトを求めます

定式化
制約1: 従業員は同時に1つの製造ラインのみに配置可能→ one_hot 制約
3

෍ 𝑞𝑖,𝑙 = 1𝑙

制約2: 各ラインの配置人数が要求人数（5名）と一致する→ equal_to 制約 (等式制約)15

෍ 𝑞𝑖,𝑙 = 5𝑖Copyright© Fixstars Group53

Step1

まず、2つの制約だけを考慮して配置シフトを求めます

実装

Copyright© Fixstars Group54

Step1

まず、2つの制約だけを考慮して配置シフトを求めます

求解Amplify AE
無料版は1ジョブ10秒まで設定可
有料版では1分まで設定可能• modelに格納してマシンに投げます。
• 制約条件だけを与えた場合、制約条
件を満たす解を探してきてくれます。

Copyright© Fixstars Group55

Step1

まず、2つの制約だけを考慮して配置シフトを求めます

結果の取得

可視化

確
認

同じ人が複数のラインに配置される事無く、各ラインに5人ずつ配置するという、２つの制約を満たすシフトを作ることができました。ただし、解の候補はたくさん有り、最適化の余地も大きそうです。
Copyright© Fixstars Group56

Step2

Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的1を追加し、複数の解の候補から目的を実現するシフトを求めます

ここでは、工場全体のアウトプットの最大化を目指し、各従業員をできるだけ高いスキル値を持つラインへ配置することを目指しますAライン(5名)
ラインスキル値

ラインスキル値

全ラインのスキル値の合計

これを最大化したい！
ラインスキル値

Copyright© Fixstars Group57

Step2

Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的1を追加し、複数の解の候補から目的を実現するシフトを求めます

Step2のサンプルコードのレビュー

Copyright© Fixstars Group58

Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的1を追加し、複数の解の候補から目的を実現するシフトを求めます

Step2

決定変数

定式化

各従業員のスキル値
worker_id

目的1: 全ラインの合計スキル値の最大化
315𝑠𝑘𝑖𝑙𝑙_𝑠𝑐𝑜𝑟𝑒 = ෍ ෍ 𝑞𝑖,𝑙 ∙ 𝑠𝑖,𝑙
𝑙

𝑖

決定変数

worker_skill (変数 s)(変数: i)line_A

line_B

line_C

0

130

60

70

1

120

55

60

2

110

130

60

3

100

120

55

4

90

110

130

5

90

100

120

6

80

90

110

7

80

90

100

8

80

80

90

9

70

80

90

10

70

80

80

11

70

70

80

12

60

70

80

13

60

70

70

14

55

60

70

各列の要素同士の掛け算の和 ⇒ 各ラインのラインスキル値
Copyright© Fixstars Group59

Step2

Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的1を追加し、複数の解の候補から目的を実現するシフトを求めます実装: 追加コード

イジングマシンは、この objective の値が最小になる組合せを探します (全ラインの合計スキル値は大きいものを選びたいので、
skill_score にマイナスをつけたものを objective としています)

制約条件には適切な値の重みを設定する必要があります。典型的なスキ
ル値より大きくしておく必要があるため 150 としました
ご参考: https://amplify.fixstars.com/ja/docs/amplify/v1/penalty.html#id1

Copyright© Fixstars Group60

Step2

Step1に「ラインスキル値の合計 (= 全ラインの合計スキル値) を最大化」という目的1を追加し、複数の解の候補から目的を実現するシフトを求めます

結果の取得

可視化

ばらつき大

確
認

二つの制約を満しながら、全ラインの合計スキル値が最大化されたシフトを作ることができました (Step1の全ラインの合計スキル値は1,265) 。但し、ライン間のスキル値のばらつきが大きいので、更なる最適化をかけたい状況です
Copyright© Fixstars Group61

Step3

Step2に「ラインスキル値のばらつきを最小化」という目的2を追加して、2つの目的を同時に実現するシフトを求めます

定式化

実装

: 追加コード

目的2: ラインスキル値のばらつき(分散)を最小化

σ3𝑙 σ15𝑖 𝑞𝑖,𝑙 ∙ 𝑠𝑖,𝑙𝑣𝑎𝑟𝑖𝑎𝑛𝑐𝑒 =32σ3𝑙 σ15𝑖 𝑞𝑖,𝑙 ∙ 𝑠𝑖,𝑙−32

(分散 = (2乗の平均) – (平均の2乗))

ばらつきは小さい方が選ばれるようにしたいのでプラスで足します

Copyright© Fixstars Group62

Step3

Step2に「ラインスキル値のばらつきを最小化」という目的2を追加して、2つの目的を同時に実現するシフトを求めます

結果の取得

可視化

ばらつき全くなし！

確認

二つの制約を満しながら、全ラインの合計スキルが高く、各ライン間のばらつきが全くないシフトを作ることができました（Step1の全ラインの合計スキル値は1,265で、Step2は1,475）。最後に、目的1と目的2のバランスをチューニングして最適なシフトの作成を目指します。
Copyright© Fixstars Group63

Step4

Step3に目的1と目的2の重みを調整する「パラメーター」を追加し、最適なバランスのシフトを作成します実装: 追加コード

Copyright© Fixstars Group64

Step4

Step3に目的➀と目的②の重みを調整する「パラメーター」を追加し、最適なバランスのシフトを作成します

結果の取得

可視化

ばらつき極小！

確認

最適なバランスのシフトが完成しました！
Copyright© Fixstars Group65

ワークショップ：おさらい
制約のみからスタートして、複数の目的を加え、重みを調整する事で、最適なバランスのシフトを作りました。

Step1

Step2

Step3

Step4

スキル値合計: 1,265

スキル値合計: 1,475

スキル値合計: 1,440

スキル値合計: 1,460

制約

制約

制約

制約

スキル値最大化

スキル値最大化

スキル値最大化

スキル値ばらつき調整

スキル値ばらつき調整
重みを調整

Copyright© Fixstars Group66

Wrap Up

Copyright© Fixstars Group

Tips: 適切なタイムアウト値の設定について
実行後にヒストリー情報や num_iterations などを確認しながら適切なタイムアウト値を調整します

ヒストリー情報 (ドキュメントはこちら)••

num_iterations (ドキュメントはこちら)

Amplify AE は1回の実行の中で探索を繰り返し、時間の許す限り最良解を徐々に改善していきます。
必要な設定変更を行うことにより、1回の実行の中で、最良解を更新した時間とその解の値を確認することができます。解の収束の様子などから実行時間の過不足の判断に用いることがで
きます。

•

•

Copyright© Fixstars Group

実行後に num_iterations を確認することにより、どの程度の「探索」が行われたか確認することができます。「探索」とは、Amplify AE が実装しているアルゴリズムの実行単位であり、この値が大きいほど広く探索が行えたことを意味します。この
値が一桁など小さい場合には探索が十分でない可能性があります。
Amplify AE は初めに1回だけ探索を行い、タイムアウトまで余裕がある場合には、時間の許す限り解を徐々に改善していくという動作になっています。設定したタイムアウト値が問題規模に対して小さすぎる場合には、最初の探索が指定したタイムア
ウト時間内に終わらないこともあります。その場合、初めの探索だけで実行が終わり、num_iterations は 1 となります。

68

今後についてぜひ、デモ・チュートリアルにあるサンプルコードにも挑戦してください！
一般的な組合せ最適化問題
目的関数のみで定式化

制約条件のみで定式化

ブラックボックス最適化問題

目的関数 + 制約条件

概要

材料探索

翼型最適化

信号機制御

困った時はドキュメンテーションを！

https://amplify.fixstars.com/docs/amplify/v1/index.html

Copyright© Fixstars Group

69

セミナーのご案内
今後も無料セミナーを開催します！第二部からの参加も可能です

Amplify SE を使ったセミナーです！

2024/3/27 (水)「シフト最適化」

2024/4 (仮)「生産計画最適化」

2024/5 (仮)「搬送経路最適化」

第一部 14:00 - 14:45• フィックスターズの紹介• 組合せ最適化問題・イジングマシンの紹介• Fixstars Amplifyの紹介

第一部 14:00 - 14:45• フィックスターズの紹介• 組合せ最適化問題・イジングマシンの紹介• Fixstars Amplifyの紹介

第一部 14:00 - 14:45• フィックスターズの紹介• 組合せ最適化問題・イジングマシンの紹介• Fixstars Amplifyの紹介

第二部 14:50 - 16:00• Fixstars Amplifyを用いた「シフト最適化」のワークショップ• Q&A

第二部 14:50 - 16:00• Fixstars Amplifyを用いた「生産計画最適化」のワークショップ• Q&A

第二部 14:50 - 16:00• Fixstars Amplifyを用いた「搬送経路最適化」のワークショップ• Q&A

セミナーの内容等に関してご質問・ご不明点がありましたら、問合せフォームでご連絡下さい
https://amplify.fixstars.com/ja/contact
Copyright© Fixstars Group70

ご参加ありがとうございました
アンケートへのご回答お願いします！

Copyright© Fixstars Group