SlideShare una empresa de Scribd logo
1 de 40
1
2
3
(   /   )
            (   /   )




                        4
min.    f (x)
    s. t.   x∈S
f                   X
S                   X

x∈S                           f
x


                        S=∅
              S=∅




                                  5
inf{f (x)|x ∈ S}




                   6
•
•
    •
    •
    •
•
    •
    •
•
•
•

        7
8
X      n                         Rn                    f           S



            aij , bi , cj (i = 1, · · · , m; j = 1, · · · , n)
            xj (j = 1, · · · , n)
    min.     c 1 x1 + · · · + c n xn
    s. t.    ai1 x1 + · · · + ain xn ≤ bi (i = 1, · · · , l)
             ai1 x1 + · · · + ain xn = bi (i = l + 1, · · · , m)




                                                                       9
aij , bi , cj (i = 1, · · · , m; j = 1, · · · , n)


min.     c 1 x1 + · · · + c n xn
s. t.    ai1 x1 + · · · + ain xn ≥ bi (i = 1, · · · , m)
         xj ≥ 0(j = 1, · · · , n)


min.     cT x
s. t.    Ax ≥ b
         x≥0




                                                             10
n                  n                    n
      aj xj = b →         aj xj ≤ b,           aj xj ≥ b
j=1                 j=1                j=1




        n                        n
max.         cj xj → min. −           c j xj
       j=1                      j=1
 n                        n
      a j xj ≤ b → −          aj xj ≥ −b
j=1                     j=1




x → x = x1 − x2 , x1 ≥ 0, x2 ≥ 0

                                                           11
min.    c 1 x1 + · · · + c n xn
s. t.   ai1 x1 + · · · + ain xn = bi (i = 1, · · · , m)
        xj ≥ 0(j = 1, · · · , n)


min.    cT x
s. t.   Ax = b
        x≥0




                                                          12
min.    c 1 x1 + · · · + c n xn
s. t.   ai1 x1 + · · · + ain xn ≥ bi (i = 1, · · · , m)
        xj ≥ 0(j = 1, · · · , n)

i                                    xn+i
ai1 x1 + · · · + ain xn ≥ bi → ai1 x1 + · · · + ain xn − xn+i = bi , xn+i ≥ 0




                                                                                13
14
15
min.    cT x
s. t.   Ax ≥ b
        x≥0
         z = cT x            x = (xx+1 , · · · , xn+m )
min.    z
s. t.   z = 0 + cT x
        x = −b + Ax
        x, x ≥ 0
                     z   z




                                                          16
min.    cT x
s. t.   Ax ≥ b
        x≥0
         z = cT x             x = (xx+1 , · · · , xn+m )
min.    z
s. t.   z = 0 + cT x     {n + 1, · · · , n + m}
        x = −b + Ax
        x, x ≥ 0
                     z   z




                                                           16
z = 0 + cT x
x = −b + Ax




               17
D           B



  z                              xs



                                      xs

Dr0 /|Drs | = min{Di0 /|Dis ||Dis < 0, i ∈ B  {z}}, Drs < 0
                xr
       r
            (r, s)


                                                               18
D                 r                 s             Drs = 0
D                         B                 N
    D         i   Di (i = r)        r       Dr   Dis /Drs
        xs              xr
Di
r Dr         −1/Drs            xs                xr
                              Ds
B ← B  {r} ∪ {s} N ← N  {r} ∪ {s}




                                                                19
z = 0 − 2x1 − x2 − x3
x4 = 4 − 2x1 − 2x2 + x3
x5 = 4 − 2x1 − 4x3
x6 = 1 + 4x1 − 3x2 + x3
        (4, 1)
 z = −4 + x4 + x2 − 2x3
x1 = 2 − 1/2x4 − x2 + 1/2x3
x5 = 0 + x4 + 2x2 − 5x3
x6 = 0 − 2x4 − 7x2 + 3x3




                              20
