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
Chapter 15 - Dynamic Programming, Introductions...
Search
Keisuke Okumura | 奥村圭祐
November 29, 2020
Programming
0
220
Chapter 15 - Dynamic Programming, Introductions to Algorithms (CLRS)
アルゴリズムイントロダクション 第15章 動的計画法
研究室内の非公式の輪読会で使用した資料です。
内容: 動的計画法の基本的な考え方(トップダウン、ボトムアップ)、ロッド切出し、連鎖行列積
Keisuke Okumura | 奥村圭祐
November 29, 2020
Tweet
Share
More Decks by Keisuke Okumura | 奥村圭祐
See All by Keisuke Okumura | 奥村圭祐
Engineering LaCAM∗: Towards Real-Time, Large-Scale, and Near-Optimal Multi-Agent Pathfinding
kei18
0
1.6k
Breaking Tradeoffs: Extremely Scalable Multi-Agent Pathfinding Algorithms
kei18
0
310
Remove Assumptions in Multi-Agent Pathfinding
kei18
0
260
Pathfinding for 10k agents
kei18
1
10k
Quick Multi-Robot Motion Planning by Combining Sampling and Search
kei18
0
1.1k
Improving LaCAM for Scalable Eventually Optimal Multi-Agent Pathfinding
kei18
0
2.4k
PhD defense 1/2: Planning, Execution, Representation, and Their Integration for Multiple Moving Agents
kei18
2
1.2k
PhD defense 2/2: Planning, Execution, Representation, and Their Integration for Multiple Moving Agents
kei18
1
1.1k
Quick Multi-Agent Path Planning
kei18
0
330
Other Decks in Programming
See All in Programming
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
18
3.3k
[JAWS-UG横浜 #79] re:Invent 2024 の DB アップデートは Multi-Region!
maroon1st
0
130
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
260
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
2.4k
Flatt Security XSS Challenge 解答・解説
flatt_security
0
1.1k
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
1
180
[JAWS-UG横浜 #80] うわっ…今年のServerless アップデート、少なすぎ…?
maroon1st
0
150
AHC041解説
terryu16
0
550
ASP.NET Core の OpenAPIサポート
h455h1
0
160
振り返れば奴(Cline)がいる
keiyagi
0
130
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
3
630
Kanzawa.rbのLT大会を支える技術の裏側を変更する Ruby on Rails + Litestream 編
muryoimpl
0
120
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
380
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Embracing the Ebb and Flow
colly
84
4.5k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Into the Great Unknown - MozCon
thekraken
34
1.6k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
600
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Transcript
blog.pramp.com アルゴリズムイントロダクション 第三版 15章 動的計画法 2020.7.22 奥村圭祐 20年度 東工大Defago研・裏輪行 DYNAMIC
PROGRAMMING
/25 2 公開用の断り書き https://tanukifont.com/ フォントはたぬきフォントを使用させていただいています。 本資料は研究室内の非公式の輪読会で使用したもので、 対象書籍は「アルゴリズム イントロダクション」の第三版(通称CLRS)になります。 スライド中の擬似コード(英語)は英語版のスクリーンショットを使用しています。 厳密性に欠いているところはありますがご容赦ください。
間違い等ございましたら okumura.k[at]coord.c.titech.ac.jp まで、 ご連絡いただけると幸いです。
/25 15.1 ロッド切出し 15.2 連鎖行列積 15.3 動的計画法の基本要素 15.4 最長共通部分列 15.5
最適2分探索木 15章の構成 目標: 動的計画法が適応できそうだ!と見積もりが立てられるようになること 3
/25 Wikipediaより 復習: 分割統治法 部分問題の解を組合わせて元の解を得る 結合 部分問題を再帰的に解く 統治 問題をいくつかの部分問題に分割 分割
/25 5 ケーススタディ1: ロッド切出し問題 1本の金属棒からいくつかの金属棒を切り出すとき 収益最大化を達成するような切断箇所を決定したい 長さ 1 2 3
4 5 6 7 8 9 10 価格 1 5 8 9 10 17 17 20 24 30 i <latexit sha1_base64="hA2BMjcr0btVk5qY1/HOr4xO94Q=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlJu+XK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH0MuM8Q==</latexit> pi <latexit sha1_base64="d859ofo0ri5GbQo8/CJ8f1zry30=">AAAB6nicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48V7Qe0oWy2k3bpZhN2N0IJ/QlePCji1V/kzX/jts1BWx8MPN6bYWZekAiujet+O4W19Y3NreJ2aWd3b/+gfHjU0nGqGDZZLGLVCahGwSU2DTcCO4lCGgUC28H4dua3n1BpHstHM0nQj+hQ8pAzaqz0kPR5v1xxq+4cZJV4OalAjka//NUbxCyNUBomqNZdz02Mn1FlOBM4LfVSjQllYzrErqWSRqj9bH7qlJxZZUDCWNmShszV3xMZjbSeRIHtjKgZ6WVvJv7ndVMTXvsZl0lqULLFojAVxMRk9jcZcIXMiIkllClubyVsRBVlxqZTsiF4yy+vklat6l1Ua/eXlfpNHkcRTuAUzsGDK6jDHTSgCQyG8Ayv8OYI58V5dz4WrQUnnzmGP3A+fwBVro3U</latexit> - 棒の長さ n <latexit sha1_base64="2QmInd+nHO60uhS7AYCvgpiU4a8=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlpuyXK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH2F+M9g==</latexit> 入力 - 価格表 出力 切り出した棒を価格表に従って販売して得ることのできる収益の最大値 例 n = 4 <latexit sha1_base64="4oLZWzjS5iueWcCbZp2dz20UMJU=">AAAB6nicbVDLSgNBEOyNrxhfUY9eBoPgKezGgF6EoBePEc0DkiXMTmaTIbOzy0yvEEI+wYsHRbz6Rd78GyfJHjSxoKGo6qa7K0ikMOi6305ubX1jcyu/XdjZ3ds/KB4eNU2casYbLJaxbgfUcCkUb6BAyduJ5jQKJG8Fo9uZ33ri2ohYPeI44X5EB0qEglG00oO6rvaKJbfszkFWiZeREmSo94pf3X7M0ogrZJIa0/HcBP0J1SiY5NNCNzU8oWxEB7xjqaIRN/5kfuqUnFmlT8JY21JI5urviQmNjBlHge2MKA7NsjcT//M6KYZX/kSoJEWu2GJRmEqCMZn9TfpCc4ZybAllWthbCRtSTRnadAo2BG/55VXSrJS9i3Llvlqq3WRx5OEETuEcPLiEGtxBHRrAYADP8ApvjnRenHfnY9Gac7KZY/gD5/MHzpWNew==</latexit> 9 1 8 5 5 1 5 1 最適解 1 1 1 1
/25 6 アルゴリズムの設計指針 最適な分割を仮定 n = i1 + i2 +
· · · + ik <latexit sha1_base64="2T77fa2FlFqC1BTs6p2ra15IY7M=">AAACBHicbVDLSgMxFM3UV62vUZfdBIsgCGWmCroRim5cVrAPaIeSSTNtaCYzJHeEMnThxl9x40IRt36EO//GdDoLbT2Qy8m595Dc48eCa3Ccb6uwsrq2vlHcLG1t7+zu2fsHLR0lirImjUSkOj7RTHDJmsBBsE6sGAl9wdr++GbWbz8wpXkk72ESMy8kQ8kDTgkYqW+XJb7CvO/iU1NrpvYGEejsNu7bFafqZMDLxM1JBeVo9O0v46ZJyCRQQbTuuk4MXkoUcCrYtNRLNIsJHZMh6xoqSci0l2ZLTPGxUQY4iJQ5EnCm/nakJNR6EvpmMiQw0ou9mfhfr5tAcOmlXMYJMEnnDwWJwBDhWSJ4wBWjICaGEKq4+SumI6IIBZNbyYTgLq68TFq1qntWrd2dV+rXeRxFVEZH6AS56ALV0S1qoCai6BE9o1f0Zj1ZL9a79TEfLVi55xD9gfX5AwFRlSU=</latexit> 分割された棒の長さ rn = pi1 + pi2 + · · · + pik <latexit sha1_base64="xO9E+n5o2Z3PBRLclx6e+8YRu48=">AAACEnicbZDLSgMxFIbPeK31VnXpJlgERSgzVdCNUHTjsoK9QDsMmTTThmYyQ5IRytBncOOruHGhiFtX7nwbM+0I2vpD4OM/5yQ5vx9zprRtf1kLi0vLK6uFteL6xubWdmlnt6miRBLaIBGPZNvHinImaEMzzWk7lhSHPqctf3id1Vv3VCoWiTs9iqkb4r5gASNYG8srHUtPoEsUeynznDE6mVI1o24v0urHGY69Utmu2BOheXByKEOuulf6NDeQJKRCE46V6jh2rN0US80Ip+NiN1E0xmSI+7RjUOCQKjedrDRGh8bpoSCS5giNJu7viRSHSo1C33SGWA/UbC0z/6t1Eh1cuCkTcaKpINOHgoQjHaEsH9RjkhLNRwYwkcz8FZEBlphok2LRhODMrjwPzWrFOa1Ub8/Ktas8jgLswwEcgQPnUIMbqEMDCDzAE7zAq/VoPVtv1vu0dcHKZ/bgj6yPbwt3m9c=</latexit> 最適な収益 個に分割 k <latexit sha1_base64="S3l8nnBLDerjgmOsR9KRP3N3+lk=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOl5rhfrrhVdw6ySrycVCBHo1/+6g1ilkYoDRNU667nJsbPqDKcCZyWeqnGhLIxHWLXUkkj1H42P3RKzqwyIGGsbElD5urviYxGWk+iwHZG1Iz0sjcT//O6qQmv/YzLJDUo2WJRmApiYjL7mgy4QmbExBLKFLe3EjaiijJjsynZELzll1dJu1b1Lqq15mWlfpPHUYQTOIVz8OAK6nAHDWgBA4RneIU359F5cd6dj0VrwclnjuEPnM8f09OM8w==</latexit> rn = max (pn, r1 + rn 1, r2 + rn 2, . . . , rn 1 + r1) <latexit sha1_base64="VF5YgItC26ZaRlklvBN81eSkKj8=">AAACOHicbVBNSwMxEM36WetX1aOXYFEqatmtgl6EohdvVrC20C1LNs22odnsksyKZenP8uLP8CZePCji1V9g+iFodSDhzXszk8zzY8E12PaTNTU9Mzs3n1nILi4tr6zm1tZvdJQoyqo0EpGq+0QzwSWrAgfB6rFiJPQFq/nd84Feu2VK80heQy9mzZC0JQ84JWAoL3epPIl3TrEbkjtXsAAKsSf3sfIcvGfuVB44/UFa+k5LJnVbEej9b3moOK7i7Q7serm8XbSHgf8CZwzyaBwVL/doptEkZBKoIFo3HDuGZkoUcCpYP+smmsWEdkmbNQyUJGS6mQ4X7+Ntw7RwEClzJOAh+7MjJaHWvdA3lSGBjp7UBuR/WiOB4KSZchknwCQdPRQkAkOEBy7iFleMgugZQKji5q+YdogiFIzXWWOCM7nyX3BTKjqHxdLVUb58NrYjgzbRFiogBx2jMrpAFVRFFN2jZ/SK3qwH68V6tz5GpVPWuGcD/Qrr8wuFtKim</latexit> 部分構造最適性に着目 長さが と の2つの金属棒に切断, それぞれの金属棒を最適に 分割することで得られる総収入 n i <latexit sha1_base64="AMTEmYgqxguyFb26Fa9BmJlDjkI=">AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4sSRV0GPRi8eK9gPaUDbbTbt0swm7E6GE/gQvHhTx6i/y5r9x2+agrQ8GHu/NMDMvSKQw6Lrfzsrq2vrGZmGruL2zu7dfOjhsmjjVjDdYLGPdDqjhUijeQIGStxPNaRRI3gpGt1O/9cS1EbF6xHHC/YgOlAgFo2ilB3UueqWyW3FnIMvEy0kZctR7pa9uP2ZpxBUySY3peG6CfkY1Cib5pNhNDU8oG9EB71iqaMSNn81OnZBTq/RJGGtbCslM/T2R0ciYcRTYzoji0Cx6U/E/r5NieO1nQiUpcsXmi8JUEozJ9G/SF5ozlGNLKNPC3krYkGrK0KZTtCF4iy8vk2a14l1UqveX5dpNHkcBjuEEzsCDK6jBHdShAQwG8Ayv8OZI58V5dz7mrStOPnMEf+B8/gAGqI2g</latexit> i <latexit sha1_base64="hA2BMjcr0btVk5qY1/HOr4xO94Q=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlJu+XK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH0MuM8Q==</latexit> 切断なし 上式をもっと簡略化 rn = max 1in (pi + rn i) <latexit sha1_base64="6RTdfevw2pAJ9wQarvRglSTkhQM=">AAACHnicbVDLSgMxFM3UV62vqks3wSJUxDJTFd0IRTcuK9gHdMqQSTNtaCYzJnfEMvRL3PgrblwoIrjSvzF9LLR6INzDOfdyc48fC67Btr+szNz8wuJSdjm3srq2vpHf3KrrKFGU1WgkItX0iWaCS1YDDoI1Y8VI6AvW8PuXI79xx5TmkbyBQczaIelKHnBKwEhe/kR5Ep9jNyT3Xuq4gt1ijsdFDk0JoBh7HB9g5aXykA9dxbs92PfyBbtkj4H/EmdKCmiKqpf/cDsRTUImgQqidcuxY2inRAGngg1zbqJZTGifdFnLUElCptvp+Lwh3jNKBweRMk8CHqs/J1ISaj0IfdMZEujpWW8k/ue1EgjO2imXcQJM0smiIBEYIjzKCne4YhTEwBBCFTd/xbRHFKFgEs2ZEJzZk/+SernkHJXK18eFysU0jizaQbuoiBx0iiroClVRDVH0gJ7QC3q1Hq1n6816n7RmrOnMNvoF6/MbSKqhXA==</latexit> 分割を左端から切り出された長さ の金属棒と 右側に残る長さ の部分とみなす i <latexit sha1_base64="hA2BMjcr0btVk5qY1/HOr4xO94Q=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlJu+XK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH0MuM8Q==</latexit> n i <latexit sha1_base64="AMTEmYgqxguyFb26Fa9BmJlDjkI=">AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4sSRV0GPRi8eK9gPaUDbbTbt0swm7E6GE/gQvHhTx6i/y5r9x2+agrQ8GHu/NMDMvSKQw6Lrfzsrq2vrGZmGruL2zu7dfOjhsmjjVjDdYLGPdDqjhUijeQIGStxPNaRRI3gpGt1O/9cS1EbF6xHHC/YgOlAgFo2ilB3UueqWyW3FnIMvEy0kZctR7pa9uP2ZpxBUySY3peG6CfkY1Cib5pNhNDU8oG9EB71iqaMSNn81OnZBTq/RJGGtbCslM/T2R0ciYcRTYzoji0Cx6U/E/r5NieO1nQiUpcsXmi8JUEozJ9G/SF5ozlGNLKNPC3krYkGrK0KZTtCF4iy8vk2a14l1UqveX5dpNHkcBjuEEzsCDK6jBHdShAQwG8Ayv8OZI58V5dz7mrStOPnMEf+B8/gAGqI2g</latexit>
/25 7 再帰的トップダウン型実現 rn = max 1in (pi + rn
i) <latexit sha1_base64="6RTdfevw2pAJ9wQarvRglSTkhQM=">AAACHnicbVDLSgMxFM3UV62vqks3wSJUxDJTFd0IRTcuK9gHdMqQSTNtaCYzJnfEMvRL3PgrblwoIrjSvzF9LLR6INzDOfdyc48fC67Btr+szNz8wuJSdjm3srq2vpHf3KrrKFGU1WgkItX0iWaCS1YDDoI1Y8VI6AvW8PuXI79xx5TmkbyBQczaIelKHnBKwEhe/kR5Ep9jNyT3Xuq4gt1ijsdFDk0JoBh7HB9g5aXykA9dxbs92PfyBbtkj4H/EmdKCmiKqpf/cDsRTUImgQqidcuxY2inRAGngg1zbqJZTGifdFnLUElCptvp+Lwh3jNKBweRMk8CHqs/J1ISaj0IfdMZEujpWW8k/ue1EgjO2imXcQJM0smiIBEYIjzKCne4YhTEwBBCFTd/xbRHFKFgEs2ZEJzZk/+SernkHJXK18eFysU0jizaQbuoiBx0iiroClVRDVH0gJ7QC3q1Hq1n6816n7RmrOnMNvoF6/MbSKqhXA==</latexit> 棒の長さがゼロであれば最適解はゼロ このアルゴリズムは効率的だろうか? 価格表 棒の長さ を返す rn = pi1 + pi2 + · · · + pik <latexit sha1_base64="xO9E+n5o2Z3PBRLclx6e+8YRu48=">AAACEnicbZDLSgMxFIbPeK31VnXpJlgERSgzVdCNUHTjsoK9QDsMmTTThmYyQ5IRytBncOOruHGhiFtX7nwbM+0I2vpD4OM/5yQ5vx9zprRtf1kLi0vLK6uFteL6xubWdmlnt6miRBLaIBGPZNvHinImaEMzzWk7lhSHPqctf3id1Vv3VCoWiTs9iqkb4r5gASNYG8srHUtPoEsUeynznDE6mVI1o24v0urHGY69Utmu2BOheXByKEOuulf6NDeQJKRCE46V6jh2rN0US80Ip+NiN1E0xmSI+7RjUOCQKjedrDRGh8bpoSCS5giNJu7viRSHSo1C33SGWA/UbC0z/6t1Eh1cuCkTcaKpINOHgoQjHaEsH9RjkhLNRwYwkcz8FZEBlphok2LRhODMrjwPzWrFOa1Ub8/Ktas8jgLswwEcgQPnUIMbqEMDCDzAE7zAq/VoPVtv1vu0dcHKZ/bgj6yPbwt3m9c=</latexit>
/25 8 4 Cut-Rod(p, 4) <latexit sha1_base64="VXW9NeIZVP5wdRHbBH6CItNX4HI=">AAACAXicbVDLSgNBEJyNrxhfq14EL4NBiKBhNwb0GMzFYxTzgCSE2dnZZMjsg5leMSzx4q948aCIV//Cm3/jJNmDJhY0FFXddHc5keAKLOvbyCwtr6yuZddzG5tb2zvm7l5DhbGkrE5DEcqWQxQTPGB14CBYK5KM+I5gTWdYnfjNeyYVD4M7GEWs65N+wD1OCWipZx50gD1A0lEUV2M4uw3dcSE6xeWTnpm3itYUeJHYKcmjFLWe+dVxQxr7LAAqiFJt24qgmxAJnAo2znVixSJCh6TP2poGxGeqm0w/GONjrbjYC6WuAPBU/T2REF+pke/oTp/AQM17E/E/rx2Dd9lNeBDFwAI6W+TFAkOIJ3Fgl0tGQYw0IVRyfSumAyIJBR1aTodgz7+8SBqlon1eLN2U85WrNI4sOkRHqIBsdIEq6BrVUB1R9Iie0St6M56MF+Pd+Ji1Zox0Zh/9gfH5A8amlck=</latexit> 3 0 2
1 0 0 1 0 1 0 0 n = 4 <latexit sha1_base64="4oLZWzjS5iueWcCbZp2dz20UMJU=">AAAB6nicbVDLSgNBEOyNrxhfUY9eBoPgKezGgF6EoBePEc0DkiXMTmaTIbOzy0yvEEI+wYsHRbz6Rd78GyfJHjSxoKGo6qa7K0ikMOi6305ubX1jcyu/XdjZ3ds/KB4eNU2casYbLJaxbgfUcCkUb6BAyduJ5jQKJG8Fo9uZ33ri2ohYPeI44X5EB0qEglG00oO6rvaKJbfszkFWiZeREmSo94pf3X7M0ogrZJIa0/HcBP0J1SiY5NNCNzU8oWxEB7xjqaIRN/5kfuqUnFmlT8JY21JI5urviQmNjBlHge2MKA7NsjcT//M6KYZX/kSoJEWu2GJRmEqCMZn9TfpCc4ZybAllWthbCRtSTRnadAo2BG/55VXSrJS9i3Llvlqq3WRx5OEETuEcPLiEGtxBHRrAYADP8ApvjnRenHfnY9Gac7KZY/gD5/MHzpWNew==</latexit> の場合 2 1 0 0 葉の数: 2n 1 <latexit sha1_base64="XbIHs5xrBIKTkV3UijySlIVcn7I=">AAAB7nicbVBNS8NAEJ34WetX1aOXxSJ4sSRV0GPRi8cK9gPaWDbbTbt0swm7E6GE/ggvHhTx6u/x5r9x2+agrQ8GHu/NMDMvSKQw6Lrfzsrq2vrGZmGruL2zu7dfOjhsmjjVjDdYLGPdDqjhUijeQIGStxPNaRRI3gpGt1O/9cS1EbF6wHHC/YgOlAgFo2ilVvUxU+fepFcquxV3BrJMvJyUIUe9V/rq9mOWRlwhk9SYjucm6GdUo2CST4rd1PCEshEd8I6likbc+Nns3Ak5tUqfhLG2pZDM1N8TGY2MGUeB7YwoDs2iNxX/8zophtd+JlSSIldsvihMJcGYTH8nfaE5Qzm2hDIt7K2EDammDG1CRRuCt/jyMmlWK95FpXp/Wa7d5HEU4BhO4Aw8uIIa3EEdGsBgBM/wCm9O4rw4787HvHXFyWeO4A+czx+dbI8Y</latexit> 問題を解くのに に関して 指数時間必要とする n <latexit sha1_base64="2QmInd+nHO60uhS7AYCvgpiU4a8=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlpuyXK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH2F+M9g==</latexit> 何度も同じ部分問題を解くのは無駄 各部分問題を”一度だけ”解くようにすれば効率的なはず!
/25 9 履歴管理を用いるトップダウン方式 保存された結果を利用 部分問題の解を保存 rn = max 1in (pi
+ rn i) <latexit sha1_base64="6RTdfevw2pAJ9wQarvRglSTkhQM=">AAACHnicbVDLSgMxFM3UV62vqks3wSJUxDJTFd0IRTcuK9gHdMqQSTNtaCYzJnfEMvRL3PgrblwoIrjSvzF9LLR6INzDOfdyc48fC67Btr+szNz8wuJSdjm3srq2vpHf3KrrKFGU1WgkItX0iWaCS1YDDoI1Y8VI6AvW8PuXI79xx5TmkbyBQczaIelKHnBKwEhe/kR5Ep9jNyT3Xuq4gt1ijsdFDk0JoBh7HB9g5aXykA9dxbs92PfyBbtkj4H/EmdKCmiKqpf/cDsRTUImgQqidcuxY2inRAGngg1zbqJZTGifdFnLUElCptvp+Lwh3jNKBweRMk8CHqs/J1ISaj0IfdMZEujpWW8k/ue1EgjO2imXcQJM0smiIBEYIjzKCne4YhTEwBBCFTd/xbRHFKFgEs2ZEJzZk/+SernkHJXK18eFysU0jizaQbuoiBx0iiroClVRDVH0gJ7QC3q1Hq1n6816n7RmrOnMNvoF6/MbSKqhXA==</latexit> 履歴表を初期化 4 3 0 2 1 0 0 1 1 0 2 ⇥ n2 <latexit sha1_base64="HgiBb1IwoGeFkFQot3wSnD2hmNc=">AAAB/3icbVDLSgNBEJyNrxhfq4IXL4tBiJewGwU9Br14jJAXZGOYnfQmQ2Znl5leIcQc/BUvHhTx6m9482+cPA6aWNBQVHXT3RUkgmt03W8rs7K6tr6R3cxtbe/s7tn7B3Udp4pBjcUiVs2AahBcQg05CmgmCmgUCGgEg5uJ33gApXksqzhMoB3RnuQhZxSN1LGP/GofkPoCQizI+5KveK+PZx077xbdKZxl4s1JnsxR6dhffjdmaQQSmaBatzw3wfaIKuRMwDjnpxoSyga0By1DJY1At0fT+8fOqVG6ThgrUxKdqfp7YkQjrYdRYDojin296E3E/7xWiuFVe8RlkiJINlsUpsLB2JmE4XS5AoZiaAhliptbHdanijI0keVMCN7iy8ukXip658XS3UW+fD2PI0uOyQkpEI9ckjK5JRVSI4w8kmfySt6sJ+vFerc+Zq0Zaz5zSP7A+vwBXiOVrQ==</latexit> 計算量:
/25 10 ボトムアップ方式 履歴表を初期化 3 2 0 1 4 ⇥
n2 <latexit sha1_base64="HgiBb1IwoGeFkFQot3wSnD2hmNc=">AAAB/3icbVDLSgNBEJyNrxhfq4IXL4tBiJewGwU9Br14jJAXZGOYnfQmQ2Znl5leIcQc/BUvHhTx6m9482+cPA6aWNBQVHXT3RUkgmt03W8rs7K6tr6R3cxtbe/s7tn7B3Udp4pBjcUiVs2AahBcQg05CmgmCmgUCGgEg5uJ33gApXksqzhMoB3RnuQhZxSN1LGP/GofkPoCQizI+5KveK+PZx077xbdKZxl4s1JnsxR6dhffjdmaQQSmaBatzw3wfaIKuRMwDjnpxoSyga0By1DJY1At0fT+8fOqVG6ThgrUxKdqfp7YkQjrYdRYDojin296E3E/7xWiuFVe8RlkiJINlsUpsLB2JmE4XS5AoZiaAhliptbHdanijI0keVMCN7iy8ukXip658XS3UW+fD2PI0uOyQkpEI9ckjK5JRVSI4w8kmfySt6sJ+vFerc+Zq0Zaz5zSP7A+vwBXiOVrQ==</latexit> 計算量: 部分問題グラフ と呼ばれる を計算 rj <latexit sha1_base64="5phcDxLPvTMs4BrLH+U90NbRX7c=">AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4KkkV9Fj04rGi/YA2lM12067dbMLuRCihP8GLB0W8+ou8+W/ctjlo64OBx3szzMwLEikMuu63s7K6tr6xWdgqbu/s7u2XDg6bJk414w0Wy1i3A2q4FIo3UKDk7URzGgWSt4LRzdRvPXFtRKwecJxwP6IDJULBKFrpXvcee6WyW3FnIMvEy0kZctR7pa9uP2ZpxBUySY3peG6CfkY1Cib5pNhNDU8oG9EB71iqaMSNn81OnZBTq/RJGGtbCslM/T2R0ciYcRTYzoji0Cx6U/E/r5NieOVnQiUpcsXmi8JUEozJ9G/SF5ozlGNLKNPC3krYkGrK0KZTtCF4iy8vk2a14p1XqncX5dp1HkcBjuEEzsCDS6jBLdShAQwG8Ayv8OZI58V5dz7mrStOPnMEf+B8/gBaPo3X</latexit> 小さい問題から 順に解く
/25 11 解の再構成 もともとのモチベーション 1本の金属棒からいくつかの金属棒を切り出すとき 収益最大化を達成するような切断箇所を決定したい 左端からの切出し位置 切出し位置の保存 長さ 1
2 3 4 5 6 7 価格 1 5 8 9 10 17 17 i <latexit sha1_base64="hA2BMjcr0btVk5qY1/HOr4xO94Q=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlJu+XK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH0MuM8Q==</latexit> pi <latexit sha1_base64="d859ofo0ri5GbQo8/CJ8f1zry30=">AAAB6nicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48V7Qe0oWy2k3bpZhN2N0IJ/QlePCji1V/kzX/jts1BWx8MPN6bYWZekAiujet+O4W19Y3NreJ2aWd3b/+gfHjU0nGqGDZZLGLVCahGwSU2DTcCO4lCGgUC28H4dua3n1BpHstHM0nQj+hQ8pAzaqz0kPR5v1xxq+4cZJV4OalAjka//NUbxCyNUBomqNZdz02Mn1FlOBM4LfVSjQllYzrErqWSRqj9bH7qlJxZZUDCWNmShszV3xMZjbSeRIHtjKgZ6WVvJv7ndVMTXvsZl0lqULLFojAVxMRk9jcZcIXMiIkllClubyVsRBVlxqZTsiF4yy+vklat6l1Ua/eXlfpNHkcRTuAUzsGDK6jDHTSgCQyG8Ayv8OYI58V5dz4WrQUnnzmGP3A+fwBVro3U</latexit> 練習. 下の価格表に対し の場合の 最適な切分けを求めよ n = 7 <latexit sha1_base64="uOVCHv/GHlxDxnmLqcZixtu+GXo=">AAAB6nicbVDLSgNBEOyNrxhfUY9eBoPgKexGIV6EoBePEc0DkiXMTnqTIbOzy8ysEEI+wYsHRbz6Rd78GyfJHjSxoKGo6qa7K0gE18Z1v53c2vrG5lZ+u7Czu7d/UDw8auo4VQwbLBaxagdUo+ASG4Ybge1EIY0Cga1gdDvzW0+oNI/loxkn6Ed0IHnIGTVWepDX1V6x5JbdOcgq8TJSggz1XvGr249ZGqE0TFCtO56bGH9CleFM4LTQTTUmlI3oADuWShqh9ifzU6fkzCp9EsbKljRkrv6emNBI63EU2M6ImqFe9mbif14nNeGVP+EySQ1KtlgUpoKYmMz+Jn2ukBkxtoQyxe2thA2poszYdAo2BG/55VXSrJS9i3Ll/rJUu8niyMMJnMI5eFCFGtxBHRrAYADP8ApvjnBenHfnY9Gac7KZY/gD5/MH0yGNfg==</latexit> 答え: i1 = 1, i2 = 6 <latexit sha1_base64="gTecf2SyGBStgt0axZz3KCN1+NM=">AAAB+XicbZDLSsNAFIZP6q3WW9Slm8EiuJCStKJuhKIblxXsBdoQJtNJO3QyCTOTQgl9EzcuFHHrm7jzbZy2WWjrDwMf/zmHc+YPEs6Udpxvq7C2vrG5Vdwu7ezu7R/Yh0ctFaeS0CaJeSw7AVaUM0GbmmlOO4mkOAo4bQej+1m9PaZSsVg86UlCvQgPBAsZwdpYvm0z30W3yL1AzK8auPLtslNx5kKr4OZQhlwN3/7q9WOSRlRowrFSXddJtJdhqRnhdFrqpYommIzwgHYNChxR5WXzy6fozDh9FMbSPKHR3P09keFIqUkUmM4I66Fars3M/2rdVIc3XsZEkmoqyGJRmHKkYzSLAfWZpETziQFMJDO3IjLEEhNtwiqZENzlL69Cq1pxa5Xq42W5fpfHUYQTOIVzcOEa6vAADWgCgTE8wyu8WZn1Yr1bH4vWgpXPHMMfWZ8/b+KQ7w==</latexit>
/25 12 分割統治法っぽい手法で問題を解こうとするときに, 何度も同じ部分問題に遭遇する場合, その部分問題の解を保存しておき適宜利用すれば効率的 ここまでのハイライト
/25 13 ケーススタディ2: 連鎖行列積 個の行列が与えられたとき を求めたい. A1A2 · · ·
An <latexit sha1_base64="UyNC00PT78D/svO/N5YRdIsZfXQ=">AAAB+3icbZDLSgMxFIYzXmu91bp0EyyCqzJTBV22unFZwV6gHYZMJtOGZpIhOSOW0ldx40IRt76IO9/GtJ2Ftv4Q+PjPOZyTP0wFN+C6387a+sbm1nZhp7i7t39wWDoqt43KNGUtqoTS3ZAYJrhkLeAgWDfVjCShYJ1wdDurdx6ZNlzJBxinzE/IQPKYUwLWCkrlRuDhRlDDfRopMBatWXGr7lx4FbwcKihXMyh99SNFs4RJoIIY0/PcFPwJ0cCpYNNiPzMsJXREBqxnUZKEGX8yv32Kz6wT4Vhp+yTguft7YkISY8ZJaDsTAkOzXJuZ/9V6GcTX/oTLNAMm6WJRnAkMCs+CwBHXjIIYWyBUc3srpkOiCQUbV9GG4C1/eRXatap3Ua3dX1bqN3kcBXSCTtE58tAVqqM71EQtRNETekav6M2ZOi/Ou/OxaF1z8plj9EfO5w+uvJLt</latexit> n <latexit sha1_base64="2QmInd+nHO60uhS7AYCvgpiU4a8=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlpuyXK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH2F+M9g==</latexit> (単純に)行列積を実行するのに必要なスカラー積の回数: 例 に対して の2通りの計算順序がある hA1, A2, A3 i <latexit sha1_base64="TTs6ndWGIyX4K/CVNCfBWzULGB4=">AAACA3icbVDLSgMxFM3UV62vUXe6CRbBhZSZVtCFSKsblxXsA9oyZNJMG5rJDMkdoZSCG3/FjQtF3PoT7vwbM20X2nrgXg7n3Etyjx8LrsFxvq3M0vLK6lp2PbexubW9Y+/u1XWUKMpqNBKRavpEM8ElqwEHwZqxYiT0BWv4g5vUbzwwpXkk72EYs05IepIHnBIwkmcftAUL4LLiuae44hXTVmor3uvDlWfnnYIzAV4k7ozk0QxVz/5qdyOahEwCFUTrluvE0BkRBZwKNs61E81iQgekx1qGShIy3RlNbhjjY6N0cRApUxLwRP29MSKh1sPQN5Mhgb6e91LxP6+VQHDRGXEZJ8AknT4UJAJDhNNAcJcrRkEMDSFUcfNXTPtEEQomtpwJwZ0/eZHUiwW3VCjeneXL17M4sugQHaET5KJzVEa3qIpqiKJH9Ixe0Zv1ZL1Y79bHdDRjzXb20R9Ynz/ZbJW8</latexit> (A1(A2A3)) <latexit sha1_base64="eBWXN76IhyTf1r7Z9lkep43RPoY=">AAAB+HicbVDLSgMxFL3js9ZHR126CRah3ZSZVtBlqxuXFewD2mHIpJk2NJMZkoxQh36JGxeKuPVT3Pk3po+Fth64l8M595KbEyScKe0439bG5tb2zm5uL79/cHhUsI9P2ipOJaEtEvNYdgOsKGeCtjTTnHYTSXEUcNoJxrczv/NIpWKxeNCThHoRHgoWMoK1kXy7UGr4LjKtihp+rVz27aJTceZA68RdkiIs0fTtr/4gJmlEhSYcK9VznUR7GZaaEU6n+X6qaILJGA9pz1CBI6q8bH74FF0YZYDCWJoSGs3V3xsZjpSaRIGZjLAeqVVvJv7n9VIdXnsZE0mqqSCLh8KUIx2jWQpowCQlmk8MwUQycysiIywx0SarvAnBXf3yOmlXK26tUr2/LNZvlnHk4AzOoQQuXEEd7qAJLSCQwjO8wpv1ZL1Y79bHYnTDWu6cwh9Ynz/YJJCd</latexit> ((A1A2)A3) <latexit sha1_base64="NmmJcp9OveOg5+3uYB5HWejcZSI=">AAAB+HicbVDLTgIxFL3jE/HBqEs3jcQENmQGTHQJunGJiTwSmEw6pUBDpzNpOyY44UvcuNAYt36KO//GArNQ8CT35uSce9PbE8ScKe0439bG5tb2zm5uL79/cHhUsI9P2ipKJKEtEvFIdgOsKGeCtjTTnHZjSXEYcNoJJrdzv/NIpWKReNDTmHohHgk2ZARrI/l2oVRq+C5q+NWyabWybxedirMAWiduRoqQoenbX/1BRJKQCk04VqrnOrH2Uiw1I5zO8v1E0RiTCR7RnqECh1R56eLwGbowygANI2lKaLRQf2+kOFRqGgZmMsR6rFa9ufif10v08NpLmYgTTQVZPjRMONIRmqeABkxSovnUEEwkM7ciMsYSE22yypsQ3NUvr5N2teLWKtX7y2L9JosjB2dwDiVw4QrqcAdNaAGBBJ7hFd6sJ+vFerc+lqMbVrZzCn9gff4A14SQnQ==</latexit> , C <latexit sha1_base64="re76Zkt0iSC9uIARbCEdpPGTKdg=">AAAB6HicbVDLTgJBEOzFF+IL9ehlIjHxRHbRRI9ELh4hkUcCGzI79MLI7OxmZtaEEL7AiweN8eonefNvHGAPClbSSaWqO91dQSK4Nq777eQ2Nre2d/K7hb39g8Oj4vFJS8epYthksYhVJ6AaBZfYNNwI7CQKaRQIbAfj2txvP6HSPJYPZpKgH9Gh5CFn1FipUesXS27ZXYCsEy8jJchQ7xe/eoOYpRFKwwTVuuu5ifGnVBnOBM4KvVRjQtmYDrFrqaQRan+6OHRGLqwyIGGsbElDFurviSmNtJ5Ege2MqBnpVW8u/ud1UxPe+lMuk9SgZMtFYSqIicn8azLgCpkRE0soU9zeStiIKsqMzaZgQ/BWX14nrUrZuypXGtel6l0WRx7O4BwuwYMbqMI91KEJDBCe4RXenEfnxXl3PpatOSebOYU/cD5/AJczjMs=</latexit> A <latexit sha1_base64="Lihtv2jYSe0RaYbwwPdS8141boc=">AAAB6HicbVDLTgJBEOzFF+IL9ehlIjHxRHbRRI+oF4+QyCOBDZkdemFkdnYzM2tCCF/gxYPGePWTvPk3DrAHBSvppFLVne6uIBFcG9f9dnJr6xubW/ntws7u3v5B8fCoqeNUMWywWMSqHVCNgktsGG4EthOFNAoEtoLR3cxvPaHSPJYPZpygH9GB5CFn1FipftMrltyyOwdZJV5GSpCh1it+dfsxSyOUhgmqdcdzE+NPqDKcCZwWuqnGhLIRHWDHUkkj1P5kfuiUnFmlT8JY2ZKGzNXfExMaaT2OAtsZUTPUy95M/M/rpCa89idcJqlByRaLwlQQE5PZ16TPFTIjxpZQpri9lbAhVZQZm03BhuAtv7xKmpWyd1Gu1C9L1dssjjycwCmcgwdXUIV7qEEDGCA8wyu8OY/Oi/PufCxac042cwx/4Hz+AJQrjMk=</latexit> B <latexit sha1_base64="wW6OXYFoJg3RvlrYIdlxqPzQzSE=">AAAB6HicbVDLTgJBEOzFF+IL9ehlIjHxRHbRRI8ELx4hkUcCGzI79MLI7OxmZtaEEL7AiweN8eonefNvHGAPClbSSaWqO91dQSK4Nq777eQ2Nre2d/K7hb39g8Oj4vFJS8epYthksYhVJ6AaBZfYNNwI7CQKaRQIbAfju7nffkKleSwfzCRBP6JDyUPOqLFSo9YvltyyuwBZJ15GSpCh3i9+9QYxSyOUhgmqdddzE+NPqTKcCZwVeqnGhLIxHWLXUkkj1P50ceiMXFhlQMJY2ZKGLNTfE1MaaT2JAtsZUTPSq95c/M/rpia89adcJqlByZaLwlQQE5P512TAFTIjJpZQpri9lbARVZQZm03BhuCtvrxOWpWyd1WuNK5L1VoWRx7O4BwuwYMbqMI91KEJDBCe4RXenEfnxXl3PpatOSebOYU/cD5/AJWvjMo=</latexit> C <latexit sha1_base64="re76Zkt0iSC9uIARbCEdpPGTKdg=">AAAB6HicbVDLTgJBEOzFF+IL9ehlIjHxRHbRRI9ELh4hkUcCGzI79MLI7OxmZtaEEL7AiweN8eonefNvHGAPClbSSaWqO91dQSK4Nq777eQ2Nre2d/K7hb39g8Oj4vFJS8epYthksYhVJ6AaBZfYNNwI7CQKaRQIbAfj2txvP6HSPJYPZpKgH9Gh5CFn1FipUesXS27ZXYCsEy8jJchQ7xe/eoOYpRFKwwTVuuu5ifGnVBnOBM4KvVRjQtmYDrFrqaQRan+6OHRGLqwyIGGsbElDFurviSmNtJ5Ege2MqBnpVW8u/ud1UxPe+lMuk9SgZMtFYSqIicn8azLgCpkRE0soU9zeStiIKsqMzaZgQ/BWX14nrUrZuypXGtel6l0WRx7O4BwuwYMbqMI91KEJDBCe4RXenEfnxXl3PpatOSebOYU/cD5/AJczjMs=</latexit> A.columns <latexit sha1_base64="9YLEa9C8sPOGS0rejJCUWgb5KgY=">AAAB+3icbVC7TsMwFHXKq5RXKCOLRYXEFCUFCcYCC2OR6ENqo8px3daq40T2DaKK8issDCDEyo+w8Tc4bQZoOZKlo3PutY9PEAuuwXW/rdLa+sbmVnm7srO7t39gH1bbOkoUZS0aiUh1A6KZ4JK1gINg3VgxEgaCdYLpbe53HpnSPJIPMIuZH5Kx5CNOCRhpYFf7IYEJh/TaMZclodTZwK65jjsHXiVeQWqoQHNgf/WHEU1CJoEKonXPc2PwU6KAU8GySj/RLCZ0SsasZ6gkIdN+Os+e4VOjDPEoUuZIwHP190ZKQq1nYWAm86R62cvF/7xeAqMrP+UyToBJunholAgMEc6LwEOuGAUxM4RQxU1WTCdEEQqmroopwVv+8ipp1x3v3KnfX9QaN0UdZXSMTtAZ8tAlaqA71EQtRNETekav6M3KrBfr3fpYjJasYucI/YH1+QNo6pSu</latexit> A.rows B.columns <latexit sha1_base64="vr/cq1LJaYeMLATSHP9LD+h/Z1M=">AAAB+3icbVC7TsMwFL0pr1JeoYwsFhUSU5QUJBirsjAWiT6kNqoc12mtOk5kO4gq6q+wMIAQKz/Cxt/gtBmg5UiWjs651z4+QcKZ0q77bZU2Nre2d8q7lb39g8Mj+7jaUXEqCW2TmMeyF2BFORO0rZnmtJdIiqOA024wvc397iOVisXiQc8S6kd4LFjICNZGGtrVQYT1hOms6ZjL0kio+dCuuY67AFonXkFqUKA1tL8Go5ikERWacKxU33MT7WdYakY4nVcGqaIJJlM8pn1DBY6o8rNF9jk6N8oIhbE0R2i0UH9vZDhSahYFZjJPqla9XPzP66c6vPEzJpJUU0GWD4UpRzpGeRFoxCQlms8MwUQykxWRCZaYaFNXxZTgrX55nXTqjnfp1O+vao1mUUcZTuEMLsCDa2jAHbSgDQSe4Ble4c2aWy/Wu/WxHC1Zxc4J/IH1+QNqd5Sv</latexit> (A1(A2A3)) <latexit sha1_base64="eBWXN76IhyTf1r7Z9lkep43RPoY=">AAAB+HicbVDLSgMxFL3js9ZHR126CRah3ZSZVtBlqxuXFewD2mHIpJk2NJMZkoxQh36JGxeKuPVT3Pk3po+Fth64l8M595KbEyScKe0439bG5tb2zm5uL79/cHhUsI9P2ipOJaEtEvNYdgOsKGeCtjTTnHYTSXEUcNoJxrczv/NIpWKxeNCThHoRHgoWMoK1kXy7UGr4LjKtihp+rVz27aJTceZA68RdkiIs0fTtr/4gJmlEhSYcK9VznUR7GZaaEU6n+X6qaILJGA9pz1CBI6q8bH74FF0YZYDCWJoSGs3V3xsZjpSaRIGZjLAeqVVvJv7n9VIdXnsZE0mqqSCLh8KUIx2jWQpowCQlmk8MwUQycysiIywx0SarvAnBXf3yOmlXK26tUr2/LNZvlnHk4AzOoQQuXEEd7qAJLSCQwjO8wpv1ZL1Y79bHYnTDWu6cwh9Ynz/YJJCd</latexit> ((A1A2)A3) <latexit sha1_base64="NmmJcp9OveOg5+3uYB5HWejcZSI=">AAAB+HicbVDLTgIxFL3jE/HBqEs3jcQENmQGTHQJunGJiTwSmEw6pUBDpzNpOyY44UvcuNAYt36KO//GArNQ8CT35uSce9PbE8ScKe0439bG5tb2zm5uL79/cHhUsI9P2ipKJKEtEvFIdgOsKGeCtjTTnHZjSXEYcNoJJrdzv/NIpWKReNDTmHohHgk2ZARrI/l2oVRq+C5q+NWyabWybxedirMAWiduRoqQoenbX/1BRJKQCk04VqrnOrH2Uiw1I5zO8v1E0RiTCR7RnqECh1R56eLwGbowygANI2lKaLRQf2+kOFRqGgZmMsR6rFa9ufif10v08NpLmYgTTQVZPjRMONIRmqeABkxSovnUEEwkM7ciMsYSE22yypsQ3NUvr5N2teLWKtX7y2L9JosjB2dwDiVw4QrqcAdNaAGBBJ7hFd6sJ+vFerc+lqMbVrZzCn9gff4A14SQnQ==</latexit> とすると 10 ⇥ 100 <latexit sha1_base64="oogigaoiv4AhIYZm3mefTUoi2U8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBA8hdko6DHoxWME84DsEmYns8mQ2QczvUJY8htePCji1Z/x5t84SfagiQUNRVU33V1BqqRBSr+dtfWNza3t0k55d2//4LBydNw2Saa5aPFEJbobMCOUjEULJSrRTbVgUaBEJxjfzfzOk9BGJvEjTlLhR2wYy1ByhlbyXOqhjIQhLqX9SpXW6BxklbgFqUKBZr/y5Q0SnkUiRq6YMT2XpujnTKPkSkzLXmZEyviYDUXP0pjZRX4+v3lKzq0yIGGibcVI5urviZxFxkyiwHZGDEdm2ZuJ/3m9DMMbP5dxmqGI+WJRmCmCCZkFQAZSC45qYgnjWtpbCR8xzTjamMo2BHf55VXSrtfcy1r94arauC3iKMEpnMEFuHANDbiHJrSAQwrP8ApvTua8OO/Ox6J1zSlmTuAPnM8fQ4WQhg==</latexit> A1 <latexit sha1_base64="1F4OlKPns/30nPpm+xW/QfYxQvs=">AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4KkkV9Fj14rGi/YA2lM120i7dbMLuRiihP8GLB0W8+ou8+W/ctjlo64OBx3szzMwLEsG1cd1vZ2V1bX1js7BV3N7Z3dsvHRw2dZwqhg0Wi1i1A6pRcIkNw43AdqKQRoHAVjC6nfqtJ1Sax/LRjBP0IzqQPOSMGis9XPe8XqnsVtwZyDLxclKGHPVe6avbj1kaoTRMUK07npsYP6PKcCZwUuymGhPKRnSAHUsljVD72ezUCTm1Sp+EsbIlDZmpvycyGmk9jgLbGVEz1IveVPzP66QmvPIzLpPUoGTzRWEqiInJ9G/S5wqZEWNLKFPc3krYkCrKjE2naEPwFl9eJs1qxTuvVO8vyrWbPI4CHMMJnIEHl1CDO6hDAxgM4Ble4c0Rzovz7nzMW1ecfOYI/sD5/AG5JY1t</latexit> : 100 ⇥ 5 <latexit sha1_base64="uN2BCbAug4movO8AvPwwpnOanXo=">AAAB8nicbVBNSwMxEJ2tX7V+VT16CRbBU9mtih6LXjxWsB/QLiWbZtvQ7GZJZoWy9Gd48aCIV3+NN/+NabsHbX0QeLw3k5l5QSKFQdf9dgpr6xubW8Xt0s7u3v5B+fCoZVSqGW8yJZXuBNRwKWLeRIGSdxLNaRRI3g7GdzO//cS1ESp+xEnC/YgOYxEKRtFKXc91eygibshVv1xxq+4cZJV4OalAjka//NUbKJZGPEYmqTH2swT9jGoUTPJpqZcanlA2pkPetTSmdoyfzVeekjOrDEiotH0xkrn6uyOjkTGTKLCVEcWRWfZm4n9eN8Xwxs9EnKTIY7YYFKaSoCKz+8lAaM5QTiyhTAu7K2EjqilDm1LJhuAtn7xKWrWqd1GtPVxW6rd5HEU4gVM4Bw+uoQ730IAmMFDwDK/w5qDz4rw7H4vSgpP3HMMfOJ8/1x+QUA==</latexit> A2 <latexit sha1_base64="fRO/sQlVWHh1j7Za7usQh7tlwZk=">AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4KkkV9Fj14rGi/YA2lM120y7dbMLuRCihP8GLB0W8+ou8+W/ctjlo64OBx3szzMwLEikMuu63s7K6tr6xWdgqbu/s7u2XDg6bJk414w0Wy1i3A2q4FIo3UKDk7URzGgWSt4LR7dRvPXFtRKwecZxwP6IDJULBKFrp4bpX7ZXKbsWdgSwTLydlyFHvlb66/ZilEVfIJDWm47kJ+hnVKJjkk2I3NTyhbEQHvGOpohE3fjY7dUJOrdInYaxtKSQz9fdERiNjxlFgOyOKQ7PoTcX/vE6K4ZWfCZWkyBWbLwpTSTAm079JX2jOUI4toUwLeythQ6opQ5tO0YbgLb68TJrVindeqd5flGs3eRwFOIYTOAMPLqEGd1CHBjAYwDO8wpsjnRfn3fmYt644+cwR/IHz+QO6qY1u</latexit> : 5 ⇥ 50 <latexit sha1_base64="u/jUN5Swp6OJHLBmJ1+sqtkqKTM=">AAAB8XicbVDLTgJBEOzFF+IL9ehlIjHxRHZRokeiF4+YyCPChswOszBhdnYz02tCCH/hxYPGePVvvPk3DrAHBSvppFLVne6uIJHCoOt+O7m19Y3Nrfx2YWd3b/+geHjUNHGqGW+wWMa6HVDDpVC8gQIlbyea0yiQvBWMbmd+64lrI2L1gOOE+xEdKBEKRtFKj9UuiogbUnV7xZJbducgq8TLSAky1HvFr24/ZmnEFTJJjel4boL+hGoUTPJpoZsanlA2ogPesVRRu8efzC+ekjOr9EkYa1sKyVz9PTGhkTHjKLCdEcWhWfZm4n9eJ8Xw2p8IlaTIFVssClNJMCaz90lfaM5Qji2hTAt7K2FDqilDG1LBhuAtv7xKmpWyd1Gu3F+WajdZHHk4gVM4Bw+uoAZ3UIcGMFDwDK/w5hjnxXl3PhatOSebOYY/cD5/AG8PkBo=</latexit> A3 <latexit sha1_base64="w07XpCbZAwClDXImoqTbR/jXysU=">AAAB6nicbVDLTgJBEOzFF+IL9ehlIjHxRHbBRI+oF48Y5ZHAhswOszBhdnYz02tCCJ/gxYPGePWLvPk3DrAHBSvppFLVne6uIJHCoOt+O7m19Y3Nrfx2YWd3b/+geHjUNHGqGW+wWMa6HVDDpVC8gQIlbyea0yiQvBWMbmd+64lrI2L1iOOE+xEdKBEKRtFKD9e9aq9YcsvuHGSVeBkpQYZ6r/jV7ccsjbhCJqkxHc9N0J9QjYJJPi10U8MTykZ0wDuWKhpx40/mp07JmVX6JIy1LYVkrv6emNDImHEU2M6I4tAsezPxP6+TYnjlT4RKUuSKLRaFqSQYk9nfpC80ZyjHllCmhb2VsCHVlKFNp2BD8JZfXiXNStmrliv3F6XaTRZHHk7gFM7Bg0uowR3UoQEMBvAMr/DmSOfFeXc+Fq05J5s5hj9wPn8AvC2Nbw==</latexit> : , , 10 ⇥ 100 ⇥ 5 <latexit sha1_base64="1picEZ/nH3a84GLsjzoDY8dBDUs=">AAAB/XicbZDJSgNBEIZr4hbjNi43L41B8BRmoqLHoBePEcwCyRB6Oj1Jk56F7hohhuCrePGgiFffw5tvYycZQRN/aPj4q4qq/v1ECo2O82XllpZXVtfy64WNza3tHXt3r67jVDFeY7GMVdOnmksR8RoKlLyZKE5DX/KGP7ie1Bv3XGkRR3c4TLgX0l4kAsEoGqtjH7hOG0XINXGdHzrv2EWn5ExFFsHNoAiZqh37s92NWRryCJmkWrdcJ0FvRBUKJvm40E41Tygb0B5vGYyoWeONptePybFxuiSIlXkRkqn7e2JEQ62HoW86Q4p9PV+bmP/VWikGl95IREmKPGKzRUEqCcZkEgXpCsUZyqEBypQwtxLWp4oyNIEVTAju/JcXoV4uuael8u1ZsXKVxZGHQziCE3DhAipwA1WoAYMHeIIXeLUerWfrzXqfteasbGYf/sj6+AZTtZPa</latexit> 100 ⇥ 5 ⇥ 50 <latexit sha1_base64="hbxPMXvdOO8j0tavunDeivqKP1g=">AAAB/nicbVDLSgMxFL3js9bXqLhyEyyCq5Kpii6LblxWsA9oh5JJM21oJjMkGaEMBX/FjQtF3Pod7vwb03YEbT0QcjjnXu69J0gE1wbjL2dpeWV1bb2wUdzc2t7Zdff2GzpOFWV1GotYtQKimeCS1Q03grUSxUgUCNYMhjcTv/nAlOaxvDejhPkR6UseckqMlbruoYcx6hgeMY0ufn7cdUu4jKdAi8TLSQly1LruZ6cX0zRi0lBBtG57ODF+RpThVLBxsZNqlhA6JH3WtlQSO8fPpuuP0YlVeiiMlX3SoKn6uyMjkdajKLCVETEDPe9NxP+8dmrCKz/jMkkNk3Q2KEwFMjGaZIF6XDFqxMgSQhW3uyI6IIpQYxMr2hC8+ZMXSaNS9s7KlbvzUvU6j6MAR3AMp+DBJVThFmpQBwoZPMELvDqPzrPz5rzPSpecvOcA/sD5+AayR5QI</latexit> 10 ⇥ 100 ⇥ 50 <latexit sha1_base64="ZCPVaAxAdPnYafwOZYf/9Ju+Hk0=">AAACAHicbZDLSgMxFIYzXmu9jbpw4SZYBFclUxVdFt24rGAv0A4lk2ba0ExmSM4IZejGV3HjQhG3PoY738a0HURbfwh8/OccTs4fJFIYIOTLWVpeWV1bL2wUN7e2d3bdvf2GiVPNeJ3FMtatgBouheJ1ECB5K9GcRoHkzWB4M6k3H7g2Ilb3MEq4H9G+EqFgFKzVdQ89gjsgIm6wR37wgnTdEimTqfAieDmUUK5a1/3s9GKWRlwBk9SYtkcS8DOqQTDJx8VOanhC2ZD2eduionaPn00PGOMT6/RwGGv7FOCp+3sio5ExoyiwnRGFgZmvTcz/au0Uwis/EypJgSs2WxSmEkOMJ2ngntCcgRxZoEwL+1fMBlRTBjazog3Bmz95ERqVsndWrtydl6rXeRwFdISO0Sny0CWqoltUQ3XE0Bg9oRf06jw6z86b8z5rXXLymQP0R87HN3r5lGg=</latexit> 10 ⇥ 5 ⇥ 50 <latexit sha1_base64="9Rjr0kckWHme1tSiWr+H1gtsZzg=">AAAB/HicbVDLSgNBEOz1GeNrNUcvg0HwFHajosegF48RzAOSJcxOJsmQ2QczvcKyxF/x4kERr36IN//GSbKCJhYMU1R1093lx1JodJwva2V1bX1js7BV3N7Z3du3Dw6bOkoU4w0WyUi1faq5FCFvoEDJ27HiNPAlb/njm6nfeuBKiyi8xzTmXkCHoRgIRtFIPbvkOl0UAdfk4ud3enbZqTgzkGXi5qQMOeo9+7Pbj1gS8BCZpFp3XCdGL6MKBZN8UuwmmseUjemQdwwNqZnjZbPlJ+TEKH0yiJR5IZKZ+rsjo4HWaeCbyoDiSC96U/E/r5Pg4MrLRBgnyEM2HzRIJMGITJMgfaE4Q5kaQpkSZlfCRlRRhiavognBXTx5mTSrFfesUr07L9eu8zgKcATHcAouXEINbqEODWCQwhO8wKv1aD1bb9b7vHTFyntK8AfWxzfoZpOk</latexit> A.rows ⇥ A.columns ⇥ B.columns <latexit sha1_base64="O5V6ASu3+uMMtDEM0iMa847uwMY=">AAACLHicbVBdSwJBFJ21L7OvrR57GZKgJ9m1oB5NX3o0SA1UZHYcdXB2Zpm5W8jiD+qlvxJED0n02u9oVqUP7cKFwzn3cu49QSS4Ac+bOJmV1bX1jexmbmt7Z3fP3T+oGxVrympUCaXvAmKY4JLVgINgd5FmJAwEawTDSqo37pk2XMlbGEWsHZK+5D1OCViq41ZaIYEBh+SqoNWDGeMW8JAZ/ENbjziUy0r5W+m4ea/gTQsvA38O8mhe1Y770uoqGodMAhXEmKbvRdBOiAZOBRvnWrFhEaFD0mdNCyWxvu1k+uwYn1imi3tK25aAp+zvjYSExozCwE6ml5pFLSX/05ox9C7bCZdRDEzSmVEvFhgUTpPDXa4ZBTGygFDN7a2YDogmFGy+ORuCv/jyMqgXC/5ZoXhzni+V53Fk0RE6RqfIRxeohK5RFdUQRY/oGb2hifPkvDrvzsdsNOPMdw7Rn3I+vwBEe6l1</latexit> 7500 <latexit sha1_base64="L2DgauvEnVHlq4VE5JGZaxQm9sA=">AAAB63icbVBNSwMxEJ2tX7V+VT16CRbBU9mtlXosevFYwX5Au5Rsmm1Dk+ySZIWy9C948aCIV/+QN/+N2XYP2vpg4PHeDDPzgpgzbVz32ylsbG5t7xR3S3v7B4dH5eOTjo4SRWibRDxSvQBrypmkbcMMp71YUSwCTrvB9C7zu09UaRbJRzOLqS/wWLKQEWwyqXHtusNyxa26C6B14uWkAjlaw/LXYBSRRFBpCMda9z03Nn6KlWGE03lpkGgaYzLFY9q3VGJBtZ8ubp2jC6uMUBgpW9Kghfp7IsVC65kIbKfAZqJXvUz8z+snJrzxUybjxFBJlovChCMToexxNGKKEsNnlmCimL0VkQlWmBgbT8mG4K2+vE46tap3Va091CvN2zyOIpzBOVyCBw1owj20oA0EJvAMr/DmCOfFeXc+lq0FJ585hT9wPn8A1teNcg==</latexit> 回 75000 <latexit sha1_base64="PyFLqLOiWbmQFW6/04vHYHL/BC8=">AAAB7HicbVBNTwIxEJ3FL8Qv1KOXRmLiiXQRg0eiF4+YuEACG9ItXWjodjdt14Rs+A1ePGiMV3+QN/+NBfag4EsmeXlvJjPzgkRwbTD+dgobm1vbO8Xd0t7+weFR+fikreNUUebRWMSqGxDNBJfMM9wI1k0UI1EgWCeY3M39zhNTmsfy0UwT5kdkJHnIKTFW8hrXGONBuYKreAG0TtycVCBHa1D+6g9jmkZMGiqI1j0XJ8bPiDKcCjYr9VPNEkInZMR6lkoSMe1ni2Nn6MIqQxTGypY0aKH+nshIpPU0CmxnRMxYr3pz8T+vl5rwxs+4TFLDJF0uClOBTIzmn6MhV4waMbWEUMXtrYiOiSLU2HxKNgR39eV10q5V3atq7aFead7mcRThDM7hElxoQBPuoQUeUODwDK/w5kjnxXl3PpatBSefOYU/cD5/AEVcjaw=</latexit> 回 10倍の差! 問題: スカラー乗算回数を最小化するよう積 を括弧付けせよ A1A2 · · · An <latexit sha1_base64="UyNC00PT78D/svO/N5YRdIsZfXQ=">AAAB+3icbZDLSgMxFIYzXmu91bp0EyyCqzJTBV22unFZwV6gHYZMJtOGZpIhOSOW0ldx40IRt76IO9/GtJ2Ftv4Q+PjPOZyTP0wFN+C6387a+sbm1nZhp7i7t39wWDoqt43KNGUtqoTS3ZAYJrhkLeAgWDfVjCShYJ1wdDurdx6ZNlzJBxinzE/IQPKYUwLWCkrlRuDhRlDDfRopMBatWXGr7lx4FbwcKihXMyh99SNFs4RJoIIY0/PcFPwJ0cCpYNNiPzMsJXREBqxnUZKEGX8yv32Kz6wT4Vhp+yTguft7YkISY8ZJaDsTAkOzXJuZ/9V6GcTX/oTLNAMm6WJRnAkMCs+CwBHXjIIYWyBUc3srpkOiCQUbV9GG4C1/eRXatap3Ua3dX1bqN3kcBXSCTtE58tAVqqM71EQtRNETekav6M2ZOi/Ou/OxaF1z8plj9EfO5w+uvJLt</latexit>
/25 14 シラミツブシに調べる方法 個の行列の列に対する異なる括弧付けの個数 n <latexit sha1_base64="2QmInd+nHO60uhS7AYCvgpiU4a8=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlpuyXK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH2F+M9g==</latexit> P(n) <latexit sha1_base64="HchU+tX/rCiKb9jre2IN2GPF2gc=">AAAB63icbVBNSwMxEJ2tX7V+VT16CRahXspuK+ix6MVjBfsB7VKyabYNTbJLkhXK0r/gxYMiXv1D3vw3Zts9aOuDgcd7M8zMC2LOtHHdb6ewsbm1vVPcLe3tHxwelY9POjpKFKFtEvFI9QKsKWeStg0znPZiRbEIOO0G07vM7z5RpVkkH80spr7AY8lCRrDJpFZVXg7LFbfmLoDWiZeTCuRoDctfg1FEEkGlIRxr3ffc2PgpVoYRTuelQaJpjMkUj2nfUokF1X66uHWOLqwyQmGkbEmDFurviRQLrWcisJ0Cm4le9TLxP6+fmPDGT5mME0MlWS4KE45MhLLH0YgpSgyfWYKJYvZWRCZYYWJsPCUbgrf68jrp1Gteo1Z/uKo0b/M4inAG51AFD66hCffQgjYQmMAzvMKbI5wX5935WLYWnHzmFP7A+fwBPOGNtQ==</latexit>
: P(n) = ( 1 if n = 1 Pn 1 k=1 P(k)P(n k) otherwise <latexit sha1_base64="8dr+RPWc/nTfvki0ha267cc4nls=">AAACSnicbVDPb9MwGHVKYSMbUODIxaJiag+r4jJpu1Sa4MKxSHSb1HSV435prThOZH/ZqKLw73HhxI0/gssOQ4gLbhuk/eBJlp7e+75n+0W5khaD4IfXeNB8+Ghr+7G/s/vk6bPW8xcnNiuMgJHIVGbOIm5BSQ0jlKjgLDfA00jBaZS8X/mnF2CszPQnXOYwSflcy1gKjk6atviwo7t0QMMI5lKXwkXZymf+XojwGUsZV1/0gPlh6Ie2SKdlMmDVean3WTXsJF23vJ90/w1nuABzKS1Ufgh6VodNW+2gF6xB7xNWkzapMZy2voezTBQpaBSKWztmQY6TkhuUQq2yCws5Fwmfw9hRzVOwk3JdRUXfOGVG48y4o5Gu1ZsbJU+tXaaRm0w5LuxdbyX+zxsXGB9NSqnzAkGLzUVxoShmdNUrnUkDAtXSES6MdG+lYsENF+ja910J7O6X75OTfo+97fU/HrSP39V1bJNX5DXpEEYOyTH5QIZkRAT5Sn6Sa/LL++Zdeb+9P5vRhlfvvCS30Gj+BS/2sWQ=</latexit> どこで分割するか それぞれの部分積の括弧付けが とりうるパターンの組合せ ⌦ ⇣ 4n/n3/2 ⌘ <latexit sha1_base64="MrcjM09jcWAjadDUiuaBjuQIuz4=">AAACC3icbVA9SwNBEN3zM8avU0ubxSDEJrlLBC1FGzsVjAr5Ym8zlyzZ2zt254RwpLfxr9hYKGLrH7Dz37iJKTTxwcDjvZndmRckUhj0vC9nbn5hcWk5t5JfXVvf2HS3tm9MnGoONR7LWN8FzIAUCmooUMJdooFFgYTboH828m/vQRsRq2scJNCMWFeJUHCGVmq7e42LCLqsISHEYv6wpWiZqlZWLVeG+YYW3R4etN2CV/LGoLPEn5ACmeCy7X42OjFPI1DIJTOm7nsJNjOmUXAJ9t3UQMJ4n3WhbqliEZhmNr5lSPet0qFhrG0ppGP190TGImMGUWA7I4Y9M+2NxP+8eorhcTMTKkkRFP/5KEwlxZiOgqEdoYGjHFjCuBZ2V8p7TDOONr68DcGfPnmW3FRKfrVUuTosnJxO4siRXbJHisQnR+SEnJNLUiOcPJAn8kJenUfn2Xlz3n9a55zJzA75A+fjG8HMmPU=</latexit> この数列は の速さで増加 シラミツブシに調べる戦略は連鎖行列の最適括弧付けには適さない. 部分問題の構造を利用する.
/25 15 アルゴリズムの設計指針 最適な括弧付けを仮定 AiAi+1 · · · Aj <latexit
sha1_base64="d4BgiSep36myJr90VrduqqMWnMo=">AAACAHicbVDLSgMxFM3UV62vURcu3ASLIAhlpgq6bHXjsoJ9QDsMmUymjc0kQ5IRyjAbf8WNC0Xc+hnu/BvTdhZaPXDh5Jx7yb0nSBhV2nG+rNLS8srqWnm9srG5tb1j7+51lEglJm0smJC9ACnCKCdtTTUjvUQSFAeMdIPx9dTvPhCpqOB3epIQL0ZDTiOKkTaSbx80fQqbfkZP3RzCAQ6FVuZ979tVp+bMAP8StyBVUKDl25+DUOA0JlxjhpTqu06ivQxJTTEjeWWQKpIgPEZD0jeUo5goL5sdkMNjo4QwEtIU13Cm/pzIUKzUJA5MZ4z0SC16U/E/r5/q6NLLKE9STTiefxSlDGoBp2nAkEqCNZsYgrCkZleIR0girE1mFROCu3jyX9Kp19yzWv32vNq4KuIog0NwBE6ACy5AA9yAFmgDDHLwBF7Aq/VoPVtv1vu8tWQVM/vgF6yPb2K6lP4=</latexit> を と分割 ((Ai · · · Ak)(Ak+1 · · · Aj)) <latexit sha1_base64="k59hsmDFzcxNMr0EB3JZmtHTbi8=">AAACEHicbZDLSsNAFIYn9VbrLerSzWARW4SSVEGXrW5cVrAXaEOYTKbtmMkkzEyEEvoIbnwVNy4UcevSnW/jtA2orT8M/HznHM6c34sZlcqyvozc0vLK6lp+vbCxubW9Y+7utWSUCEyaOGKR6HhIEkY5aSqqGOnEgqDQY6TtBVeTevueCEkjfqtGMXFCNOC0TzFSGrnmcalUdynsYT9SEtbdoAw1SIMTe/wD78pl1yxaFWsquGjszBRBpoZrfvb8CCch4QozJGXXtmLlpEgoihkZF3qJJDHCARqQrrYchUQ66fSgMTzSxIf9SOjHFZzS3xMpCqUchZ7uDJEayvnaBP5X6yaqf+GklMeJIhzPFvUTBlUEJ+lAnwqCFRtpg7Cg+q8QD5FAWOkMCzoEe/7kRdOqVuzTSvXmrFi7zOLIgwNwCErABuegBq5BAzQBBg/gCbyAV+PReDbejPdZa87IZvbBHxkf30HTmjc=</latexit> どちらも最適な括弧付けになっていなければならない 必要なスカラー積の回数 m[i, j] = m[i, k] + m[k + 1, j] + pi 1pkpj <latexit sha1_base64="yJO/ZMC8To04j95kfl2Mt+uSk+o=">AAACFnicbZDLSsNAFIYnXmu9RV26GSyCUFuSKuhGKLpxWcFeIA1hMp2200ySYWYilNCncOOruHGhiFtx59s4TbPQ1h8GPv5zDmfO73NGpbKsb2NpeWV1bb2wUdzc2t7ZNff2WzJOBCZNHLNYdHwkCaMRaSqqGOlwQVDoM9L2g5tpvf1AhKRxdK/GnLghGkS0TzFS2vLMSujQUzhy4RXMKHBhWVNQtjO3DLmX0oo94V7AvZFnlqyqlQkugp1DCeRqeOZXtxfjJCSRwgxJ6dgWV26KhKKYkUmxm0jCEQ7QgDgaIxQS6abZWRN4rJ0e7MdCv0jBzP09kaJQynHo684QqaGcr03N/2pOovqXbkojnigS4dmifsKgiuE0I9ijgmDFxhoQFlT/FeIhEggrnWRRh2DPn7wIrVrVPqvW7s5L9es8jgI4BEfgBNjgAtTBLWiAJsDgETyDV/BmPBkvxrvxMWtdMvKZA/BHxucPmu6b8A==</latexit> pk 1 ⇥ pk <latexit sha1_base64="kSUt0xeUN/eWfaoVaQLGX5HFi5U=">AAAB/HicbVDLSsNAFJ3UV62vaJduBovgxpJUQZdFNy4r2Ae0IUymk3bo5MHMjRBC/BU3LhRx64e482+ctFlo64GBc8+5l3vneLHgCizr26isrW9sblW3azu7e/sH5uFRT0WJpKxLIxHJgUcUEzxkXeAg2CCWjASeYH1vdlv4/UcmFY/CB0hj5gRkEnKfUwJacs167GazczsfAQ+YwkWVu2bDalpz4FVil6SBSnRc82s0jmgSsBCoIEoNbSsGJyMSOBUsr40SxWJCZ2TChpqGRK9ysvnxOT7Vyhj7kdQvBDxXf09kJFAqDTzdGRCYqmWvEP/zhgn4107GwzgBFtLFIj8RGCJcJIHHXDIKItWEUMn1rZhOiSQUdF41HYK9/OVV0ms17Ytm6/6y0b4p46iiY3SCzpCNrlAb3aEO6iKKUvSMXtGb8WS8GO/Gx6K1YpQzdfQHxucPsj+UzQ==</latexit> Ak <latexit sha1_base64="IYPFBkzwjFJTlXwYkgB5XiRCgJE=">AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4KkkV9Fj14rGi/YA2lM120y7dbMLuRCihP8GLB0W8+ou8+W/ctjlo64OBx3szzMwLEikMuu63s7K6tr6xWdgqbu/s7u2XDg6bJk414w0Wy1i3A2q4FIo3UKDk7URzGgWSt4LR7dRvPXFtRKwecZxwP6IDJULBKFrp4bo36pXKbsWdgSwTLydlyFHvlb66/ZilEVfIJDWm47kJ+hnVKJjkk2I3NTyhbEQHvGOpohE3fjY7dUJOrdInYaxtKSQz9fdERiNjxlFgOyOKQ7PoTcX/vE6K4ZWfCZWkyBWbLwpTSTAm079JX2jOUI4toUwLeythQ6opQ5tO0YbgLb68TJrVindeqd5flGs3eRwFOIYTOAMPLqEGd1CHBjAYwDO8wpsjnRfn3fmYt644+cwR/IHz+QMRHI2n</latexit> として のサイズを 部分問題のコストの和 に新規で必要なスカラー積の回数 ((Ai · · · Ak)(Ak+1 · · · Aj)) <latexit sha1_base64="k59hsmDFzcxNMr0EB3JZmtHTbi8=">AAACEHicbZDLSsNAFIYn9VbrLerSzWARW4SSVEGXrW5cVrAXaEOYTKbtmMkkzEyEEvoIbnwVNy4UcevSnW/jtA2orT8M/HznHM6c34sZlcqyvozc0vLK6lp+vbCxubW9Y+7utWSUCEyaOGKR6HhIEkY5aSqqGOnEgqDQY6TtBVeTevueCEkjfqtGMXFCNOC0TzFSGrnmcalUdynsYT9SEtbdoAw1SIMTe/wD78pl1yxaFWsquGjszBRBpoZrfvb8CCch4QozJGXXtmLlpEgoihkZF3qJJDHCARqQrrYchUQ66fSgMTzSxIf9SOjHFZzS3xMpCqUchZ7uDJEayvnaBP5X6yaqf+GklMeJIhzPFvUTBlUEJ+lAnwqCFRtpg7Cg+q8QD5FAWOkMCzoEe/7kRdOqVuzTSvXmrFi7zOLIgwNwCErABuegBq5BAzQBBg/gCbyAV+PReDbejPdZa87IZvbBHxkf30HTmjc=</latexit> m[i, j] = ( 0 i = j minik<j {m[i, k] + m[k + 1, j] + pi 1pkpj } i < j <latexit sha1_base64="RGC7YO2yAVsDzNpaX+1PX9wH2uw=">AAACZnicbVFNb9QwFHTCVxugbFshDlyeWFEhLaySFgkOVKrgwrFIbFspjiLH6+x6YzvGdpBWUf4kN85c+Bk4aQ7Q8iRLo3lv5tnjQgtuXRz/DMI7d+/df7CzGz189HjvyWT/4MLWjaFsQWtRm6uCWCa4YgvHnWBX2jAiC8Eui+pT37/8zozltfrqtpplkqwULzklzlP5pJMpfw2bDE4BF2zFVUu9m+2i+Aj46SbCOMKSq7zlgAX7BhV8gE3X49LhNhrUVQYzkGk1SwanGWg//ibpdF7p3FsYvlo73EVHvBdHmKnluCWfTON5PBTcBskIpmis83zyAy9r2kimHBXE2jSJtctaYhyngnURbizThFZkxVIPFZHMZu0QUwcvPbOEsjb+KAcD+7eiJdLarSz8pCRubW/2evJ/vbRx5fus5Uo3jil6vahsBLga+sxhyQ2jTmw9INRwf1ega2IIdf5nIh9CcvPJt8HF8Tw5mR9/eTs9+zjGsYOeoxfoFUrQO3SGPqNztEAU/Qp2g4PgMPgd7oVPw2fXo2Ewag7RPxXCH7iFsvI=</latexit> 再帰的定義
/25 16 履歴管理を用いるトップダウン方式 初期化 既知の値であれば結果を再利用 O(n 3) <latexit sha1_base64="s1YvWRMWwySboD4m9GsP4RT+J10=">AAAB7XicbVBNSwMxEJ31s9avqkcvwSLUS9ltBT0WvXizgv2Adi3ZNNvGZpMlyQpl6X/w4kERr/4fb/4b03YP2vpg4PHeDDPzgpgzbVz321lZXVvf2Mxt5bd3dvf2CweHTS0TRWiDSC5VO8CaciZowzDDaTtWFEcBp61gdD31W09UaSbFvRnH1I/wQLCQEWys1LwtiYfqWa9QdMvuDGiZeBkpQoZ6r/DV7UuSRFQYwrHWHc+NjZ9iZRjhdJLvJprGmIzwgHYsFTii2k9n107QqVX6KJTKljBopv6eSHGk9TgKbGeEzVAvelPxP6+TmPDST5mIE0MFmS8KE46MRNPXUZ8pSgwfW4KJYvZWRIZYYWJsQHkbgrf48jJpVspetVy5Oy/WrrI4cnAMJ1ACDy6gBjdQhwYQeIRneIU3RzovzrvzMW9dcbKZI/gD5/MHY7yOWQ==</latexit> 計算量:
m[i, j] = ( 0 minik<j {m[i, k] + m[k + 1, j] + pi 1pkpj <latexit sha1_base64="RGC7YO2yAVsDzNpaX+1PX9wH2uw=">AAACZnicbVFNb9QwFHTCVxugbFshDlyeWFEhLaySFgkOVKrgwrFIbFspjiLH6+x6YzvGdpBWUf4kN85c+Bk4aQ7Q8iRLo3lv5tnjQgtuXRz/DMI7d+/df7CzGz189HjvyWT/4MLWjaFsQWtRm6uCWCa4YgvHnWBX2jAiC8Eui+pT37/8zozltfrqtpplkqwULzklzlP5pJMpfw2bDE4BF2zFVUu9m+2i+Aj46SbCOMKSq7zlgAX7BhV8gE3X49LhNhrUVQYzkGk1SwanGWg//ibpdF7p3FsYvlo73EVHvBdHmKnluCWfTON5PBTcBskIpmis83zyAy9r2kimHBXE2jSJtctaYhyngnURbizThFZkxVIPFZHMZu0QUwcvPbOEsjb+KAcD+7eiJdLarSz8pCRubW/2evJ/vbRx5fus5Uo3jil6vahsBLga+sxhyQ2jTmw9INRwf1ega2IIdf5nIh9CcvPJt8HF8Tw5mR9/eTs9+zjGsYOeoxfoFUrQO3SGPqNztEAU/Qp2g4PgMPgd7oVPw2fXo2Ewag7RPxXCH7iFsvI=</latexit> m[i, j] = ( 0 i = j minik<j {m[i, k] + m[k + 1, j] + pi 1pkpj } i < j <latexit sha1_base64="RGC7YO2yAVsDzNpaX+1PX9wH2uw=">AAACZnicbVFNb9QwFHTCVxugbFshDlyeWFEhLaySFgkOVKrgwrFIbFspjiLH6+x6YzvGdpBWUf4kN85c+Bk4aQ7Q8iRLo3lv5tnjQgtuXRz/DMI7d+/df7CzGz189HjvyWT/4MLWjaFsQWtRm6uCWCa4YgvHnWBX2jAiC8Eui+pT37/8zozltfrqtpplkqwULzklzlP5pJMpfw2bDE4BF2zFVUu9m+2i+Aj46SbCOMKSq7zlgAX7BhV8gE3X49LhNhrUVQYzkGk1SwanGWg//ibpdF7p3FsYvlo73EVHvBdHmKnluCWfTON5PBTcBskIpmis83zyAy9r2kimHBXE2jSJtctaYhyngnURbizThFZkxVIPFZHMZu0QUwcvPbOEsjb+KAcD+7eiJdLarSz8pCRubW/2evJ/vbRx5fus5Uo3jil6vahsBLga+sxhyQ2jTmw9INRwf1ega2IIdf5nIh9CcvPJt8HF8Tw5mR9/eTs9+zjGsYOeoxfoFUrQO3SGPqNztEAU/Qp2g4PgMPgd7oVPw2fXo2Ewag7RPxXCH7iFsvI=</latexit>
/25 17 ボトムアップ方式 l <latexit sha1_base64="0C8sfUJYbrjC43r1LRBZ8OgM3fg=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlpuiXK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH1VeM9A==</latexit> i <latexit sha1_base64="hA2BMjcr0btVk5qY1/HOr4xO94Q=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlJu+XK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH0MuM8Q==</latexit> j
<latexit sha1_base64="sezUAcifLCsPU4ANWRbU4nmBeg4=">AAAB6HicbVDLTgJBEOzFF+IL9ehlIjHxRHbRRI9ELx4hkUcCGzI79MLA7OxmZtaEEL7AiweN8eonefNvHGAPClbSSaWqO91dQSK4Nq777eQ2Nre2d/K7hb39g8Oj4vFJU8epYthgsYhVO6AaBZfYMNwIbCcKaRQIbAXj+7nfekKleSwfzSRBP6IDyUPOqLFSfdQrltyyuwBZJ15GSpCh1it+dfsxSyOUhgmqdcdzE+NPqTKcCZwVuqnGhLIxHWDHUkkj1P50ceiMXFilT8JY2ZKGLNTfE1MaaT2JAtsZUTPUq95c/M/rpCa89adcJqlByZaLwlQQE5P516TPFTIjJpZQpri9lbAhVZQZm03BhuCtvrxOmpWyd1Wu1K9L1bssjjycwTlcggc3UIUHqEEDGCA8wyu8OSPnxXl3PpatOSebOYU/cD5/ANJPjPI=</latexit> k <latexit sha1_base64="S3l8nnBLDerjgmOsR9KRP3N3+lk=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOl5rhfrrhVdw6ySrycVCBHo1/+6g1ilkYoDRNU667nJsbPqDKcCZyWeqnGhLIxHWLXUkkj1H42P3RKzqwyIGGsbElD5urviYxGWk+iwHZG1Iz0sjcT//O6qQmv/YzLJDUo2WJRmApiYjL7mgy4QmbExBLKFLe3EjaiijJjsynZELzll1dJu1b1Lqq15mWlfpPHUYQTOIVz8OAK6nAHDWgBA4RneIU359F5cd6dj0VrwclnjuEPnM8f09OM8w==</latexit> A1A2 · · · An <latexit sha1_base64="UyNC00PT78D/svO/N5YRdIsZfXQ=">AAAB+3icbZDLSgMxFIYzXmu91bp0EyyCqzJTBV22unFZwV6gHYZMJtOGZpIhOSOW0ldx40IRt76IO9/GtJ2Ftv4Q+PjPOZyTP0wFN+C6387a+sbm1nZhp7i7t39wWDoqt43KNGUtqoTS3ZAYJrhkLeAgWDfVjCShYJ1wdDurdx6ZNlzJBxinzE/IQPKYUwLWCkrlRuDhRlDDfRopMBatWXGr7lx4FbwcKihXMyh99SNFs4RJoIIY0/PcFPwJ0cCpYNNiPzMsJXREBqxnUZKEGX8yv32Kz6wT4Vhp+yTguft7YkISY8ZJaDsTAkOzXJuZ/9V6GcTX/oTLNAMm6WJRnAkMCs+CwBHXjIIYWyBUc3srpkOiCQUbV9GG4C1/eRXatap3Ua3dX1bqN3kcBXSCTtE58tAVqqM71EQtRNETekav6M2ZOi/Ou/OxaF1z8plj9EfO5w+uvJLt</latexit> 小さい問題から順に解く m[i, j] = ( 0 i = j minik<j {m[i, k] + m[k + 1, j] + pi 1pkpj } i < j <latexit sha1_base64="RGC7YO2yAVsDzNpaX+1PX9wH2uw=">AAACZnicbVFNb9QwFHTCVxugbFshDlyeWFEhLaySFgkOVKrgwrFIbFspjiLH6+x6YzvGdpBWUf4kN85c+Bk4aQ7Q8iRLo3lv5tnjQgtuXRz/DMI7d+/df7CzGz189HjvyWT/4MLWjaFsQWtRm6uCWCa4YgvHnWBX2jAiC8Eui+pT37/8zozltfrqtpplkqwULzklzlP5pJMpfw2bDE4BF2zFVUu9m+2i+Aj46SbCOMKSq7zlgAX7BhV8gE3X49LhNhrUVQYzkGk1SwanGWg//ibpdF7p3FsYvlo73EVHvBdHmKnluCWfTON5PBTcBskIpmis83zyAy9r2kimHBXE2jSJtctaYhyngnURbizThFZkxVIPFZHMZu0QUwcvPbOEsjb+KAcD+7eiJdLarSz8pCRubW/2evJ/vbRx5fus5Uo3jil6vahsBLga+sxhyQ2jTmw9INRwf1ega2IIdf5nIh9CcvPJt8HF8Tw5mR9/eTs9+zjGsYOeoxfoFUrQO3SGPqNztEAU/Qp2g4PgMPgd7oVPw2fXo2Ewag7RPxXCH7iFsvI=</latexit> 括弧付けの位置 計算量: ⇥(n3) <latexit sha1_base64="G8WRpL5exN/uz8BAetuwevHrbn8=">AAAB8nicbVBNSwMxEM3Wr1q/qh69BItQL2W3FfRY9OKxQr+gXUs2zbah2WRJZoWy9Gd48aCIV3+NN/+NabsHbX0w8Hhvhpl5QSy4Adf9dnIbm1vbO/ndwt7+weFR8fikbVSiKWtRJZTuBsQwwSVrAQfBurFmJAoE6wSTu7nfeWLacCWbMI2ZH5GR5CGnBKzU6zfHDEhZPtYuB8WSW3EXwOvEy0gJZWgMil/9oaJJxCRQQYzpeW4Mfko0cCrYrNBPDIsJnZAR61kqScSMny5OnuELqwxxqLQtCXih/p5ISWTMNApsZ0RgbFa9ufif10sgvPFTLuMEmKTLRWEiMCg8/x8PuWYUxNQSQjW3t2I6JppQsCkVbAje6svrpF2teLVK9eGqVL/N4sijM3SOyshD16iO7lEDtRBFCj2jV/TmgPPivDsfy9ack82coj9wPn8AON+Qjg==</latexit>
/25 18 行列 次元 A1 <latexit sha1_base64="1F4OlKPns/30nPpm+xW/QfYxQvs=">AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4KkkV9Fj14rGi/YA2lM120i7dbMLuRiihP8GLB0W8+ou8+W/ctjlo64OBx3szzMwLEsG1cd1vZ2V1bX1js7BV3N7Z3dsvHRw2dZwqhg0Wi1i1A6pRcIkNw43AdqKQRoHAVjC6nfqtJ1Sax/LRjBP0IzqQPOSMGis9XPe8XqnsVtwZyDLxclKGHPVe6avbj1kaoTRMUK07npsYP6PKcCZwUuymGhPKRnSAHUsljVD72ezUCTm1Sp+EsbIlDZmpvycyGmk9jgLbGVEz1IveVPzP66QmvPIzLpPUoGTzRWEqiInJ9G/S5wqZEWNLKFPc3krYkCrKjE2naEPwFl9eJs1qxTuvVO8vyrWbPI4CHMMJnIEHl1CDO6hDAxgM4Ble4c0Rzovz7nzMW1ecfOYI/sD5/AG5JY1t</latexit> A2 <latexit sha1_base64="fRO/sQlVWHh1j7Za7usQh7tlwZk=">AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4KkkV9Fj14rGi/YA2lM120y7dbMLuRCihP8GLB0W8+ou8+W/ctjlo64OBx3szzMwLEikMuu63s7K6tr6xWdgqbu/s7u2XDg6bJk414w0Wy1i3A2q4FIo3UKDk7URzGgWSt4LR7dRvPXFtRKwecZxwP6IDJULBKFrp4bpX7ZXKbsWdgSwTLydlyFHvlb66/ZilEVfIJDWm47kJ+hnVKJjkk2I3NTyhbEQHvGOpohE3fjY7dUJOrdInYaxtKSQz9fdERiNjxlFgOyOKQ7PoTcX/vE6K4ZWfCZWkyBWbLwpTSTAm079JX2jOUI4toUwLeythQ6opQ5tO0YbgLb68TJrVindeqd5flGs3eRwFOIYTOAMPLqEGd1CHBjAYwDO8wpsjnRfn3fmYt644+cwR/IHz+QO6qY1u</latexit>
A3 <latexit sha1_base64="w07XpCbZAwClDXImoqTbR/jXysU=">AAAB6nicbVDLTgJBEOzFF+IL9ehlIjHxRHbBRI+oF48Y5ZHAhswOszBhdnYz02tCCJ/gxYPGePWLvPk3DrAHBSvppFLVne6uIJHCoOt+O7m19Y3Nrfx2YWd3b/+geHjUNHGqGW+wWMa6HVDDpVC8gQIlbyea0yiQvBWMbmd+64lrI2L1iOOE+xEdKBEKRtFKD9e9aq9YcsvuHGSVeBkpQYZ6r/jV7ccsjbhCJqkxHc9N0J9QjYJJPi10U8MTykZ0wDuWKhpx40/mp07JmVX6JIy1LYVkrv6emNDImHEU2M6I4tAsezPxP6+TYnjlT4RKUuSKLRaFqSQYk9nfpC80ZyjHllCmhb2VsCHVlKFNp2BD8JZfXiXNStmrliv3F6XaTRZHHk7gFM7Bg0uowR3UoQEMBvAMr/DmSOfFeXc+Fq05J5s5hj9wPn8AvC2Nbw==</latexit> A4 <latexit sha1_base64="6DMGRA1A+D8Bnse3NNvBuLvna/c=">AAAB6nicbVDLTgJBEOzFF+IL9ehlIjHxRHaRRI+oF48Y5ZHAhswOvTBhdnYzM2tCCJ/gxYPGePWLvPk3DrAHBSvppFLVne6uIBFcG9f9dnJr6xubW/ntws7u3v5B8fCoqeNUMWywWMSqHVCNgktsGG4EthOFNAoEtoLR7cxvPaHSPJaPZpygH9GB5CFn1Fjp4bpX7RVLbtmdg6wSLyMlyFDvFb+6/ZilEUrDBNW647mJ8SdUGc4ETgvdVGNC2YgOsGOppBFqfzI/dUrOrNInYaxsSUPm6u+JCY20HkeB7YyoGeplbyb+53VSE175Ey6T1KBki0VhKoiJyexv0ucKmRFjSyhT3N5K2JAqyoxNp2BD8JZfXiXNStm7KFfuq6XaTRZHHk7gFM7Bg0uowR3UoQEMBvAMr/DmCOfFeXc+Fq05J5s5hj9wPn8AvbGNcA==</latexit> A5 <latexit sha1_base64="TPMsjSTTafOtR66j4AU6U989MnY=">AAAB6nicbVDLTgJBEOzFF+IL9ehlIjHxRHZRo0fUi0eM8khgQ2aHBibMzm5mZk3Ihk/w4kFjvPpF3vwbB9iDgpV0UqnqTndXEAuujet+O7mV1bX1jfxmYWt7Z3evuH/Q0FGiGNZZJCLVCqhGwSXWDTcCW7FCGgYCm8Hoduo3n1BpHslHM47RD+lA8j5n1Fjp4bp70S2W3LI7A1kmXkZKkKHWLX51ehFLQpSGCap123Nj46dUGc4ETgqdRGNM2YgOsG2ppCFqP52dOiEnVumRfqRsSUNm6u+JlIZaj8PAdobUDPWiNxX/89qJ6V/5KZdxYlCy+aJ+IoiJyPRv0uMKmRFjSyhT3N5K2JAqyoxNp2BD8BZfXiaNStk7K1fuz0vVmyyOPBzBMZyCB5dQhTuoQR0YDOAZXuHNEc6L8+58zFtzTjZzCH/gfP4AvzWNcQ==</latexit> A6 <latexit sha1_base64="OYaxnqCZ0pQVt+U44TcWNsQ/bcQ=">AAAB6nicbVDLTgJBEOzFF+IL9ehlIjHxRHbRqEfUi0eM8khgQ2aHBibMzm5mZk3Ihk/w4kFjvPpF3vwbB9iDgpV0UqnqTndXEAuujet+O7mV1bX1jfxmYWt7Z3evuH/Q0FGiGNZZJCLVCqhGwSXWDTcCW7FCGgYCm8Hoduo3n1BpHslHM47RD+lA8j5n1Fjp4bp70S2W3LI7A1kmXkZKkKHWLX51ehFLQpSGCap123Nj46dUGc4ETgqdRGNM2YgOsG2ppCFqP52dOiEnVumRfqRsSUNm6u+JlIZaj8PAdobUDPWiNxX/89qJ6V/5KZdxYlCy+aJ+IoiJyPRv0uMKmRFjSyhT3N5K2JAqyoxNp2BD8BZfXiaNStk7K1fuz0vVmyyOPBzBMZyCB5dQhTuoQR0YDOAZXuHNEc6L8+58zFtzTjZzCH/gfP4AwLmNcg==</latexit> 30 ⇥ 35 <latexit sha1_base64="ZSMGmUxUiK/jEkvLCh5vXJiRfJE=">AAAB8nicbVBNS8NAEJ3Ur1q/qh69LBbBU0laRY9FLx4r2FpIQ9lsN+3SzSbsToRS+jO8eFDEq7/Gm//GbZuDtj4YeLw3w8y8MJXCoOt+O4W19Y3NreJ2aWd3b/+gfHjUNkmmGW+xRCa6E1LDpVC8hQIl76Sa0ziU/DEc3c78xyeujUjUA45THsR0oEQkGEUr+XW3iyLmhtQve+WKW3XnIKvEy0kFcjR75a9uP2FZzBUySY3xPTfFYEI1Cib5tNTNDE8pG9EB9y1V1O4JJvOTp+TMKn0SJdqWQjJXf09MaGzMOA5tZ0xxaJa9mfif52cYXQcTodIMuWKLRVEmCSZk9j/pC80ZyrEllGlhbyVsSDVlaFMq2RC85ZdXSbtW9erV2v1FpXGTx1GEEziFc/DgChpwB01oAYMEnuEV3hx0Xpx352PRWnDymWP4A+fzB+AYkFU=</latexit> 35 ⇥ 15 <latexit sha1_base64="8qzJmU236MTNtUaO+kTbjBm+C0M=">AAAB8nicbVBNSwMxEM3Wr1q/qh69BIvgqey2Fj0WvXisYD9gu5Rsmm1Ds8mSzApl6c/w4kERr/4ab/4b03YP2vpg4PHeDDPzwkRwA6777RQ2Nre2d4q7pb39g8Oj8vFJx6hUU9amSijdC4lhgkvWBg6C9RLNSBwK1g0nd3O/+8S04Uo+wjRhQUxGkkecErCSX2/0gcfMYK8xKFfcqrsAXideTiooR2tQ/uoPFU1jJoEKYozvuQkEGdHAqWCzUj81LCF0QkbMt1QSuyfIFifP8IVVhjhS2pYEvFB/T2QkNmYah7YzJjA2q95c/M/zU4hugozLJAUm6XJRlAoMCs//x0OuGQUxtYRQze2tmI6JJhRsSiUbgrf68jrp1KpevVp7uKo0b/M4iugMnaNL5KFr1ET3qIXaiCKFntErenPAeXHenY9la8HJZ07RHzifP+TPkFg=</latexit> 15 ⇥ 5 <latexit sha1_base64="om7IZStXiaYRLkM4SOKkNUrmEUA=">AAAB8XicbVDLTgJBEOzFF+IL9ehlIjHxRHZRokeiF4+YyCPChswOszBhdnYz02tCCH/hxYPGePVvvPk3DrAHBSvppFLVne6uIJHCoOt+O7m19Y3Nrfx2YWd3b/+geHjUNHGqGW+wWMa6HVDDpVC8gQIlbyea0yiQvBWMbmd+64lrI2L1gOOE+xEdKBEKRtFKj161iyLihlR7xZJbducgq8TLSAky1HvFr24/ZmnEFTJJjel4boL+hGoUTPJpoZsanlA2ogPesVRRu8afzC+ekjOr9EkYa1sKyVz9PTGhkTHjKLCdEcWhWfZm4n9eJ8Xw2p8IlaTIFVssClNJMCaz90lfaM5Qji2hTAt7K2FDqilDG1LBhuAtv7xKmpWyd1Gu3F+WajdZHHk4gVM4Bw+uoAZ3UIcGMFDwDK/w5hjnxXl3PhatOSebOYY/cD5/AG9EkBs=</latexit> 5 ⇥ 10 <latexit sha1_base64="M832D+cU5bS2YPd8n6K4SAVEgq8=">AAAB8XicbVBNS8NAEJ34WetX1aOXxSJ4KklV9Fj04rGC/cA2lM120y7dbMLuRCih/8KLB0W8+m+8+W/ctjlo64OBx3szzMwLEikMuu63s7K6tr6xWdgqbu/s7u2XDg6bJk414w0Wy1i3A2q4FIo3UKDk7URzGgWSt4LR7dRvPXFtRKwecJxwP6IDJULBKFrp8bKLIuKGeG6vVHYr7gxkmXg5KUOOeq/01e3HLI24QiapMR3PTdDPqEbBJJ8Uu6nhCWUjOuAdSxW1e/xsdvGEnFqlT8JY21JIZurviYxGxoyjwHZGFIdm0ZuK/3mdFMNrPxMqSZErNl8UppJgTKbvk77QnKEcW0KZFvZWwoZUU4Y2pKINwVt8eZk0qxXvvFK9vyjXbvI4CnAMJ3AGHlxBDe6gDg1goOAZXuHNMc6L8+58zFtXnHzmCP7A+fwBaPuQFg==</latexit> 10 ⇥ 20 <latexit sha1_base64="036pzEsZVnookaOw2Mr1Y+9sd5s=">AAAB8nicbVBNSwMxEJ31s9avqkcvwSJ4KrtV0GPRi8cK9gPapWTTbBuaTZZkViilP8OLB0W8+mu8+W9M2z1o64PA472ZzMyLUiks+v63t7a+sbm1Xdgp7u7tHxyWjo6bVmeG8QbTUpt2RC2XQvEGCpS8nRpOk0jyVjS6m/mtJ26s0OoRxykPEzpQIhaMopM6gd9FkXBLqn6vVPYr/hxklQQ5KUOOeq/01e1rliVcIZPUWvdZiuGEGhRM8mmxm1meUjaiA95xVFE3J5zMV56Sc6f0SayNewrJXP3dMaGJteMkcpUJxaFd9mbif14nw/gmnAiVZsgVWwyKM0lQk9n9pC8MZyjHjlBmhNuVsCE1lKFLqehCCJZPXiXNaiW4rFQfrsq12zyOApzCGVxAANdQg3uoQwMYaHiGV3jz0Hvx3r2PRemal/ecwB94nz/T45BN</latexit> 20 ⇥ 25 <latexit sha1_base64="1uWsCmvOMxw8F0pY5HIA3FWsaQI=">AAAB8nicbVBNS8NAEN3Ur1q/qh69LBbBU0mioseiF48V7AekoWy2m3bpZjfsToQS+jO8eFDEq7/Gm//GbZuDtj4YeLw3w8y8KBXcgOt+O6W19Y3NrfJ2ZWd3b/+genjUNirTlLWoEkp3I2KY4JK1gINg3VQzkkSCdaLx3czvPDFtuJKPMElZmJCh5DGnBKwU+G4PeMIM9q/61Zpbd+fAq8QrSA0VaParX72BolnCJFBBjAk8N4UwJxo4FWxa6WWGpYSOyZAFlkpi94T5/OQpPrPKAMdK25KA5+rviZwkxkySyHYmBEZm2ZuJ/3lBBvFNmHOZZsAkXSyKM4FB4dn/eMA1oyAmlhCqub0V0xHRhIJNqWJD8JZfXiVtv+5d1P2Hy1rjtoijjE7QKTpHHrpGDXSPmqiFKFLoGb2iNwecF+fd+Vi0lpxi5hj9gfP5A90FkFM=</latexit> i <latexit sha1_base64="hA2BMjcr0btVk5qY1/HOr4xO94Q=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlJu+XK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH0MuM8Q==</latexit> m <latexit sha1_base64="hgrbGyfUs1b/Mr5+M32Ck4D9zmA=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3a3STsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgkfYMtwI7CQKqQwEPgTj25n/8IRK8zi6N5MEfUmHEQ85o8ZKTdkvV9yqOwdZJV5OKpCj0S9/9QYxSyVGhgmqdddzE+NnVBnOBE5LvVRjQtmYDrFraUQlaj+bHzolZ1YZkDBWtiJD5urviYxKrScysJ2SmpFe9mbif143NeG1n/EoSQ1GbLEoTAUxMZl9TQZcITNiYgllittbCRtRRZmx2ZRsCN7yy6ukXat6F9Va87JSv8njKMIJnMI5eHAFdbiDBrSAAcIzvMKb8+i8OO/Ox6K14OQzx/AHzucP1tuM9Q==</latexit> スカラー積の回数 1 2 3 4 5 6 1 0 15750 7875 9375 11875 15125 2 0 2625 4375 7125 10500 3 0 750 2500 5375 4 0 1000 3500 5 0 5000 6 0 j <latexit sha1_base64="sezUAcifLCsPU4ANWRbU4nmBeg4=">AAAB6HicbVDLTgJBEOzFF+IL9ehlIjHxRHbRRI9ELx4hkUcCGzI79MLA7OxmZtaEEL7AiweN8eonefNvHGAPClbSSaWqO91dQSK4Nq777eQ2Nre2d/K7hb39g8Oj4vFJU8epYthgsYhVO6AaBZfYMNwIbCcKaRQIbAXj+7nfekKleSwfzSRBP6IDyUPOqLFSfdQrltyyuwBZJ15GSpCh1it+dfsxSyOUhgmqdcdzE+NPqTKcCZwVuqnGhLIxHWDHUkkj1P50ceiMXFilT8JY2ZKGLNTfE1MaaT2JAtsZUTPUq95c/M/rpCa89adcJqlByZaLwlQQE5P516TPFTIjJpZQpri9lbAhVZQZm03BhuCtvrxOmpWyd1Wu1K9L1bssjjycwTlcggc3UIUHqEEDGCA8wyu8OSPnxXl3PpatOSebOYU/cD5/ANJPjPI=</latexit> i <latexit sha1_base64="hA2BMjcr0btVk5qY1/HOr4xO94Q=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlJu+XK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH0MuM8Q==</latexit> 1 2 3 4 5 6 1 1 1 3 3 3 2 2 3 3 3 3 3 3 3 4 4 5 5 5 6 j <latexit sha1_base64="sezUAcifLCsPU4ANWRbU4nmBeg4=">AAAB6HicbVDLTgJBEOzFF+IL9ehlIjHxRHbRRI9ELx4hkUcCGzI79MLA7OxmZtaEEL7AiweN8eonefNvHGAPClbSSaWqO91dQSK4Nq777eQ2Nre2d/K7hb39g8Oj4vFJU8epYthgsYhVO6AaBZfYMNwIbCcKaRQIbAXj+7nfekKleSwfzSRBP6IDyUPOqLFSfdQrltyyuwBZJ15GSpCh1it+dfsxSyOUhgmqdcdzE+NPqTKcCZwVuqnGhLIxHWDHUkkj1P50ceiMXFilT8JY2ZKGLNTfE1MaaT2JAtsZUTPUq95c/M/rpCa89adcJqlByZaLwlQQE5P516TPFTIjJpZQpri9lbAhVZQZm03BhuCtvrxOmpWyd1Wu1K9L1bssjjycwTlcggc3UIUHqEEDGCA8wyu8OSPnxXl3PpatOSebOYU/cD5/ANJPjPI=</latexit> s <latexit sha1_base64="8r6dWOvdyfgmPOHEanDSQrmgcis=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlpu6XK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH3/OM+w==</latexit> 括弧付の位置 m[1, 2] + m[3, 3] + p0p2p3 =15750 + 0 + 30 · 15 · 5 =18000 <latexit sha1_base64="EQRDOm5SM0LAYObsWWAGh12UCFk=">AAACMXicbVBPS8MwHE39b/039eglOBRhMtLWoRdB9OJRwemgLSXNMg1L2pCkwih+JS9+E/HiQRGvfgmzrQedPvjB4733I/m9VHKmDUKvztT0zOzc/MKiu7S8srpWW9+41nmhCG2TnOeqk2JNOcto2zDDaUcqikXK6U3aPxv6N/dUaZZnV2YgaSzwbcZ6jGBjpaR2vitCb9+PGyIM9oO4IRMkE18mAXSj6Bjueq3DFoINOJwARaSbG+i14Ji0qswRQiip1VETjQD/Eq8idVDhIqk9R92cFIJmhnCsdeghaeISK8MIpw9uVGgqMenjWxpammFBdVyOLn6AO1bpwl6u7GQGjtSfGyUWWg9EapMCmzs96Q3F/7ywML2juGSZLAzNyPihXsGhyeGwPthlihLDB5Zgopj9KyR3WGFibMmuLcGbPPkvufabXtD0Lw/qJ6dVHQtgC2yDPeCBQ3ACzsEFaAMCHsELeAPvzpPz6nw4n+PolFPtbIJfcL6+AdcloX0=</latexit> m[1, 1] + m[2, 3] + p0p1p3 =0 + 2625 + 30 · 35 · 5 =7875 <latexit sha1_base64="goRi8AeV4kDLjmSPq1gUUtTM/zw=">AAACL3icbVBLSwMxGMz6rPVV9eglWCxCS9mHtb0IRUE8VrBW2F2WbJpqMNkNSVYopf/Ii3+lFxFFvPovTB8HtQ6EDDPzkXwTC0aVtu1Xa2FxaXllNbeWX9/Y3Nou7OzeqDSTmLRxylJ5GyNFGE1IW1PNyK2QBPGYkU78cD72O49EKpom17ovSMjRXUJ7FCNtpKhwUeK+U3HCMvfdiheWRWSLyBGRB/NBcApLNixD98StmcuzA9xNNfRqcEpq00i9Ua9FhaJdtSeA88SZkSKYoRUVRkE3xRknicYMKeU7ttDhAElNMSPDfJApIhB+QHfENzRBnKhwMNl3CA+N0oW9VJqTaDhRf04MEFeqz2OT5Ejfq7/eWPzP8zPda4QDmohMkwRPH+plDOoUjsuDXSoJ1qxvCMKSmr9CfI8kwtpUnDclOH9Xnic3btXxqu7VcbF5NqsjB/bBATgCDqiDJrgELdAGGDyBEXgD79az9WJ9WJ/T6II1m9kDv2B9fQPss6EX</latexit> ((A1(A2A3))((A4A5)A6)) <latexit sha1_base64="bf9jgUFhG9RjRShPJCXQ5ZAZHcU=">AAACCHicbVC7TsMwFHXKq5RXgJEBiwqpWaqkLY+xhYWxSLRUaqPIcd3WquNEtoNURR1Z+BUWBhBi5RPY+BucNgO0HOlax+fcK/seP2JUKtv+NnIrq2vrG/nNwtb2zu6euX/QlmEsMGnhkIWi4yNJGOWkpahipBMJggKfkXt/fJ369w9ESBryOzWJiBugIacDipHSkmcel0oNz9FVgQ2valnptabpmaWPc8vyzKJdtmeAy8TJSBFkaHrmV68f4jggXGGGpOw6dqTcBAlFMSPTQi+WJEJ4jIakqylHAZFuMltkCk+10oeDUOjiCs7U3xMJCqScBL7uDJAayUUvFf/zurEaXLoJ5VGsCMfzhwYxgyqEaSqwTwXBik00QVhQ/VeIR0ggrHR2BR2Cs7jyMmlXyk61XLmtFetXWRx5cAROQAk44ALUwQ1oghbA4BE8g1fwZjwZL8a78TFvzRnZzCH4A+PzB+WAlM8=</latexit> Q. 最適な括弧付けは?:
/25 19 何度も同じ部分問題を解くのは無駄 各部分問題を一度だけ解くようにすれば効率的なはず! 2つのケーススタディで共通している観点
/25 20 動的計画法は分割統治法と同様, 部分問題の解を統合することによって問題を解く方法である. 計算結果を保存しておくことで, 部分部分問題を再計算する労を避ける. 部分構造最適性 (optimal substructure) 部分問題重複性
(overlapping subproblems) どんなときに適応できるのか? and ボトムアップ方式 (bottom-up method) 履歴管理を用いるトップダウン方式 (top-down with memorization) どのように実現するのか? or
/25 21 部分構造最適性 連鎖行列積 AiAi+1 · · · Aj <latexit
sha1_base64="d4BgiSep36myJr90VrduqqMWnMo=">AAACAHicbVDLSgMxFM3UV62vURcu3ASLIAhlpgq6bHXjsoJ9QDsMmUymjc0kQ5IRyjAbf8WNC0Xc+hnu/BvTdhZaPXDh5Jx7yb0nSBhV2nG+rNLS8srqWnm9srG5tb1j7+51lEglJm0smJC9ACnCKCdtTTUjvUQSFAeMdIPx9dTvPhCpqOB3epIQL0ZDTiOKkTaSbx80fQqbfkZP3RzCAQ6FVuZ979tVp+bMAP8StyBVUKDl25+DUOA0JlxjhpTqu06ivQxJTTEjeWWQKpIgPEZD0jeUo5goL5sdkMNjo4QwEtIU13Cm/pzIUKzUJA5MZ4z0SC16U/E/r5/q6NLLKE9STTiefxSlDGoBp2nAkEqCNZsYgrCkZleIR0girE1mFROCu3jyX9Kp19yzWv32vNq4KuIog0NwBE6ACy5AA9yAFmgDDHLwBF7Aq/VoPVtv1vu8tWQVM/vgF6yPb2K6lP4=</latexit> を と分割 ((Ai · · · Ak)(Ak+1 · · · Aj)) <latexit sha1_base64="k59hsmDFzcxNMr0EB3JZmtHTbi8=">AAACEHicbZDLSsNAFIYn9VbrLerSzWARW4SSVEGXrW5cVrAXaEOYTKbtmMkkzEyEEvoIbnwVNy4UcevSnW/jtA2orT8M/HznHM6c34sZlcqyvozc0vLK6lp+vbCxubW9Y+7utWSUCEyaOGKR6HhIEkY5aSqqGOnEgqDQY6TtBVeTevueCEkjfqtGMXFCNOC0TzFSGrnmcalUdynsYT9SEtbdoAw1SIMTe/wD78pl1yxaFWsquGjszBRBpoZrfvb8CCch4QozJGXXtmLlpEgoihkZF3qJJDHCARqQrrYchUQ66fSgMTzSxIf9SOjHFZzS3xMpCqUchZ7uDJEayvnaBP5X6yaqf+GklMeJIhzPFvUTBlUEJ+lAnwqCFRtpg7Cg+q8QD5FAWOkMCzoEe/7kRdOqVuzTSvXmrFi7zOLIgwNwCErABuegBq5BAzQBBg/gCbyAV+PReDbejPdZa87IZvbBHxkf30HTmjc=</latexit> どちらも最適な括弧付けになっていなければならない rn = max (pn, r1 + rn 1, r2 + rn 2, . . . , rn 1 + r1) <latexit sha1_base64="VF5YgItC26ZaRlklvBN81eSkKj8=">AAACOHicbVBNSwMxEM36WetX1aOXYFEqatmtgl6EohdvVrC20C1LNs22odnsksyKZenP8uLP8CZePCji1V9g+iFodSDhzXszk8zzY8E12PaTNTU9Mzs3n1nILi4tr6zm1tZvdJQoyqo0EpGq+0QzwSWrAgfB6rFiJPQFq/nd84Feu2VK80heQy9mzZC0JQ84JWAoL3epPIl3TrEbkjtXsAAKsSf3sfIcvGfuVB44/UFa+k5LJnVbEej9b3moOK7i7Q7serm8XbSHgf8CZwzyaBwVL/doptEkZBKoIFo3HDuGZkoUcCpYP+smmsWEdkmbNQyUJGS6mQ4X7+Ntw7RwEClzJOAh+7MjJaHWvdA3lSGBjp7UBuR/WiOB4KSZchknwCQdPRQkAkOEBy7iFleMgugZQKji5q+YdogiFIzXWWOCM7nyX3BTKjqHxdLVUb58NrYjgzbRFiogBx2jMrpAFVRFFN2jZ/SK3qwH68V6tz5GpVPWuGcD/Qrr8wuFtKim</latexit> ロッド切出し問題 長さが と の2つの金属棒に切断, それぞれの金属棒を最適に 分割することで得られる総収入 n i <latexit sha1_base64="AMTEmYgqxguyFb26Fa9BmJlDjkI=">AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4sSRV0GPRi8eK9gPaUDbbTbt0swm7E6GE/gQvHhTx6i/y5r9x2+agrQ8GHu/NMDMvSKQw6Lrfzsrq2vrGZmGruL2zu7dfOjhsmjjVjDdYLGPdDqjhUijeQIGStxPNaRRI3gpGt1O/9cS1EbF6xHHC/YgOlAgFo2ilB3UueqWyW3FnIMvEy0kZctR7pa9uP2ZpxBUySY3peG6CfkY1Cib5pNhNDU8oG9EB71iqaMSNn81OnZBTq/RJGGtbCslM/T2R0ciYcRTYzoji0Cx6U/E/r5NieO1nQiUpcsXmi8JUEozJ9G/SF5ozlGNLKNPC3krYkGrK0KZTtCF4iy8vk2a14l1UqveX5dpNHkcBjuEEzsCDK6jBHdShAQwG8Ayv8OZI58V5dz7mrStOPnMEf+B8/gAGqI2g</latexit> i <latexit sha1_base64="hA2BMjcr0btVk5qY1/HOr4xO94Q=">AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsJ+3azSbsboQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IBFcG9f9dgpr6xubW8Xt0s7u3v5B+fCoreNUMWyxWMSqE1CNgktsGW4EdhKFNAoEPgTj25n/8IRK81jem0mCfkSHkoecUWOlJu+XK27VnYOsEi8nFcjR6Je/eoOYpRFKwwTVuuu5ifEzqgxnAqelXqoxoWxMh9i1VNIItZ/ND52SM6sMSBgrW9KQufp7IqOR1pMosJ0RNSO97M3E/7xuasJrP+MySQ1KtlgUpoKYmMy+JgOukBkxsYQyxe2thI2ooszYbEo2BG/55VXSrlW9i2qteVmp3+RxFOEETuEcPLiCOtxBA1rAAOEZXuHNeXRenHfnY9FacPKZY/gD5/MH0MuM8Q==</latexit> 切断なし 問題の最適解をその部分問題の最適解から構成できるか? 1. ある部分問題の解が最適でないと仮定 2. その部分問題の最適解に貼替える 3. 元の問題に対するよりよい解を得ることができる -> 矛盾 切貼り法(cut-and-paste)を用いて妥当性を確認
/25 22 あるグラフと2点 u, v が与えられたとき u->v への最短路を求めよ u->v への最長単純道を求めよ
部分構造最適性: YES 部分構造最適性: NO 解 u->w->v に対して 切出し法によるチェック 1. u->w への最短路を p とする 2. p より短い道 q が存在すると仮定 3. p を q に貼替える 4. 元の解より短い道が完成 -> 矛盾 u w v x uからvへの最長路: u->w->v uからwへの最長路: u->x->v->w wからvへの最長路: w->u->x->v 組合せても解にならない 部分問題が独立ではない
/25 23 部分問題重複性 再帰アルゴリズムが同じ問題を繰返し訪れているか? 4 Cut-Rod(p, 4) <latexit sha1_base64="VXW9NeIZVP5wdRHbBH6CItNX4HI=">AAACAXicbVDLSgNBEJyNrxhfq14EL4NBiKBhNwb0GMzFYxTzgCSE2dnZZMjsg5leMSzx4q948aCIV//Cm3/jJNmDJhY0FFXddHc5keAKLOvbyCwtr6yuZddzG5tb2zvm7l5DhbGkrE5DEcqWQxQTPGB14CBYK5KM+I5gTWdYnfjNeyYVD4M7GEWs65N+wD1OCWipZx50gD1A0lEUV2M4uw3dcSE6xeWTnpm3itYUeJHYKcmjFLWe+dVxQxr7LAAqiFJt24qgmxAJnAo2znVixSJCh6TP2poGxGeqm0w/GONjrbjYC6WuAPBU/T2REF+pke/oTp/AQM17E/E/rx2Dd9lNeBDFwAI6W+TFAkOIJ3Fgl0tGQYw0IVRyfSumAyIJBR1aTodgz7+8SBqlon1eLN2U85WrNI4sOkRHqIBsdIEq6BrVUB1R9Iie0St6M56MF+Pd+Ji1Zox0Zh/9gfH5A8amlck=</latexit> 3
0 2 1 0 0 1 0 1 0 0 2 1 0 0 ロッド切出し問題 4 3 0 2 1 0 0 1 1 0 2 Memorized-Cut-Rod-Aux(p, 4, r) <latexit sha1_base64="QfpOujYtrp8AIhkz+GJXWLhPbh4=">AAACEnicbVDLSgNBEJz1bXxFPXoZDIKCCbsa0KOPixdBxSRCEsLsbCcZnN1ZZnolcck3ePFXvHhQxKsnb/6Nk8dBowUNRVU33V1+LIVB1/1yJianpmdm5+YzC4tLyyvZ1bWyUYnmUOJKKn3jMwNSRFBCgRJuYg0s9CVU/NvTvl+5A22Eiq6xG0M9ZK1INAVnaKVGdqeG0MG0Zjg9h1BpcQ9B/jTB/JUK8sdJp7cd79LiLtU7jWzOLbgD0L/EG5EcGeGikf2sBYonIUTIJTOm6rkx1lOmUXAJvUwtMRAzfstaULU0YiGYejp4qUe3rBLQptK2IqQD9edEykJjuqFvO0OGbTPu9cX/vGqCzcN6KqI4QYj4cFEzkRQV7edDA6GBo+xawrgW9lbK20wzjjbFjA3BG3/5LynvFbz9wt5lMXd0MopjjmyQTbJNPHJAjsgZuSAlwskDeSIv5NV5dJ6dN+d92DrhjGbWyS84H98PfJxl</latexit>
/25 24 動的計画法の応用例 遺伝子コードの比較, 系統樹の作成など 配列アラインメント (The Needleman Wunsch algorithm)
時系列データの比較, 音声認識など 動的時間伸縮法 (dynamic time warping) グラフィカルモデルにおける推論手法 max-sum アルゴリズム
/25 25 まとめ 大きい問題を分割, 部分問題を解いて得られた解を結合して 元の問題の答えを得る. 部分問題の解を保存しておき適宜利用する. 動的計画法 適用可能かの判断 解に部分構造最適性と部分問題重複性があるかどうか
実現方法 履歴管理を用いるトップダウン方式 or ボトムアップ方式