1. Trang chủ
  2. » Cao đẳng - Đại học

Phương pháp xích Markov Monte Carlo và ứng dụng

76 308 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Lời cảm ơn

  • Lời cam đoan

  • Danh mục các kí hiệu, chữ viết tắt

  • Danh sách bang

  • Danh sách hình vẽ

  • MỞ ĐẦU

  • NỘI DUNG

  • Xích Markov

    • Một số khái niệm cơ bản của lý thuyết xác suất

    • Xích Markov

      • Định nghĩa

      • Mô phỏng Xích Markov

      • Xích Markov tối giản và phi tuần hoàn

      • Phân phối dừng

      • Xích Markov khả nghịch

  • Phương pháp Monte-Carlo

    • Số ngẫu nhiên và phương pháp sinh số ngẫu nhiên

      • Bài toán tổng quát

      • Sinh số giả ngẫu nhiên

      • Sinh ra các đại lượng ngẫu nhiên với phân phối không đều

      • Các phân phối đặc biệt

    • Phương pháp Monte-Carlo

      • Phương pháp lấy mẫu phân tầng

      • Chọn mẫu quan trọng

      • Các số ngẫu nhiên chung

  • Xích Markov Monte Carlo

    • Phương pháp Xích Markov Monte Carlo

    • Một số phương pháp cải tiến

      • Các phương pháp tăng tốc cho thuật toán

      • Xấp xỉ ngẫu nhiên

    • Mô phỏng

  • KẾT LUẬN

  • Tài lịu tham khao

  • PHỤ LỤC: Code mô phỏng bằng Python

Nội dung