min.  −2x1 − x2 − x3
s. t. −2x1 − 2x2 + x3 ≥ −4
      −2x1 − 4x3 ≥ −4
      4x1 − 3x2 + x3 ≥ −1
      x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
                       x4 , x5 , x6
 z = 0 − 2x1 − x2 − x3
x4 = 4 − 2x1 − 2x2 + x3
x5 = 4 − 2x1 − 4x3
x6 = 1 + 4x1 − 3x2 + x3

(x1 , x2 , x3 , x4 , x5 , x6 , z) = (0, 0, 0, 4, 4, 1, 0)



                                                            21
x1 = 1                x4 = 2, x5 = 2, x6 = 5, z = −2
x1 = 2                x4 = 0, x5 = 0, x6 = 9, z = −4
x1 = 3                x4 = −2, x5 = −2, x6 = 13, z = −6
                                         x1 2

(x1 , x2 , x3 , x4 , x5 , x6 , z) = (2, 0, 0, 0, 0, 9, −4)
 x1
                                         x1     x4
   (4, 1)
 z = −4 + x4 + x2 − 2x3
x1 = 2 − 1/2x4 − x2 + 1/2x3
x5 = 0 + x4 + 2x2 − 5x3
x6 = 0 − 2x4 − 7x2 + 3x3
                                                             22
x1 = 1                x4 = 2, x5 = 2, x6 = 5, z = −2
x1 = 2                x4 = 0, x5 = 0, x6 = 9, z = −4
x1 = 3                x4 = −2, x5 = −2, x6 = 13, z = −6
                                         x1 2

(x1 , x2 , x3 , x4 , x5 , x6 , z) = (2, 0, 0, 0, 0, 9, −4)
 x1
                                         x1     x4
   (4, 1)
 z = −4 + x4 + x2 − 2x3
x1 = 2 − 1/2x4 − x2 + 1/2x3
x5 = 0 + x4 + 2x2 − 5x3
x6 = 0 − 2x4 − 7x2 + 3x3
                                                             23
x3                     x5
 z = −4 + 3/5x4 + 1/52 + 2/5x5
x1 = 2 − 2/5x4 − 4/5x2 − 1/10x5
x3 = 0 + 1/5x4 + 2/5x2 − 1/5x5
x6 = 9 − 7/5x4 − 29/5x2 − 3/5x5


           (x1 , x2 , x3 , x4 , x5 , x6 , z) = (2, 0, 0, 0, 0, 9, −4)




                                                                        24
D           B



  z                              xs



                                      xs

Dr0 /|Drs | = min{Di0 /|Dis ||Dis < 0, i ∈ B  {z}}, Drs < 0
                xr
       r
            (r, s)


                                                               25
b≤0




      26
min.     cT x
 s. t.    Ax ≥ b
          x≥0
     xa              e = (1, · · · , 1) ∈ Rm
 min.     xa
 s. t.    Ax + exa ≥ b
          x ≥ 0, xa ≥ 0
xa


xa



                                               27
za = x a
  za = 0 + 0T x + x a
  x = −b + Ax + exa
b≤0

                                   xr
(r, a)




                                        28
min.    −x1 − 2x2
 s. t.   −x1 − x2 ≥ −1
         x1 + x2 ≥ 1
         x1 ≥ 0, x2 ≥ 0

 za = xa
  z = −x1 − 2x2
 x3 = 1 − x1 − x2 + xa
 x4 = −1 + x1 + x2 + xa
(4, a)
  za = 1 − x1 − x2 + x4
   z = −x1 − 2x2
 x3 = 2 − 2x1 − 2x2 + x4
 xa = 1 − x1 − x2 + x4
                           29
(a, 1)
za = x a
 z = −1 + xa − x2 − x4
x3 = 2xa − x4
x1 = 1 − xa − x2 + x4




                         30
xa

              xr
