Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
より良い解に辿り着くカギ-近傍設定の重要性
Search
NearMeの技術発表資料です
PRO
March 17, 2025
Programming
0
140
より良い解に辿り着くカギ-近傍設定の重要性
数理最適化でより良い解を見つけるための近傍設定の重要性を解説。巡回セールスマン問題を例に、構築法・改善法、2-optなどの近傍操作を紹介します。 #数理最適化 #組合せ最適化
NearMeの技術発表資料です
PRO
March 17, 2025
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
強化学習アルゴリズムPPOの改善案を考えてみた
nearme_tech
PRO
0
2
Apple Containerについて調べて触ってみた
nearme_tech
PRO
0
47
Rust 並列強化学習
nearme_tech
PRO
0
21
並列で⽣成AIにコーディングをやらせる
nearme_tech
PRO
1
130
希望休勤務を考慮したシフト作成
nearme_tech
PRO
0
34
Hub Labeling による高速経路探索
nearme_tech
PRO
0
90
Build an AI agent with Mastra
nearme_tech
PRO
0
77
Rustで強化学習アルゴリズムを実装する vol3
nearme_tech
PRO
0
43
Webアプリケーションにおけるクラスの設計再入門
nearme_tech
PRO
1
110
Other Decks in Programming
See All in Programming
レガシープロジェクトで最大限AIの恩恵を受けられるようClaude Codeを利用する
tk1351
2
460
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.7k
AIレビュアーをスケールさせるには / Scaling AI Reviewers
technuma
2
210
CEDEC 2025 『ゲームにおけるリアルタイム通信への QUIC導入事例の紹介』
segadevtech
3
930
GitHub Copilotの全体像と活用のヒント AI駆動開発の最初の一歩
74th
8
3k
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
550
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
570
新世界の理解
koriym
0
140
実践 Dev Containers × Claude Code
touyu
1
220
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
130
TanStack DB ~状態管理の新しい考え方~
bmthd
2
220
フロントエンドのmonorepo化と責務分離のリアーキテクト
kajitack
2
130
Featured
See All Featured
Facilitating Awesome Meetings
lara
55
6.5k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Designing for Performance
lara
610
69k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Cult of Friendly URLs
andyhume
79
6.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Code Review Best Practice
trishagee
70
19k
YesSQL, Process and Tooling at Scale
rocio
173
14k
GitHub's CSS Performance
jonrohan
1031
460k
Transcript
0 より良い解に辿り着くカギ-近傍設定の重要性 2025-03-14 第115回NearMe技術勉強会 Mizuki Wakabayashi
1 ⽬次 1. ⾃⼰紹介: 初めまして、若林瑞樹です 2. 数理最適化? 必要? AI? 機械学習
3. 数理最適化が必要となる難しい問題とは 4. より良い解へ辿り着くために...近傍設定の重要性
2 1. ⾃⼰紹介: 初めまして、若林瑞樹です 所属: 東京農⼯⼤学⼤学院修⼠⼀年 ⼯学府 知能情報システム⼯学専攻 研究室: 数理最適化がメイン.
特に、組合せ最適化(離散最適化) 私の研究内容: 学部: 機械学習の損失関数, 現在: 組合せ最適化 私の趣味: プログラミング, 筋トレ, 友⼈の研究室の⽅々とのスマブラ(スイッチ) 他の⽅々の研究内容(⼀部): ダイナミックプライシング, 相乗りタクシー , チームスポーツにおける個⼈の能⼒の推定, 移動距離や体⼒負荷を考慮したスポーツスケ ジューリング最適化等... ゼミでは進捗報告を全員で⾏う→ ⾃分の研究分野外の知識や⼿法も学んでいます
3 ‧数理最適化と調べると... 数理最適化は、問題の最適化を実現するための「最適解」を、問題の構造や数 学的な性質に基づいて発⾒するという「決定論的な⼿法」 ‧意思決定や、⼿法を求めるための技術であり、学習をして予測精度をあげるという分野ではない ‧個々の問題設定ごとに、制約条件や⽬的関数は異なる ‧より良い解を学習していくことは困難 ‧
その分野に対する知⾒や知識、最適化技術が必要 ‧数理最適化が使⽤される分野: 物流, 配送, スケジューリング ⽣産ライン, 機械学習のハイパーパラメータ等... 参考⽂ 献:https://www.brainpad.co.jp/doors/contents/about_mathematical_optimization/#%E3%80%8C%E6%95%B0%E7%90%86%E6%9C%80%E9%81%A9%E5%8C%96%E3%80%8D%E3%81%A8%E3%80%8CAI%E3%80%8 D%E3%80%8C%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%80%8D%E3%81%A8%E3%81%AE%E9%81%95%E3%81%84%E3%81%AF%EF%BC%9F 2. 数理最適化? 必要? AI?
4 ‧難しい問題の例: 巡回セールスマン問題 ‧N個の都市を訪れ、⼀周するための最⼩距離を求める問題 ‧ 下は52都市の例 3. 数理最適化が必要となる難しい問題とは ”x座標が⼩さい順に訪れる”という貪欲法 ”中⼼座標に近い順に訪れる”という貪欲法
5 ‧数理最適化における難しい問題: 計算量, 計算時間, 組合せ数が膨⼤であるため難しいという意味 ‧52都市の訪れるパターン→ 52! = 8.07* 10^67通り
‧現在の計算機をもってしても果てしない時間かかる ‧よって、全通りは試すことはできない! ‧しかし、研究者によって 数万都市レベルの最⼩距離ルートは算出 ‧右はスウェーデン24978都市の最適解 ‧数理最適化技術や、巡回セールスマン問題に対する知⾒や知識が深く関与 出典: https://www.math.uwaterloo.ca/tsp/sweden/tours/swtour_small.htm 3. 数理最適化が必要となる難しい問題とは
6 ‧52都市で、最⼩距離ルートを考えていただきたいです ‧どのような⽅針(⼿法、基準)で訪れていきますか? ‧1. スタート都市から近い都市を辿っていく ‧2. 最⼩全域⽊を解く⾵に、近い都市2つを 線で結んでいく...を繰り返す
3. 数理最適化が必要となる難しい問題とは
7 ‧52都市で、最⼩距離ルートを考えてみていただきたいです ‧どのような⽅針(⼿法、基準)で訪れていきますか? ‧⾚の点スタートで、近い順に訪れるという⽅法だと... → ‧右のようにちょっと遠い距離を取りこぼしてしまう ‧1都市, 1都市順番に選択していく⽅法では良い解はでなさそう.. ‧少しずつ解を作っていく⽅法→構築法などと呼びます... ‧⼀旦ルールを守ったルート(解)を作って、少しずつ解を改善していく⽅が良さそう...
‧初期解を改善していく⽅法→改善法などと呼びます 3. 数理最適化が必要となる難しい問題とは S S
8 ‧構築法 ‧貪欲法: なんらかの基準に貪欲に従って解を構築 ‧ビームサーチ: 構築するごとに、解の評価を⾏って上位BEAM_WIDTH数だけを残していく ‧改善法: 近傍と呼ばれる解の変更ルールを設定して⾏う(⼩さな変更の範囲) ‧近傍設定の例: ‧insert(a,
b )a都市の後ろにb都市を訪れる ‧swap(a, b) a都市とb都市の訪れる順番を逆に ‧swap(a,b,c) a,b,c都市の訪れる順番をc,b,aに ‧変更範囲が⼤きければ良いというわけではない ‧局所探索法: 近傍操作で、現在の解より良くなった→解の更新→その解に近傍操作 を繰り返していく ‧焼きなまし法: 序盤: 現在の解より悪くなった解を⾼い確率で受け⼊れて更新 終盤: 現在の解より良い解のみを基本的に受け⼊れて更新 3. 数理最適化が必要となる難しい問題とは
9 ‧改善法: 近傍と呼ばれる解の変更ルールを設定して⾏う(⼩さな変更の範囲) 3. 数理最適化が必要となる難しい問題とは ”x座標が⼩さい順に訪れる”という 貪欲法で作った初期解
10 ‧改善法: 近傍と呼ばれる解の変更ルールを設定して⾏う(⼩さな変更の範囲) 3. 数理最適化が必要となる難しい問題とは 近傍の設定が良ければ、どんな初期解からで も、最適ルートへ改善することは可能! ⼤域最適解 局所最適解1
局所最適解2
11 ‧近傍設定の例: ‧insert(a, b )a都市の後ろにb都市を訪れる ‧swap(a, b) a都市とb都市の訪れる順番を逆に ‧巡回セールスマン問題に対しては、上記のような近傍操作では より良い解を算出するのはかなり困難
‧swapやinsertをしてもそこまで良くなりそうにも思えない ‧スケジューリング問題や⼀定の問題に対してはswap(...)がかなり有効な場合も ‧巡回セールスマン問題に対しては有効ではない 4. より良い解へ辿り着くために...近傍設定の重要性
12 ‧巡回セールスマン問題における有効な近傍設定 ‧2-opt(a, b ): a->a1->,.... an -> bという順番を丸ごと逆順にする ‧例:
都市番号: 7->5->4->3->6>1->2->7 に対する2-opt(7,1) →7->6->3->4->5->1->2->7となる ‧同様に3-optや4-optのように、範囲内の順番を丸ごと逆順という近傍操作が有効 4. より良い解へ辿り着くために...近傍設定の重要性
13 ‧改善法: 近傍と呼ばれる解の変更ルールを設定して⾏う(⼩さな変更の範囲) ‧局所探索法: 近傍操作で、現在の解より良くなった→解の更新→その解に近傍操作 を繰り返していく ‧焼きなまし法: 序盤:
現在の解より悪くなった解を⾼い確率で受け⼊れて更新 終盤: 現在の解より良い解のみを基本的に受け⼊れて更新 そのほかにも様々な⼿法がありま↓ 遺伝的アルゴリズム(GA), 粒⼦群最適化(PSO), アリコロニー最適化(ACO), タブーサーチ (TS), ⼈⼯⿂群アルゴリズム, ハーモニーサーチ, 差分進化, Emperor Penguin Algorithm,... ⾃然現象や⽣物の様⼦から着想を得た 新しい?アルゴリズムは多々ありますが... 4. より良い解へ辿り着くために...近傍設定の重要性
14 ‧本質的には、近傍を設定して良い解を⾒つけていくということに変わりはない ‧適切な近傍設定無しに、⼿法ごとの優劣はほぼない ‧着想を得た物や⽣物等が異なるだけで、AIの研究のようなブレークスルーは⾒られない ‧しっかりと作り込むことで、局所探索法ベースのシンプルな⼿法でも優秀 ‧先ほどの巡回セールスマン問題も、反復局所探索法で最適解の算出に成功 ‧局所探索法ベースのメリット ‧検証しやすい、挙動の確認がわかりやすい→確率的な要素がないため ‧パラメータのチューニングが不要
‧GAでは突然変異確率など、SAでは初期温度や温度の下がりぐらい等のパラメータが必要 4. より良い解へ辿り着くために...近傍設定の重要性
15 ‧意思決定やより良い⼿法を得るには、数理最適化が必須 ‧ある⽅針に沿って少しずつ解を作っていく構築法では、良い解を導くのは困難 →初期解から近傍操作によって良くしていく改善法が有効 ‧世の中には改善法の中に無数⼿法が存在しているが、⼤きな差異はない ‧どのように今の解をより良くしていくかという近傍設定が重要 まとめ
16 Thank you