B GIO DC V O TO TRNG I HC S PHM H NI - HONG TH ANH SANG PHNG PHP XCH MARKOV MONTE CARLO V NG DNG LUN VN THC S TON HC H NI, 2017 B GIO DC V O TO TRNG I HC S PHM H NI - HONG TH ANH SANG PHNG PHP XCH MARKOV MONTE CARLO V NG DNG Chuyờn ngnh: Toỏn ng dng Mó s: 60 46 01 12 LUN VN THC S TON HC Ngi hng dn khoa hc: TS NGễ HONG LONG H NI, 2017 Li cm n Tụi xin by t lũng bit n sõu sc ti thy Ngụ Hong Long, ging viờn khoa Toỏn-Tin, trng i hc S phm H Ni ó hng dn tụi tn tỡnh, cho tụi nhng kin thc v kinh nghim quý bỏu, to iu kin thun li cho tụi quỏ trỡnh thc hin v hon thnh Lun ny Tụi cng xin by t lũng bit n chõn thnh ti ton th cỏc thy cụ giỏo khoa Toỏn, trng i hc s phm H Ni ó dy bo tụi tn tỡnh sut quỏ trỡnh hc ti khoa Nhõn dp ny tụi cng xin c gi li cm n chõn thnh ti gia ỡnh, bn bố ó luụn bờn tụi, c v, ng viờn, giỳp tụi sut quỏ trỡnh hc v thc hin Lun tt nghip H Ni, ngy 12 thỏng 06 nm 2017 Hc viờn cao hc Hong Th Anh Sang i Li cam oan Tụi xin cam oan Lun thc s "Phng phỏp xớch Markov Monte Carlo v ng dng" l nghiờn cu ca riờng tụi v c s hng dn khoa hc ca TS Ngụ Hong Long Cỏc s liu, kt qu nờu Lun l trung thc v cha tng c cụng b di bt kỡ hỡnh thc no trc õy Nu phỏt hin cú bt k s gian ln no tụi xin hon ton chu trỏch nhim v ni dung Lun ca mỡnh H Ni, ngy 12 thỏng 06 nm 2017 Hc viờn cao hc Hong Th Anh Sang ii Mc lc Li cm n i Li cam oan ii Danh mc cỏc kớ hiu, ch vit tt v Danh sỏch bng vi Danh sỏch hỡnh v vii M U viii NI DUNG 1 Xớch Markov 1.1 Mt s khỏi nim c bn ca lý thuyt xỏc sut 1.2 Xớch Markov 1.2.1 nh ngha 1.2.2 Mụ phng Xớch Markov 1.2.3 Xớch Markov ti gin v phi tun hon 12 1.2.4 Phõn phi dng 13 1.2.5 Xớch Markov kh nghch 15 Phng phỏp Monte-Carlo 2.1 16 S ngu nhiờn v phng phỏp sinh s ngu nhiờn 16 2.1.1 16 Bi toỏn tng quỏt iii 2.2 2.1.2 Sinh s gi ngu nhiờn 17 2.1.3 Sinh cỏc i lng ngu nhiờn vi phõn phi khụng u 19 2.1.4 Cỏc phõn phi c bit 22 Phng phỏp Monte-Carlo 24 2.2.1 Phng phỏp ly mu phõn tng 24 2.2.2 Chn mu quan trng 27 2.2.3 Cỏc s ngu nhiờn chung 28 Xớch Markov Monte Carlo 32 3.1 Phng phỏp Xớch Markov Monte Carlo 32 3.2 Mt s phng phỏp ci tin 40 3.2.1 Cỏc phng phỏp tng tc cho thut toỏn 40 3.2.2 Xp x ngu nhiờn 48 Mụ phng 56 3.3 KT LUN 59 Ti liu tham kho 60 PH LC: Code mụ phng bng Python 61 iv Danh mc cỏc kớ hiu, ch vit tt E[X] Kỡ vng ca bin X Var[X] Phng sai ca bin X (x) Hm to (x) Hm cp nht dTV Bin phõn ton phn CLN c chung ln nht MCMC Phng phỏp xớch Markov Monte Carlo Kt thỳc chng minh v Danh sỏch bng 3.1 Kt qu vi th nh 57 3.2 Kt qu vi th nh 58 vi Danh sỏch hỡnh v 3.1 Mt cu hỡnh thc hin c (la chn bt kỡ theo o xỏc sut àG ) 33 3.2 th G vi nh 57 3.3 th G vi nh 58 vii M U Lý chn ti Trong nhiu ng dng thc t, bi toỏn thng c quy v vic xỏc nh kỡ vng ca hm ca mt i lng ngu nhiờn theo phõn phi nht nh Khi ú, ngi ta thng tỡm cỏch xõy dng dóy bin ngu nhiờn c lp cú phõn phi ny trờn mỏy tớnh v s dng lut s ln xp x kỡ vng cn tớnh Tuy nhiờn, nhiu trng hp, vic mụ phng chớnh xỏc mt phõn phi no ú l ht sc khú khn Phng phỏp xớch Markov Monte Carlo i nhm khc phc khú khn ny Theo ú, ta s xõy dng mt xớch Markov cú phõn phi dng l phõn phi ó cho v ỏp dng nh lý ergodic xp x kỡ vng Ngy phng phỏp xớch Markov Monte Carlo ó c phỏt trin v s dng rng rói rt nhiu lnh vc, t vt lý cho n sinh vt, ti chớnh, khoa hc mỏy tớnh Vi mong mun tỡm hiu sõu v phng phỏp xớch Markov Monte Carlo v cỏc ng dng ca nú, tụi la chn ti nghiờn cu: Phng phỏp xớch Markov Monte Carlo v ng dng cho lun thc s ca mỡnh Ti liu tham kho chớnh ca lun l cỏc chuyờn kho [3] v [4] Mc ớch nghiờn cu C s lý thuyt ca phng phỏp xớch Markov Monte Carlo Mụ phng phng phỏp xớch Markov Monte Carlo viii cho ta kt qu khong sai s nhõn vi kt qu ỳng Tuy nhiờn, iu ny quỏ nhiu yờu cu, v ta phi cú mt thut toỏn cho kt qu gn nh chớnh xỏc ca hu ht thi im, nhng cú th cho (vụ s) kt qu khụng ỳng vi mt xỏc sut dng Chớnh xỏc hn, gi s ta cú mt thut toỏn m > v trng hp bi toỏn m nh u vo, v cú tớnh cht: , u cú kt qa nm gia (1 )N v (1 + )N , õy N l kt qu ỳng ca bi toỏn m (i) vi xỏc sut ớt nht l (ii) vi > bt kỡ, tn ti a thc p (k) vi kớch thc k ca bi toỏn cho trng hp bt kỡ ca k, thut toỏn kt thỳc hu ht sau p (k) bc Thut toỏn nh th gi l s xp x ngu nhiờn vi thi gian a thc nh lý 3.5 Cỏc s nguyờn c nh q v d m q > 2d2 , v xột bi toỏn m cỏc cỏch tụ q-mu cho th m mi nh cú nhiu nht d lõn cn Khi ú tn ti mt s xp x ngu nhiờn vi thi gian a thc cho bi toỏn ny Chng minh u tiờn ta mụ t thut toỏn xp x Gi s th G = (V, E) cú k nh v k cnh, theo gi s ca nh lớ ta cú k dk Tp cnh E : {e1 , , ek }, v cỏc th G0 , G1 , , Gk xỏc nh nh sau: - G0 = (V, ) l th vi nh V v khụng cú cnh no t Gj = (V, {e1 , , ej }) Núi cỏch khỏc, Gj l th cú c t - Vi j = 1, , k, th G bng cỏch xúa i cỏc cnh ej+1 , , ek gi Zj s cỏc cỏch tụ q-mu cho th Gj tha bi Vi mi j = 0, , k,ta i lng cn tớnh l Zk Ta vit: Zk = Z Zk Z2 Z1 ì k1 ì ã ã ã ì ì ì Z0 Zk1 Zk2 Z1 Z0 (3.18) Nu ta cú th c lng mi tha s (3.18) vi chớnh xỏc, sau ú ta nhõn cỏc c lng ú ta s c c lng ca Zk Tha s cui cựng Z0 l tm thng: vỡ G0 khụng cú cnh no ú bt kỡ phộp gỏn cỏc mu t {1, 2, , q} ti cỏc nh l cỏch tụ q-mu hp lớ, m G0 cú k nh nờn ta cú Z0 = q k 50 Zj (3.18) Gi xj , yj l hai u mỳt ca cnh Zj1 ej Gj nhng khụng Gj1 Theo nh ngha, Zj l s cỏc cỏch tụ q-mu ca Ta i c lng tng tha s th Gj Nhng cỏc cỏch tụ q-mu ca Gj thỡ chớnh l cỏc cu hỡnh {1, , q}V Zj ú l cỏc cỏch tụ q-mu ca Gj1 v tha (xj ) = (yj ) Do ú chớnh l t Zj1 l ca cỏc cỏch tụ q-mu ca Gj tha (xj ) = (yj ) Cú ngha l Zj = Gj1 ,q (X(xj ) = X(yj )), Zj1 tc l, Gj1 ,q (3.19) Zj bng xỏc sut mu ngu nhiờn X ca Gj1 , la chn theo phõn phi u Zj1 tha X(xj ) = X(yj ) im chớnh bõy gi l xỏc sut Gj1 ,q (X(xj ) = X(yj )) (3.19) cú th s dng c lng mụ phng thut toỏn cho Gj1,q xột nh lớ 3.4 Nu ta mụ phng mt cỏch tụ q-mu ngu nhiờn X {1, , q}V cho Gj1 cỏc thi im khỏc nhau, ú t l cỏc mụ phng cho kt qu mt cu hỡnh vi cỏc mu khỏc xj v yj tin n rt gn2 biu thc (3.19) Ta s dng kt qu ny c lng mi tha s (3.18), sau ú nhõn chỳng li vi ta c c lng ca Zk Tip theo ta cn xỏc nh s mụ phng cn thc hin c lng mi tha s Zj v s bc ca phng phỏp ly mu Gibbs chy mi mụ phng Ta cn Zj1 b sau: B 3.6 C nh [0, 1], cho k l mt s nguyờn dng, v cho a1 , , ak v b1 , , bk l cỏc s nguyờn dng tha 2k k vi j = 1, , k t a = aj 1+ bj 2k k aj v b = j=1 bj Khi ú ta cú j=1 a + b (3.20) Chng minh chng minh bt ng thc th nht (3.20), chỳ ý rng (1 )2 , ú 2k 2k 2k (1 2k 2k Tin n rt gn theo Lut S Ln (nh lớ 1.2) 51 2k Tng t ta cú 2k k k 2k Do ú a = b k aj b j j=1 k (1 j=1 ) = (1 )k 2k 2k k = 2k chng minh bt ng thc th hai, ta chỳ ý rng ex/2 + x vi mi x [0, 1], vỡ vy ta c a = b k aj b j=1 j k j=1 = exp 1+ 2k k exp j=1 2k + B 3.7 C nh d v q > 2d2 Cho G = (V, E) l mt th ú khụng nh no cú nhiu hn d lõn cn v t ngu nhiờn mt cỏch tụ q-mu X cho G theo phõn phi u G,q Khi ú, vi hai nh phõn bit bt kỡ x, y V , xỏc sut X(x) = X(y) tha G,q (X(x) = X(y)) (3.21) Chng minh Chỳ ý u tiờn l x, y l hai nh k G ú bt ng thc (3.21) l tm thng vỡ v trỏi bng Ta xột trng hp x, y khụng k Xột cỏc thc nghim sau õy, ú l cỏch tỡm mu ngu nhiờn X {1, , q}V : u tiờn xột mu X(V \{x}) ca tt c cỏc nh tr x v sau ú nhỡn vo mu sc x Vỡ G,q cú phõn phi u vi tt c cỏc mu, ta cú phõn phi iu kin ca mu X(x) bit X(V \{x}) l phõn phi u vi tt c cỏc mu m khụng cú bt kỡ lõn cn no ca x Rừ rng, x cú ớt nht q d mu la chn, vỡ vy xỏc sut iu , bt k mu X(V \{x}) cú kin nhn chớnh xỏc mu m nh y nhn ln nht l qd 52 cỏc nh khỏc l gỡ iu ny cho ta G,q (X(x) = X(y)) , vỡ vy qd G,q (X(x) = X(y)) = G,q (X(x) = X(y)) 1 qd 2d d 1 = 2 B 3.8 C nh p [0, 1] v s nguyờn dng n Tung n ln mt ng xu vi xỏc xut nga p Gi s cỏc ln tung l c lp vi Gi H l s ln nga Khi ú, vi a > bt kỡ ta cú P(|H np| a) n 4a2 Chng minh Chỳ ý H l mt bin ngu nhiờn cú phõn phi nh thc (n, p) Do ú, E[H] = np v Var[H] = np(1 p) Do ú theo bt ng thc Chebyshev (nh lớ 1.1) ta cú P(|H np| a) vỡ p(1 p) np(1 p) n 2 a 4a vi mi p [0, 1] ta gi Ta tip tc chng minh nh lớ 3.5 Ta cn mt s kớ hiu Cho j = 1, , k, Zj Yj l giỏ tr c lng theo thut toỏn (ngu nhiờn) ca ; Y = kj=1 Yj v Zj1 k k Y = Z0 Y = q Y = q k Yj (3.22) j=1 Theo (3.18), ta ly Y l c lng mong mun ca Zk , tc l, ú l u ca thut Zj Sai s cho phộp toỏn u tiờn, ta cn sinh c lng Yj ca , vi j = 1, , k Zj1 l bao nhiờu mi c lng Y1 , , Yk ? Gi s ta chc chn rng (1 Zj Zj ) Yj (1 + ) 2k Zj1 2k Zj1 vi mi j iu ny tng ng Yj 1+ , Zj /Zj1 2k 2k 53 (3.23) v ỏp dng B 3.6 ta c Y k j=1 (Zj /Zj1 ) + , bin i ta c Y + Zk /Z0 Theo (3.22) c lng Y = Z0 Y , ú ta c Y + , Zk Khi ú ta vit li: (1 )Zk Y (1 + )Zk (3.24) õy chớnh l cỏi ta cn Ta vit li (3.23) nh sau T (3.19) v B 3.7 ta cú Zj Zj Zj Yj Zj1 2k Zj1 2k Zj1 (3.25) Zj Vỡ vy, (3.23) v (3.25) ỳng nu ta chc chn Zj1 rng Zj Yj Zj1 4k 4k (3.26) Nhc li Yj cú c bi mụ phng cỏc cỏch tụ q-mu ngu nhiờn cho Gj1 ti cỏc thi im khỏc nhau, bng phng phỏp ly mu Gibbs, v Yj l t l ca cỏc mụ phng m kt qu mt cỏch tụ q-mu tha (xj ) = (yj ) Cú hai ngun li kt qu ny, ú l (i) phng phỏp ly mu Gibbs (m ta bt u bng mt s c nh nhng cỏch tụ q-mu tựy ý) ch chy hu hn bc n, vỡ vy phõn phi à(n) cu mu tụ cú th khỏc vi phõn phi mc tiờu Gj ,q , (ii) ch cú hu hn mụ phng c thc hin, vỡ vy t l Yj cú kt qu cỏch tụ q-mu vi (xj ) = (yj ) cú th khỏc mt chỳt so vi kt qu mong i à(n) (X(xj ) = X(yj )) 54 Zj Zj (vỡ = Gj1 ,q (X(xj ) = X(yj )) theo Theo (3.26), Yj c phộp sai khỏc Zj1 Zj1 (3.19)) ln nht l Mt cỏch chc chn iu ny thỡ phi m bo rng 4k à(n) (X(xj ) = X(yj )) Gj1 ,q (X(xj ) = X(yj )) 8k (3.27) v Yj à(n) (X(xj ) = X(yj )) 8k (3.28) Trc ht ta xột xem phng phỏp ly mu Gibbs cn bao nhiờu bc chy lm li (i) l nh (3.27) ỳng Theo cụng thc (1.15) v bin phõn ton phn dTV , n phi ln dTV (à(n) , Gj1 ,q ) , 8k v theo nh lớ 3.4 ta xỏc nh c n 8k ) log(d) n=k +1 q log( ) 2d 8dk log(k) + log( ) log(d) +1 k q log( ) 2d log(k) + log + log(8) =k +1 , q log( ) 2d log(k) + log( (3.29) du bt ng thc bi suy t iu kin k dk Tip theo ta xột s cỏc mụ phng ca cỏc cỏch tụ q-mu ca Gj1 cn thc hin cỏc li (ii) nh (3.28) ỳng, vi xỏc sut thnh cụng cao Theo (i) ca nh ngha s xp x ngu nhiờn vi thi gian a thc, thut toỏn cho phộp tht bi (tc l, kt qu Y khụng tha (3.24)) vi xỏc sut ln nht l Vỡ cú k c lng Yj , ta cú th cho phộp mi c lng tht bi vi xỏc sut 3k Xỏc sut tht bi ca 1 = thut toỏn ln nht l k 3k Gi s bõy gi ta cú m mụ phng sinh Yj v vit Hj l s cỏc kt qu cho mu vi (xj ) = (yj ) Khi ú Yj = Hj m Nhõn c hai v ca (3.28) vi m ta c Ti mi thi im, ta s dng phng phỏp ly mu Gibbs bt u trng thỏi cỏch tụ q-mu c nh, chy nú vi n bc, vi n tha (3.29) 55 |Hj mp| m , 8k vi p = à(n) (X(xj ) = X(yj )) Nhng phõn phi ca Hj li ỳng l phõn phi ca s ln nga ta tung m ng xu vi xỏc sut nga p B 3.8 cho ta m m 16k2 P |Hj mp| > m = , 4( 8k ) m 8k v ta cn lm cho xỏc sut ny nh hn (3.30) t biu thc cui (3.30) bng 3k 3k 48k3 , õy l s cỏc mụ phng m ta cn cho mi Yj S dng 48d3 k k dk mt ln na, ta c m Túm li: thut toỏn cú k tha s Yj Mi tha s thỡ s dng khụng quỏ 48d3 k m mụ phng, v mi mụ phng khụng cú quỏ v tớnh m ta c m = k log(k) + log d + log(8) +1 q log( ) 2d bc lp ca phng phỏp ly mu Gibbs Tng cỏc bc lp cn nhiu nht l dk ì 3.3 48d3 k log(k) + log d + log(8) ì k + Ck log(k) k q log( ) 2d Mụ phng Ta s s dng phng phỏp MCMC mụ phng s cỏc cỏch tụ q-mu cho th G vi s nh k, s cnh l k v mi nh khụng cú quỏ d cnh, sai s ; vi tớnh cht l khụng hai nh no lin k c tụ cựng mt mu Xột th G vi nh - Vi q = 50, k = 4, k = 5, d = 3, {0.3, 0.2, 0.1} - Vi q = 100, k = 4, k = 5, d = 3, {0.3, 0.2, 0.1} 56 Hỡnh 3.2: th G vi nh Ta cú bng kt qu: q(S mu) Kt qu Thi gian chy(s) 50 0,3 5.881.277 375 50 0,2 5.884.935 943 50 0,1 5.885.426 4.010 100 0,3 97.035.611 374 100 0,2 97.055.758 880 100 0,1 97.030.465 3.686 Bng 3.1: Kt qu vi th nh 57 Xột th G vi nh - Vi q = 50, k = 5, k = 7, d = 3, {0.3, 0.2, 0.1} Hỡnh 3.3: th G vi nh Ta cú bng kt qu: q(S mu) Kt qu Thi gian chy(s) 50 0,3 282.886.418 2.680 50 0,2 282.844.072 6.458 50 0,1 282.815.906 28.052 Bng 3.2: Kt qu vi th nh Chng trỡnh mụ phng c vit bng ngụn ng Python vi code c trỡnh by phn ph lc 58 KT LUN Lun trỡnh by c s ca phng phỏp Monte Carlo v xớch Markov Monte Carlo v dng cỏc phng phỏp ny vo bi toỏn m s cỏch tụ mu th Mc dự mụ phng cho kt qu tt, nhiờn thi gian tớnh toỏn l rt di, tng nhanh theo kớch thc ca th Trong tng lai tụi mong mun tip tc nghiờn cu cỏc phng phỏp ci thin thut toỏn nhm tng chớnh xỏc ca phộp xp x v gim thi gian tớnh toỏn 59 Ti liu tham kho [1] Nguyn Quý H (2006) Phng phỏp mụ phng s Monte Carlo i hc Quc gia H Ni [2] Nguyn Duy Tin (2000) Cỏc mụ hỡnh xỏc sut v ng dng: Phn 1-Xớch Markov v ng dng i hc Quc gia H Ni [3] Olle Hăaggstrăom (2002) Finite Markov Chains and Algorithmic Applications Londom Mathematical Society, Cambridge University Press [4] Neal Madras (2002) Lectures on Monte Carlo methods, volume 16 of Fields Institute Monographs American Mathematical Society, Providence, RI 60 PH LC: Code mụ phng bng Python # # Purpose: To estimate the number of ways to color a graph such that does # not exist two adject vertices having the same color # Author: Hoang Thi Anh Sang # # Created: 02-06-2017 # Copyright: (c) admin 2017 # - import networkx as nx from math import log10 import random import time #================================Input data===================================== V = [1, 2, 3, 4] #list of vertices E = [(1,2), (1,4), (2,3), (2,4), (3,4)] #list of edges q = 10 #number of colors epsilon = 0.3 #==============================================================================# #==============================================================================# 61 k = len(V) #number of vertices l = len(E) #number of edges def create_graph(V,E): #create graph from given set of vertices and set of edges G = nx.Graph() G.add_nodes_from(V) G.add_edges_from(E) return G def max_vertice_degree(V,E): #find the largest degree of vertices in the graph G = create_graph(V,E) res = for v in G.nodes(): if res < len(G.neighbors(v)): res = len(G.neighbors(v)) return res def check_inputdata(): #check the condition: q>2d^2+1 d = max_vertice_degree(V,E) if q

Ngày đăng: 02/10/2017, 17:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w