(r, a)




                   31
32
33
solveLP(cvec, bvec, Amat, maximum = FALSE,
        const.dir = rep( "<=", length( bvec ) ))



cvec               b
bvec               c               min.    cT x
Amat           A                   s. t.   Ax ≥ b
maximum                                    x≥0
const.dir




                                                    34
min.    −2x1 − x2 − x3
s. t.   −2x1 − 2x2 + x3 ≥ −4
        −2x1 − 4x3 ≥ −4
        4x1 − 3x2 + x3 ≥ −1
        x1 ≥ 0, x2 ≥ 0, x3 ≥ 0



> cvec <- c(-2, -1, -1)
> bvec <- c(-4, -4, -1)
> Amat <- rbind(c(-2, -1, -1), c(-2, 0, -4),
               c(4, -3, 1))
> result <-solveLP(cvec, bvec, Amat,
                   const.dir=rep(">=",length(bvec)))

                                                       35
> result$opt        #
[1] -4
> result$solution   #
1 2 3
2 0 0
> result$iter1      #   1
[1] 0
> result$iter2      #   1
[1] 1



                            36
37
•
•
    •
    •
•
•




        38
39

Más contenido relacionado

La actualidad más candente

グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
 

La actualidad más candente (20)

数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
 
JupyterLabを中心とした快適な分析生活
JupyterLabを中心とした快適な分析生活JupyterLabを中心とした快適な分析生活
JupyterLabを中心とした快適な分析生活
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 
Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networks
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
 
強化学習における好奇心
強化学習における好奇心強化学習における好奇心
強化学習における好奇心
 
Android/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニングAndroid/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニング
 
[DL輪読会]深層強化学習はなぜ難しいのか?Why Deep RL fails? A brief survey of recent works.
[DL輪読会]深層強化学習はなぜ難しいのか?Why Deep RL fails? A brief survey of recent works.[DL輪読会]深層強化学習はなぜ難しいのか?Why Deep RL fails? A brief survey of recent works.
[DL輪読会]深層強化学習はなぜ難しいのか?Why Deep RL fails? A brief survey of recent works.
 
外れ値
外れ値外れ値
外れ値
 
21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)
 
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなシンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るな
 
確率的主成分分析
確率的主成分分析確率的主成分分析
確率的主成分分析
 
