Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
競プロに出てきそうなアルゴリズム part3
Search
NearMeの技術発表資料です
PRO
November 18, 2022
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
競プロに出てきそうなアルゴリズム part3
NearMeの技術発表資料です
PRO
November 18, 2022
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
AIエージェントのための 隔離された安全なインフラ設計
nearme_tech
PRO
0
22
Claude Code × git worktree で並列開発 (続き) -差分のサービスだけを併設する-
nearme_tech
PRO
1
69
Claude Code × git worktree で並列開発 — サブモジュール構成のリポジトリで成立させる —
nearme_tech
PRO
0
79
LLM + 強化学習
nearme_tech
PRO
0
37
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
110
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
2
70
初めてのLean言語
nearme_tech
PRO
0
110
Apache Airflow Workflow orchestration without turning cron into spaghetti
nearme_tech
PRO
2
50
実務で役立つ幾何学 ボロノイ図の基礎から グラフ・ネットワーク応用まで
nearme_tech
PRO
1
93
Other Decks in Programming
See All in Programming
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
410
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
150
phperだってパンチカードでコーディングしたい
o0h
PRO
0
330
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
APNsからLive Activityを開始する話
yumnumm
0
170
R8 の設定見直しでアプリサイズ削減
andpad
0
220
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.2k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
220
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Skip the Path - Find Your Career Trail
mkilby
1
260
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Agile that works and the tools we love
rasmusluckow
331
22k
Scaling GitHub
holman
464
140k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
A better future with KSS
kneath
240
18k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Transcript
0 竸プロに出てきそうなアルゴリズム part3 2022-11-18 第21回NearMe技術勉強会 Nonaka Yuki
1 目次 1. 動的計画法とは 2. 動的計画法の例題 3. 動的計画法に関する概念 1
2 動的計画法とは • 問題が持つべき性質 • 部分構造最適性 • 与えられた最適化問題の解が、その部分問題の最適解の組み合わせによって得られるこ と。 •
部分問題重複性 • 問題が複数回再利用される部分問題に分割される時、問題の再帰アルゴリズムが同じ部分 問題を生成する時など • 適用される問題例 • ナップサック問題 • スケジューリング問題 • 音声認識パターンマッチング問題 • 隠れマルコフモデル 2
3 動的計画法の例題 ❏ 問題 ❏ 図のようにN個の足場があり、i番目の足場の高さがh i で与えられる。 そして①,②のいずれかの行動を繰り返してN-1番目の足場を目指す。 ①足場iから足場i+1へと移動する(コストは|h
i - h i+1 |) ②足場iから足場i+2へと移動する(コストは|h i - h i+2 |) この時N-1番目の足場に到達するときにかかるコストの総和の最小値を求めよ。 3 7 5 2 8 4 1 i=0 i=1 i=2 i=3 i=4 i=5
4 動的計画法の例題 頂点5に到達するのにかかる最小コストを求めるために、問題を分割していく。 例:dp[ i ]は頂点iに到達するまでにかかる最小コストとする。 dp[ i ] =
min(dp[ i - 1 ] + |h i - h i-1 |, dp[ i - 2 ] + |h i - h i-2 |) dp[0] = 0, dp[1] = |7-1| = 6, dp[2] = min(dp[0] + |5-1|, dp[1] + |5-7|) 4 7 5 2 8 4 1 i=0 i=1 i=2 i=3 i=4 i=5 頂点5に到達するのに かかる最小コストを求 める 頂点3に到達するのに かかる最小コストを求め る 頂点4に到達するのに かかる最小コストを求め る = +
5 動的計画法の例題 dp[2] = min(dp[0] + cost, dp[1] + cost)のようにこの配列dpを更新していき、最終的にdp[5]が求まる。
このように値を更新していくことを「緩和」というらしい。 この「緩和」はベルマン・フォード法やダイクストラ法などでも使われる概念。 5 7 5 2 8 4 1 i=0 i=1 i=2 i=3 i=4 i=5 0 6 Inf Inf Inf Inf 配列 dp
6 動的計画法に関する概念 6 5 4 3 3 2 1 2
2 1 0 1 0 1 0 1 • トップダウン方式 ◦ 問題を部分問題に分解していき、解をメモしながら解いていく。 • ボトムアップ方式 ◦ 前ページの配列dpをdp[0]から埋めていくイメージ
7 参考文献 ・アルゴリズムとデータ構造, 大槻兼資(著), 秋葉拓哉(監修), 講談社, 2020 7
8 Thank you