thuật toán luyện kim song song (parallel simulated annealing algorithms) giải quyết bài toán max-sat

41 343 0
thuật toán luyện kim song song (parallel simulated annealing algorithms) giải quyết bài toán max-sat

Đ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

Chương I: Tổng quan thuật toỏn mụ luyện kim (Simulated Annealing = SA) I Giới thiệu chung thuật toỏn SA .5 II Mụ hỡnh toỏn học thuật toỏn SA .8 Khụng gian trạng thỏi Hàm nhiệt độ Hàm chi phớ hàm sức khoẻ 10 Sự phõn bố trạng thỏi giới hạn 11 Sự hội tụ điều kiện dừng .12 Sự hội tụ .12 Điều kiện dừng .12 Chương II: Xõy dựng khung thuật toỏn SA 13 I Lý xõy dựng khung thuật toỏn 13 II Khung chung thuật toỏn SA .13 III Sơ đồ khung thuật toỏn 16 Lớp cung cấp (Provided) 17 Lớp đũi hỏi (Required) 22 Một số hàm quan trọng hai lớp Required Provide 24 3.1 SA.pro.cpp 24 3.2 SA.req.cpp 25 Chương III: Ứng dụng thuật toỏn SA 26 I Bài toỏn MAXSAT 26 Giới thiệu toỏn 26 Hàm Main_Seq 29 III Khung thuật toỏn SA song song giải toỏn MAXSAT 30 Lựa chọn mụ hỡnh 30 Cài đặt Bài toỏn Maxsat .31 2.1 Sử dụng thuật toỏn SA .31 2.1.1 Đọc file cấu hỡnh 31 2.1.2 Lớp Problem đọc toỏn MAXSAT .31 2.1.3 Hàm khởi tạo nhiệt độ 33 2.1.4 Hàm khởi tạo lời giải 34 2.1.6 Hàm tớnh sức khoẻ 36 2.1.7 Hàm chấp nhận lời giải 37 2.1.8 Hàm kết thỳc thuật toỏn 38 2.2 Hàm void Solver_Lan::DoStep() .38 2.3 Hàm Main_Lan 39 Kết thực nghiệm 40 Kết 40 Kết song song 40 BÁO CÁO KHOA HỌC ĐỂ TÀI: THUẬT TOÁN LUYỆN KIM SONG SONG (Parallel Simulated Annealing Algorithms) GIẢI QUYẾT BÀI TOÁN MAX-SAT MỞ ĐẦU - Nhiều toỏn tối ưu chưa cú thuật tốn xác để giải cho nờn cần cú thuật toỏn gần để tỡm lời giải gần tối ưu - Khụng gian lời giải cần tỡm lớn mỏy tớnh tỡm kiếm lõu nờn cần nhiều mỏy giải cỏc mỏy phải thực đồng thời Điều cú thể thực dễ dàng cỏc mỏy tớnh tớnh toỏn song song Vỡ việc tỡm hiểu cỏc thuật toỏn song song cần thiết mang tớnh khả thi cỏc toỏn tối ưu - Để rỳt ngắn thời gian lập trỡnh chỳng ta cần xõy dựng khung thuật toỏn giỳp giải cỏc toỏn khỏc nhanh chúng - Mục đích đề tài sử dụng thuật toỏn luyện kim song song để giải toỏn tối ưu MAXSAT Đề tài bao gồm cỏc nhiệm vụ sau:  Nghiờn cứu lý thuyết thuật toỏn luyện kim  Xõy dựng khung thuật toỏn chung cho cỏc toỏn sử dụng thuật toỏn luyện kim  Áp dụng khung thuật toỏn luyện kim cho toỏn MAXSAT  Cài đặt toán MAXSAT đưa kết thực nghiệm trờn chương trỡnh chương trỡnh song song  Từ sử dụng khung thuật toỏn luyện kim để giải cỏc toỏn tối ưu khỏc thực tế như: Bài toỏn người du lịch, toỏn khụi phục ảnh, thiết kế mạch IC, toỏn xếp thời khoỏ biểu cho trường đại học… Chương I: Tổng quan thuật toỏn mụ luyện kim (Simulated Annealing = SA) I Giới thiệu chung thuật toỏn SA  SA thuật toỏn tỡm kiếm xỏc suất di truyền, phương pháp tối ưu hố áp dụng để tỡm kiếm tối ưu hố tồn cục hàm chi phí tránh tối ưu hoá địa phương việc chấp nhận lời giải tồi với xác suất phụ thuộc nhiệt độ T  Sơ đồ: Sơ đồ thể khơng gian lời giải thuật tốn luyện kim tỡm đến tối ưu toàn cục với bước nhảy từ tối ưu địa phương Solution Space: Khụng gian lời giải Initial State: Trạng thái ban đầu Local Minimum: Tối ưu địa  Tiền thõn SA thuật toán Monte Carlo năm 1953 nhúm Metropolis Thuật toán SA đề xuất S Kirk _ partrick năm 1982 cụng bố trước công chúng năm 1983  SA cú nguồn gốc từ học hệ thống SA thực thi đơn giản tương tự quỏ trỡnh luyện kim vật lý Trong luyện kim vật lý kim loại đốt núng tới nhiệt độ cao làm lạnh từ từ để nú kết tinh cấu hỡnh lượng thấp (tăng kích thước tinh thể làm giảm khuyết điểm chỳng) Nếu việc làm lạnh khụng xảy từ từ thỡ chất rắn không đạt trạng thỏi cú cấu hỡnh lượng thấp đông lạnh đến trạng thỏi khụng ổn định (cấu trỳc tối ưu địa phương)  Gọi E lượng trạng thỏi s, E’ trạng thái lượng trạng thỏi s’ ∆E = E’ – E chệnh lệch nhiệt độ trạng thỏi s’ trạng thỏi s Nếu ∆E ≤ thỡ thay đổi kết  E / k T B chấp nhận với xỏc suất T nhiệt độ, kB số vật lý gọi số Boltzmann e  Nếu cú số lượng lớn cỏc bước lặp thực nhiệt độ, hệ thống đạt trạng thỏi cõn nhiệt Khi đó, phõn bố xỏc suất hệ thống trạng thỏi s nhiệt độ T Z (T ) e E / k T B Z(T): hàm phân phối  SA sử dụng biến điều khiển toàn cục biến nhiệt độ T Ban đầu T giỏ trị cao sau giảm dần xuống Trong quỏ trỡnh tỡm kiếm SA thay lời giải thời cỏch chọn ngẫu nhiờn lời giải lỏng giềng với xỏc suất phụ thuộc vào chờnh lệch giỏ trị hàm mục tiờu tham số điều khiển T  Quỏ trỡnh tối ưu hoỏ tiếp tục cực tiểu toàn cục tỡm thấy tổng số bước chuyển vượt quỏ số tối đa cỏc bước chuyển định trước Sự chuyển tiếp nhiệt độ kết thỳc đạt tới trạng thỏi cõn nhiệt Sauk hi đạt tới trạng thỏi cõn nhiệt thỡ nhiệt độ giảm thấp Nếu hệ thống khụng đông lạnh khụng tỡm cực tiểu toàn cục thỡ vũng lặp tiếp tục số k tăng Hệ thống đông lạnh T tiến tới nhiệt độ Tcuối người dựng đưa Ta cú sơ đồ thuật toỏn Khởi tạo k = l= 0; Lấy ngẫu nhiờn si phõn tớch T=T;s=s Trạng thỏi cõn nhiệt No Yes Nhiệt độ giảm k = k+1; l = 0; Đông lạnh? T ≤ Tcuối l=l+  k, l: biến điều khiển vũng lặp  l đánh dấu việc lặp lại nhiệt độ Tk, k tăng đạt cõn  nhiệt nhiệt độ Tk  Tk sk điều khiển quỏ trỡnh xử lý ngẫu nhiờn No Yes Đạt tới cực tiểu toàn II Mụ hỡnh toỏn học thuật toỏn SA Khụng gian trạng thỏi  SA thực thi khụng gian trạng thỏi Khụng gian trạng thỏi tập hợp cỏc trạng thỏi, trạng thái đại diện cho cấu hỡnh Kớ hiệu khụng gian trạng thỏi S, số phần tử khụng gian trạng thỏi |S|  Một quan hệ lỏng giềng trờn S:   S  S o Cỏc phần tử gọi cỏc di chuyển o (s, s’) ê kết nối qua di chuyển gọi lỏng giềng o (s, s’) ê àk kết nối qua tập k di chuyển U  k  S  S k 1  Tập trạng thỏi kết nối với trạng thái cho si ê S kớ hiệu Ni, số phần tử Ni gọi cấp độ si Ni tập cỏc lỏng giềng si  Cú hai trạng thỏi si si-1 xỏc suất để si trạng thỏi thời phụ thuộc vào hàm chi phớ si hàm chi phớ si-1 nhiệt độ T  Cú ba trạng thỏi liờn tiếp si-1, si, si+1 thỡ trạng thỏi si-1 si+1 khụng phục thuộc vào  Xỏc suất mà s’ trạng thỏi s kớ hiệu P(s,s’,T) gọi xỏc suất chuyển tiếp  ( ( s), (s' ),T )  ( s, s' )  s  s' P(s, s' ,T )  1    ( (s),  (s' ' ), T ) (s, s' ' )   s' '  ỏ: hàm xỏc suất chấp nhận (acceptance probability function) õ: hàm xỏc suất lựa chọn (selection probability function) õ cho phộp cặp trạng thỏi ỡ lựa chọn Xỏc suất lựa chọn khụng cho cặp trạng thái kết nối di chuyển đơn  ( s , s ' )    ( s , s ' )    ( s , s ' )    ( s , s ' )    s S    ( s , s ' )    s ' N    Hàm chấp nhận ỏ: R3+  [0,1]  R Hàm nhiệt độ Đầu tiờn khởi tạo nhiệt độ T T0 Quy trỡnh phổ biến quy trỡnh làm lạnh cõn xứng: Tnew = Told * alpha alpha < Thuật toỏn kết thỳc T = Sơ đồ: T Ti  T0  N T      To : nhiệt độ khởi đầu N Tn: nhiệt độ kết thỳc Hàm chi phớ hàm sức khoẻ Hàm đánh giá cost hàm xác định chi phí dùng để ước lượng lời giải cho Hàm chi phớ lời giải s kớ hiệu f(s) Hàm sức khoẻ Fitness định nghĩa: fitness  * 100%  cost Sự giảm bớt chi phớ tương đương với tăng hàm sức khoẻ Giỏ trị hàm sức khoẻ tăng nhiệt độ giảm thể biểu đồ: 10 Bài toỏn MAXSAT bao gồm tập n biến {x1, x2,…,xn } tập m mệnh đề Mục đích toỏn MAXSAT tỡm phõn phối cỏc giỏ trị chõn lý T cho cỏc biến cho ớt k mệnh đề CNF = Conjunctive Normal Form - Dạng chuẩn hội Ta cú: o Bất kỳ kớ hiệu vị từ P cụng thức CNF o Nếu F cụng thức CNF thỡ ơF cụng thức o Nếu F G cụng thức thỡ o Nếu F G cụng thức thỡ F G F G cụng thức CNF cụng thức CNF o Một hàm T: P-> {TRUE, FALSE} nghĩa T phõn bố cỏc giỏ trị chõn lý {TRUE, FALSE} cho cỏc vị từ P Một cụng thức F thoả thị chõn lý T nếu: • F biến logic x thỡ T(x) = TRUE • F cụng thức ơG thỡ T( G) = FALSE • F cụng thức G  H thỡ T thoả G H • F cụng thức G  H thỡ T thoả G H Vớ dụ: F  ( x0  x )  ( x1  x2 ) Cụng thức bao gồm biến x0, x1 ơx2 cú hai mệnh đề ( x0  x1 ) ( x1  x2 ) Một vớ dụ thị T cho cụng thức này: T1 = {x0  FALSE, x1  FALSE, x2  TRUE} T1 khụng thoả cụng thức F Tuy nhiờn cú thị khỏc thoả cụng thức F là: T2 = {x0  FALSE, x1  TRUE, x2  TRUE} Thấy F thoả T2 thị làm thoả F 27 Bài tốn MAX-SAT định nghĩa sau: Input:  n biến logic x1, x2, x3,…,xn mà cú thể nhận giỏ trị TRUE FALSE  m mệnh đề C1, C2, C3,…,Cm mệnh đề phõn cỏch cỏc kớ tự Mỗi kớ tự biến khẳng định xk phủ định xk cú mệnh đề (C j  xi1  xi   xik ) Trọng số wi  cho mệnh đề Ci Một cụng thức CNF kết hợp cỏc mệnh đề F C 1C   C m Output Tỡm phõn bố T (TRUE/FALSE) cho n biến logic mà số mệnh đề thoả cú tổng trọng số lớn II Khung thuật toỏn SA giải toỏn MAXSAT Hàm void Solver_Seq::DoStep() DoStep() { //Tăng bước lặp lờn 1; current_iteration  current_iteration(current_iteration()+1) tentative = current; Apply(tentative); //Áp dụng lời giải tentfit  tentative.fitness(); //Tớnh giỏ trị hàm sức khoẻ 28 if (AcceptQ(tentfit,curfit, currentTemperature)) //chấp nhận //lời giải { current  tentative; // lời giải tentative; curfit  tentfit; // giỏ trị hàm sức khoẻ tentfit } k  k + 1; if (k >= MarkovChain_length()) { UpdateT; k = 0; } total_time_spent  start_global + time_spent_in_trial; RefreshState(); _stat.update(*this); _userstat.update(*this); if (display_state()) show_state(); } Hàm Main_Seq Main_Seq { Sử dụng khung SA Khai bỏo: SetupParams cfg; Problem pbm; Mở file f1 “SA.cfg” để đọc vào cấu hỡnh Đọc file f1>>cfg; Mở file f2 để đọc “Problem.dat” Đọc file f2>>pbm; 29 Khai bỏo: Solver_Seq solver (pbm,cfg); Gọi hàm solver.run(); Nếu (solver.pid()==0) thỡ hiển thị trạng thỏi In lời giải tốt toàn cục giỏ trị hàm sức khỏe } III Khung thuật toỏn SA song song giải toỏn MAXSAT Lựa chọn mụ hỡnh Cú cỏc loại mụ hỡnh sau:  Mụ hỡnh khuyếch tỏn (Diffusion model): Cỏc cỏ thể xếp khụng gian giao với cỏc cỏ thể khỏc Khi song song hoỏ, cú nhiều tiến trỡnh truyền thụng nờn cỏ thể phải liờn lạc với lỏng giềng nú bước lặp truyền thụng cục Vỡ mụ hỡnh phự hợp cho cỏc mỏy tớnh song song lớn với mạng thụng tin nội địa phương  Mụ hỡnh chủ - thợ (Master-slave): Bộ xử lý chủ nắm giữ tất cỏc thụng tin khụng gian trạng thỏi Bộ xử lý mỏy chủ phõn phối tới mỏy thợ rỗi nhận cỏc thụng tin sinh từ mỏy thợ Cỏc mỏy thợ tiến hành xử lý cỏc thụng tin vừa sinh Mụ hỡnh cú ưu điểm dễ cài đặt thực chậm, tốn thời gian  Mụ hỡnh đảo (Island model): Trong mụ hỡnh tiến trỡnh chạy độc lập cỏc tiến trỡnh hợp tỏc việc đặn 30 trao đổi cỏ thể tốt vừa tỡm Mụ hỡnh đặc biệt thớch hợp cho nhúm mỏy tớnh Với đặc điểm trờn định dựng mụ hỡnh đảo vỡ dựng cỏc mụ hỡnh thỡ tốn kộm khụng tốn kộm thỡ thực thuật toỏn với tốc độ chậm Thờm vào sử dụng thư viện MPI để cỏc mỏy tớnh truyền thụng với dựng NetStream để thõn thiện với người sử dụng Cài đặt Bài toỏn Maxsat 2.1 Sử dụng thuật toỏn SA 2.1.1 Đọc file cấu hỡnh // số bước chạy độc lập 500 // số ước lượng 100 // Markov-Chain Length 0.99 // độ giảm nhiệt độ // cú thị trạng thỏi ? LAN-configuration 10 // trạng thỏi toàn cục cập nhật n ước lượng // 0: asynchronized mode // 1: synchronized mode 10 // số bước lặp để cooperate ( if no cooperation) 2.1.2 Lớp Problem đọc toỏn MAXSAT Đầu vào toỏn n biến m mệnh đề thể file Sat.dat với định dạng: // số lượng biến, số lượng mệnh đề, chiều dài mệnh đề // mệnh đề (kết thỳc 0), vị từ < thỡ vị từ phủ định ……… // mệnh đề N (kết thỳc 0), vị từ < thỡ vị từ phủ định 31 Vớ dụ cụ thể : Bài toỏn cú 573 -1 -2 //5 biến, mệnh đề, độ dài mệnh đề ơx1 -1  x2 -2 -2 -3 x1 ơx2 -5 -4 ơx2  ơx5  x1 x2 x3 x3   ơx2  ơx3 x3   ơx1  x3 x4  x4  ơx4  x5   x5 x3 istream& operator>> (istream& is, Problem& pbm) { int l; int n; is >> pbm._numvar >> pbm._numclause >> pbm._lenclause; n = pbm._lenclause; // read clauses pbm._clauses = new int*[pbm._numclause]; for (int i = 0; i < pbm._numclause; i++) { pbm._clauses[i] = new int[n]; for(int j = 0; j < n;j++) { is >> l; pbm._clauses[i][j] = l; } is >> l; } 32 return is; } 2.1.3 Hàm khởi tạo nhiệt độ double Solver::Set_Initial_Temperature(const Problem& pbm) { const double beta = 1.05; const double test = 10; const double acrat = 8; const double T = 1.0; Solution current (pbm); Solution newsol (pbm); double ac; double fit; double temperature = T; { temperature *= beta; ac = 0; current.initialize(); fit = current.fitness(); for (int i=0; iApply(newsol); if (AcceptQ(newsol.fitness(),fit,temperature)) ac += 1.0/test; 33 } } while (ac < acrat); initial_temperature_trial(temperature); return temperature; } Hàm cập nhật nhiệt độ double Solver::UpdateT(double temp, int K) { if(K == 1) return temp / exp(2); else return (temp * exp(K)) / exp(K+1); } 2.1.4 Hàm khởi tạo lời giải Giả sử cú n biến: x1,, x2, x3, …, xn Lời giải mảng n phần tử mà phần tử mảng nhận hai giỏ trị cỏch sinh cỏc số nguyờn ngẫu nhiờn từ đến để gỏn cho mảng Vớ dụ với biến ta cú cỏc lời giải như: (có 25 lời giải tất cả) x1,, x2, x3, x4, x5  - {0, 0, 0, 0, 0}; {1, 0, 0, 0, 0}; {1, 0, 0, 1, 0}… Hàm khởi tạo lời giải void Solution::initialize() { for (int i=0;i> (istream& is, Solution& sol) { for (int i=0;i> sol._var[i]; return is; } Sử dụng NetStream tớnh toỏn song song NetStream& operator >> (NetStream& ns, Solution& sol) { for (int i=0;i> sol._var[i]; return ns; } Hàm ỏp dụng lời giải mới, vớ dụ 0 chuyển thành 1 void DefaultMove::Apply (Solution& sol) const { const float probability = 0.03; for (int i=0;i>cfg; Mở file f2 để đọc “Problem.dat” Đọc file f2>>pbm; Khai bỏo: Solver_Seq solver (pbm,cfg, argc,argv); Gọi hàm solver.run(); Nếu (solver.pid()==0) thỡ hiển thị trạng thỏi In lời giải tốt toàn cục giỏ trị hàm sức khỏe } Kết thực nghiệm (Chương trỡnh chạy chưa đủ máy để chạy song song nờn thứ trỡnh bày sau) Kết Kết song song TÀI LIỆU THAM KHẢO [1.] Chen Tao Multi-FPGA Partitioning Using Simulated Annealing May 2003 [2.] S Kirkpatrick, J C G., And Vecchi, M Optimization by simulated annealing Science 220(4598)(May 1983), 498-516 [3.] http://neo.lcc.uma.es/mallba/easy-mallba/html/algorithms.html MALLBA LIBRARY v2.0 40 [4.]Teknillinen Korkeakoulu Implementation of Simulated Annealing Optimization method for APLAC Circuit Simulator 29-10-1996 [5.]Integrated Logic Synthesis Using Simulated Annealing Petra Farrm 2007 41 ... Kết song song 40 BÁO CÁO KHOA HỌC ĐỂ TÀI: THUẬT TOÁN LUYỆN KIM SONG SONG (Parallel Simulated Annealing Algorithms) GIẢI QUYẾT BÀI TOÁN MAX-SAT MỞ ĐẦU - Nhiều toỏn tối ưu chưa cú thuật. .. toỏn luyện kim  Áp dụng khung thuật toỏn luyện kim cho toỏn MAXSAT  Cài đặt toán MAXSAT đưa kết thực nghiệm trờn chương trỡnh chương trỡnh song song  Từ sử dụng khung thuật toỏn luyện kim để giải. .. thuật toỏn luyện kim song song để giải toỏn tối ưu MAXSAT Đề tài bao gồm cỏc nhiệm vụ sau:  Nghiờn cứu lý thuyết thuật toỏn luyện kim  Xõy dựng khung thuật toỏn chung cho cỏc toỏn sử dụng thuật

Ngày đăng: 27/05/2014, 10:51

Tài liệu cùng người dùng

Tài liệu liên quan