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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
NearMeの技術発表資料です
PRO
November 18, 2022
Programming
120
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の技術発表資料です
Claude Code × git worktree で並列開発 (続き) -差分のサービスだけを併設する-
nearme_tech
PRO
1
52
Claude Code × git worktree で並列開発 — サブモジュール構成のリポジトリで成立させる —
nearme_tech
PRO
0
59
LLM + 強化学習
nearme_tech
PRO
0
32
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
58
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
2
65
初めてのLean言語
nearme_tech
PRO
0
100
Apache Airflow Workflow orchestration without turning cron into spaghetti
nearme_tech
PRO
2
38
実務で役立つ幾何学 ボロノイ図の基礎から グラフ・ネットワーク応用まで
nearme_tech
PRO
1
76
SQL/ID抽出タスクから考える 実践的なハルシネーション対策
nearme_tech
PRO
1
89
Other Decks in Programming
See All in Programming
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.5k
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
240
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4k
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
110
自分的「カンファレンスの楽しみ方」
syumai
0
200
Intent as Code
shoppingjaws
6
970
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
App Intentsのビルドプロセスを支える技術
kntkymt
0
310
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
590
How I Stole PSI from Android Studio - DroidKaigi2026
worker8
0
110
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
150
Featured
See All Featured
Bash Introduction
62gerente
615
220k
The Curious Case for Waylosing
cassininazir
1
500
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Amusing Abliteration
ianozsvald
1
290
Balancing Empowerment & Direction
lara
6
1.3k
Mind Mapping
helmedeiros
1
350
Odyssey Design
rkendrick25
PRO
2
800
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
Rails Girls Zürich Keynote
gr2m
96
14k
Chasing Engaging Ingredients in Design
codingconduct
0
310
Making the Leap to Tech Lead
cromwellryan
135
10k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
850
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