[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 

Más de Hidekazu Tanaka (11)

ggplot2 に入門してみた
ggplot2 に入門してみたggplot2 に入門してみた
ggplot2 に入門してみた
 
データベースのお話
データベースのお話データベースのお話
データベースのお話
 
フォントのお話
フォントのお話フォントのお話
フォントのお話
 
フォントのお話
フォントのお話フォントのお話
フォントのお話
 
バギングで構築された各決定木
バギングで構築された各決定木バギングで構築された各決定木
バギングで構築された各決定木
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習
 
RHadoop の紹介
RHadoop の紹介RHadoop の紹介
RHadoop の紹介
 
Rの紹介
Rの紹介Rの紹介
Rの紹介
 
R meets Hadoop
R meets HadoopR meets Hadoop
R meets Hadoop
 
RでMapreduce
RでMapreduceRでMapreduce
RでMapreduce
 
Rによるやさしい統計学 第16章 : 因子分析
Rによるやさしい統計学 第16章 : 因子分析Rによるやさしい統計学 第16章 : 因子分析
Rによるやさしい統計学 第16章 : 因子分析
 

Rで解く最適化問題 線型計画問題編

  • 1. 1
  • 2. 2
  • 3. 3
  • 4. ( / ) ( / ) 4
  • 5. min. f (x) s. t. x∈S f X S X x∈S f x S=∅ S=∅ 5
  • 7. • • • • • • • • • • • 7
  • 8. 8
  • 9. X n Rn f S aij , bi , cj (i = 1, · · · , m; j = 1, · · · , n) xj (j = 1, · · · , n) min. c 1 x1 + · · · + c n xn s. t. ai1 x1 + · · · + ain xn ≤ bi (i = 1, · · · , l) ai1 x1 + · · · + ain xn = bi (i = l + 1, · · · , m) 9
  • 10. aij , bi , cj (i = 1, · · · , m; j = 1, · · · , n) min. c 1 x1 + · · · + c n xn s. t. ai1 x1 + · · · + ain xn ≥ bi (i = 1, · · · , m) xj ≥ 0(j = 1, · · · , n) min. cT x s. t. Ax ≥ b x≥0 10
  • 11. n n n aj xj = b → aj xj ≤ b, aj xj ≥ b j=1 j=1 j=1 n n max. cj xj → min. − c j xj j=1 j=1 n n a j xj ≤ b → − aj xj ≥ −b j=1 j=1 x → x = x1 − x2 , x1 ≥ 0, x2 ≥ 0 11
  • 12. min. c 1 x1 + · · · + c n xn s. t. ai1 x1 + · · · + ain xn = bi (i = 1, · · · , m) xj ≥ 0(j = 1, · · · , n) min. cT x s. t. Ax = b x≥0 12
  • 13. min. c 1 x1 + · · · + c n xn s. t. ai1 x1 + · · · + ain xn ≥ bi (i = 1, · · · , m) xj ≥ 0(j = 1, · · · , n) i xn+i ai1 x1 + · · · + ain xn ≥ bi → ai1 x1 + · · · + ain xn − xn+i = bi , xn+i ≥ 0 13
  • 14. 14
  • 15. 15
  • 16. min. cT x s. t. Ax ≥ b x≥0 z = cT x x = (xx+1 , · · · , xn+m ) min. z s. t. z = 0 + cT x x = −b + Ax x, x ≥ 0 z z 16
  • 17. min. cT x s. t. Ax ≥ b x≥0 z = cT x x = (xx+1 , · · · , xn+m ) min. z s. t. z = 0 + cT x {n + 1, · · · , n + m} x = −b + Ax x, x ≥ 0 z z 16
  • 18. z = 0 + cT x x = −b + Ax 17
  • 19. D B z xs xs Dr0 /|Drs | = min{Di0 /|Dis ||Dis < 0, i ∈ B {z}}, Drs < 0 xr r (r, s) 18
  • 20. D r s Drs = 0 D B N D i Di (i = r) r Dr Dis /Drs xs xr Di r Dr −1/Drs xs xr Ds B ← B {r} ∪ {s} N ← N {r} ∪ {s} 19
  • 21. z = 0 − 2x1 − x2 − x3 x4 = 4 − 2x1 − 2x2 + x3 x5 = 4 − 2x1 − 4x3 x6 = 1 + 4x1 − 3x2 + x3 (4, 1) z = −4 + x4 + x2 − 2x3 x1 = 2 − 1/2x4 − x2 + 1/2x3 x5 = 0 + x4 + 2x2 − 5x3 x6 = 0 − 2x4 − 7x2 + 3x3 20
  • 22. min. −2x1 − x2 − x3 s. t. −2x1 − 2x2 + x3 ≥ −4 −2x1 − 4x3 ≥ −4 4x1 − 3x2 + x3 ≥ −1 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 x4 , x5 , x6 z = 0 − 2x1 − x2 − x3 x4 = 4 − 2x1 − 2x2 + x3 x5 = 4 − 2x1 − 4x3 x6 = 1 + 4x1 − 3x2 + x3 (x1 , x2 , x3 , x4 , x5 , x6 , z) = (0, 0, 0, 4, 4, 1, 0) 21
  • 23. x1 = 1 x4 = 2, x5 = 2, x6 = 5, z = −2 x1 = 2 x4 = 0, x5 = 0, x6 = 9, z = −4 x1 = 3 x4 = −2, x5 = −2, x6 = 13, z = −6 x1 2 (x1 , x2 , x3 , x4 , x5 , x6 , z) = (2, 0, 0, 0, 0, 9, −4) x1 x1 x4 (4, 1) z = −4 + x4 + x2 − 2x3 x1 = 2 − 1/2x4 − x2 + 1/2x3 x5 = 0 + x4 + 2x2 − 5x3 x6 = 0 − 2x4 − 7x2 + 3x3 22
  • 24. x1 = 1 x4 = 2, x5 = 2, x6 = 5, z = −2 x1 = 2 x4 = 0, x5 = 0, x6 = 9, z = −4 x1 = 3 x4 = −2, x5 = −2, x6 = 13, z = −6 x1 2 (x1 , x2 , x3 , x4 , x5 , x6 , z) = (2, 0, 0, 0, 0, 9, −4) x1 x1 x4 (4, 1) z = −4 + x4 + x2 − 2x3 x1 = 2 − 1/2x4 − x2 + 1/2x3 x5 = 0 + x4 + 2x2 − 5x3 x6 = 0 − 2x4 − 7x2 + 3x3 23
  • 25. x3 x5 z = −4 + 3/5x4 + 1/52 + 2/5x5 x1 = 2 − 2/5x4 − 4/5x2 − 1/10x5 x3 = 0 + 1/5x4 + 2/5x2 − 1/5x5 x6 = 9 − 7/5x4 − 29/5x2 − 3/5x5 (x1 , x2 , x3 , x4 , x5 , x6 , z) = (2, 0, 0, 0, 0, 9, −4) 24
  • 26. D B z xs xs Dr0 /|Drs | = min{Di0 /|Dis ||Dis < 0, i ∈ B {z}}, Drs < 0 xr r (r, s) 25
  • 27. b≤0 26
  • 28. min. cT x s. t. Ax ≥ b x≥0 xa e = (1, · · · , 1) ∈ Rm min. xa s. t. Ax + exa ≥ b x ≥ 0, xa ≥ 0 xa xa 27
  • 29. za = x a za = 0 + 0T x + x a x = −b + Ax + exa b≤0 xr (r, a) 28
  • 30. min. −x1 − 2x2 s. t. −x1 − x2 ≥ −1 x1 + x2 ≥ 1 x1 ≥ 0, x2 ≥ 0 za = xa z = −x1 − 2x2 x3 = 1 − x1 − x2 + xa x4 = −1 + x1 + x2 + xa (4, a) za = 1 − x1 − x2 + x4 z = −x1 − 2x2 x3 = 2 − 2x1 − 2x2 + x4 xa = 1 − x1 − x2 + x4 29
  • 31. (a, 1) za = x a z = −1 + xa − x2 − x4 x3 = 2xa − x4 x1 = 1 − xa − x2 + x4 30
  • 32. xa xr (r, a) 31
  • 33. 32
  • 34. 33
  • 35. solveLP(cvec, bvec, Amat, maximum = FALSE, const.dir = rep( "<=", length( bvec ) )) cvec b bvec c min. cT x Amat A s. t. Ax ≥ b maximum x≥0 const.dir 34
  • 36. min. −2x1 − x2 − x3 s. t. −2x1 − 2x2 + x3 ≥ −4 −2x1 − 4x3 ≥ −4 4x1 − 3x2 + x3 ≥ −1 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 > cvec <- c(-2, -1, -1) > bvec <- c(-4, -4, -1) > Amat <- rbind(c(-2, -1, -1), c(-2, 0, -4), c(4, -3, 1)) > result <-solveLP(cvec, bvec, Amat, const.dir=rep(">=",length(bvec))) 35
  • 37. > result$opt # [1] -4 > result$solution # 1 2 3 2 0 0 > result$iter1 # 1 [1] 0 > result$iter2 # 1 [1] 1 36
  • 38. 37
  • 39. • • • • • • 38
  • 40. 39

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n