THUẬT TOÁN LUYỆN KIM SONG SONG (Parallel Simulated Annealing Algorithms) GIẢI QUYẾT BÀI TOÁN MAX-SAT

30 196 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

http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TOÁN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT I OBO OK S CO M Chương I: Tổng quan thuật tốn mơ luyện kim (Simulated Annealing = SA) Giới thiệu chung thuật toán SA II Mơ hình tốn học thuật toán SA Không gian trạng thái Hàm nhiệt độ Hàm chi phí hàm sức khoẻ Sự phân bố trạng thái giới hạn Sự hội tụ điều kiện dừng Sự hội tụ Điều kiện dừng 10 Chương II: Xây dựng khung thuật toán SA 10 I Lý xây dựng khung thuật toán 10 II Khung chung thuật toán SA 10 III Sơ đồ khung thuật toán 13 Lớp cung cấp (Provided) 13 Lớp đòi hỏi (Required) 17 Một số hàm quan trọng hai lớp Required Provide 18 KIL 3.1 SA.pro.cpp 18 3.2 SA.req.cpp 19 Chương III: Ứng dụng thuật toán SA 20 I Bài toán MAXSAT 20 Giới thiệu toán 20 Hàm Main_Seq 22 TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B http://kilobooks.com THÖ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT III Khung thuật toán SA song song giải toán MAXSAT 22 Lựa chọn mơ hình 22 Cài đặt Bài toán Maxsat 23 2.1 KIL OBO OKS CO M Sử dụng thuật toán SA 23 2.1.1 Đọc file cấu hình 23 2.1.2 Lớp Problem đọc toán MAXSAT 23 2.1.3 Hàm khởi tạo nhiệt độ 24 2.1.4 Hàm khởi tạo lời giải 25 2.1.6 Hàm tính sức khoẻ 27 2.1.7 Hàm chấp nhận lời giải 27 2.1.8 Hàm kết thúc thuật toán 28 2.2 Hàm void Solver_Lan::DoStep() 28 2.3 Hàm Main_Lan 29 Kết thực nghiệm 29 Kết 30 Kết song song 30 TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT ĐỂ TÀI: KIL OBO OKS CO M BÁO CÁO KHOA HỌC THUẬT TOÁN LUYỆN KIM SONG SONG (Parallel Simulated Annealing Algorithms) GIẢI QUYẾT BÀI TỐN MAX-SAT MỞ ĐẦU - Nhiều tốn tối ưu chưa có thuật tốn xác để giải cần có thuật tố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 máy phải thực đồng thời Điều thực dễ dàng máy tính tính tốn song song Vì việc tìm hiểu thuật toán song song cần thiết mang tính khả thi tốn tối ưu - Để rút ngắn thời gian lập trình cần xây dựng khung thuật toán giúp giải tố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 nhiệm vụ sau: • Nghiên cứu lý thuyết thuật tốn luyện kim • Xây dựng khung thuật toán chung cho toán sử dụng thuật tốn luyện kim • Áp dụng khung thuật tốn luyện kim cho tốn MAXSAT • Cài đặt toán MAXSAT đưa kết thực nghiệm chương trình chương trình song song TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TỐN MAXSAT • Từ sử dụng khung thuật toán luyện kim để giải toán tối ưu khác thực tế như: Bài tốn người du lịch, tốn khơi phục ảnh, thiết kế Chương I: KIL OBO OKS CO M mạch IC, toán xếp thời khoá biểu cho trường đại học… Tổng quan thuật tốn mơ luyện kim (Simulated Annealing = SA) I Giới thiệu chung thuật toán SA SA thuật tố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 hố đị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 phương Global Minimum: Tối ưu toàn cục Tiền thân SA thuật tốn Monte Carlo năm 1953 nhóm Metropolis Thuật tố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ự 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ừ để 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 TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TỐN MAXSAT xảy từ từ 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’ KIL OBO OKS CO M ∆E = E’ – E chệnh lệch nhiệt độ trạng thái s’ trạng thái s Nếu − ∆E / k T B ∆E ≤ thay đổi kết chấp nhận với xác suất e T nhiệt độ, kB số vật lý gọi số Boltzmann Nếu có số lượng lớn 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 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 hố tiếp tục cực tiểu tồn cục tìm thấy tổng số bước chuyển vượt số tối đa 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 nhiệt độ giảm thấp Nếu hệ thống không đông lạnh khơng tìm cực tiểu tồn cục 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 = Tk; s = sk l = l + 1; k, l: biến điều khiển vòng lặp No l đánh dấu việc lặp lại nhiệt độ Tk, k tăng đạt cân Yes nhiệt nhiệt độ Tk Nhiệt độ giảm Tk sk điều khiển k = k+1; l = 0; trình xử lý ngẫu TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - nhiên NGUYỄN MINH CHÂU K55B Trạng thái cân nhiệt Đông lạnh? T ≤ Tcuối No http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN KIL OBO OKS CO M SỬ DỤNG THUẬT TOÁN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TỐN MAXSAT II Mơ hình tốn học thuật tố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 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 ging trờn S: S ì S o Các phần tử µ gọi 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 chuyn Uk =1 k = S ì S 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 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 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 TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT 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 KIL OBO OKS CO M ∀ ( 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 = TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT Sơ đồ:    KIL OBO OKS CO M T Ti = T0  N  T0 To : nhiệt độ khởi đầu N Tn: nhiệt độ kết thúc Ti: nhiệt độ vòng i i = 1, ,N 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 = 1 + cost * 100% 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 đồ: Sự phân bố trạng thái giới hạn Cho πTk(si) xác suất mà si lời giải thời sau k bước thuật toán nhiệt độ T TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT Vectơ xác suất trạng thái: πTk = (πTk(s1), πTk(s2),…,πTk(si),…) Cho chuỗi Markov, vector xác suất trạng thái hội tụ tới véctơ xác suất giới hạn lim π Tk = π T k→∞ KIL OBO OKS CO M Trên thực tế chứng minh rằng: exp( − f ( s ) / T ) i lim π Tk ( S i ) = ∑ s ∈ S exp( − f ( s ) / T ) k →∞ j j (Phân bố Boltzmann) • Phân bố giới hạn cho T - Cân nhắc lời giải si sj với f(si) < f(sj) Trong trường hợp có:  f ( s j ) − f (si )  T → (S ) exp(− f ( s ) / T ) k →∞   i i   → = exp →∞   exp(− f ( s ) / T ) T π (S ) j Tk j   π Tk - Sự khẳng định cuối giả thiết f ( s ) − f ( s ) > j i π (s ) = - Hội tụ tới ∞ xảy có: lim lim Tk j k →∞ T →0 - Chứng minh rằng: Cho lời giải khả thi s, k ∞ T xác suất πTk (s) hội tụ tới 0, s lời giải tối ưu lim lim π Tk ( s ) = k →∞ T →0 - Ngồi chứng minh s lời giải tối ưu lim lim π Tk ( s ) = | S k→∞ T →0 opt | Ở Sopt tập tất lời giải tối ưu Sự hội tụ điều kiện dừng Sự hội tụ Cho không gian tìm kiếm hữu hạn S, điều kiện đủ cho hội tụ cân chi tiết (detail balance) phụ thuộc vào xác suất hai lời giải sj , si không gian trạng thái nhau: π i (T ).τ ij (T ) = π j (T ).τ ji (T ) TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TOÁN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT Điều kiện dừng KIL OBO OKS CO M Trong πi(T) phân bố ổn định trạng thái si nhiệt độ T Sự phân phối ổn định vectơ π(T) = (π1(T), π2(T), …, π|s|(T)) Thỏa mãn phương trình: πT(T)*P(T) = πT(T) P(T): ma trận chuyển tiếp πT: Hoán vị π |S| : số phần tử không gian trạng thái S Nếu P tối giản khơng có chu kỳ tồn xác suất ổn định π Điều kiện đủ cho tính khơng chu kỳ tồn trạng thái si є S cho Pii ≠ Thuật tốn dừng tìm lời giải đủ tốt T nhỏ mà xác suất tránh không đáng kể Một tiêu chuẩn kết thúc khác chi phí trung bình thay đổi không đáng kể vài giá trị liên tiếp T Chương II: Xây dựng khung thuật toán SA I Lý xây dựng khung thuật toán Chúng ta cần xây dựng khung chung cho thuật toán nhằm đảm bảo: • Giảm thiểu q trình code cho người sau • Cho người sau thử nghiệm tốn lập trình song song • Việc xây dựng khung khiến người đọc hiểu tổng quan thuật toán cách cài đặt thuật toán cách nhanh Giúp cho người sau học có tính khoa học II Khung chung thuật toán SA Tất toán giải SA thực theo bước: • Bước 1: Đầu tiên, tìm điểm xuất phát tốn • Bước 2: Liệt kê láng giềng có lời giải thời • Bước 3: Tiến hành ước lượng hàm mục tiêu thời hàm mục tiêu láng giềng vừa tìm TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 10 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT KIL OBO OKS CO M int mypid; void send_local_state_to(int _mypid); int receive_local_state_from(int source_pid); void check_for_refresh_global_state(); unsigned int _current_trial; unsigned int _current_iteration; double _best_cost_trial; Solution _best_solution_trial; float _time_best_found_in_trial; unsigned int _iteration_best_found_in_trial; double _temperature_best_found_in_trial; int cooperation(); // Termination phase // bool final_phase; int acum_evaluations; public: Solver_Lan (const Problem& pbm, const SetUpParams& setup,int argc,char **argv); virtual ~Solver_Lan (); virtual int pid() const; NetStream& netstream(); void run (); virtual void run (có tham số); ……………… // Partial execution virtual void StartUp (); virtual void StartUp (có tham số); ………………… virtual void DoStep (); void reset(); }; o Statistic: áp dụng cho khung MALLBA bao gồm thơng tin cần để bảo đảm tốn tử thích hợp thuật tốn o Stop_Condition: Điều kiện dừng toán o …… TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 16 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TOÁN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT Lớp đòi hỏi (Required) KIL OBO OKS CO M • Required: bao hàm thủ tục riêng thuật tốn SA tốn cụ thể (ví dụ thủ tục tính nhiệt độ, thủ tục tính hàm sức khoẻ, thủ tục sinh lời giải ) • Các lớp đòi hỏi sử dụng để lưu trữ liệu thuật toán : toán, trạng thái khơng gian tìm kiếm vào/ra Bao gồm lớp: o Problem: Mơ tả tốn cần giải Nhận thông số o o o o toán từ file định nghĩa toán Solution: Miêu tả tập lời giải thực UserStatistic: lưu trữ thơng tin cuối tốn :lời giải tốt nhất, số đánh giá, thời gian thực thi,… DefaultMove: Thực việc cập nhật lời giải toán TerminateQ: Thực điều kiện dừng tốn Ta có sơ đồ khung thuật tốn SA sau: Những lớp có dấu * lớp Required Trong đó: NetStream: Là lớp trung gian khung MPI dễ dàng cho việc xử lý song song hình vẽ (thể việc gửi nhận liệu) TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 17 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN KIL OBO OKS CO M SỬ DỤNG THUẬT TOÁN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT State_Center: cho phép tìm kiếm biến trạng thái, thêm biến trạng thái, loại bỏ biến trạng thái cập nhật nội dung biến trạng thái Tất trường hợp StateVariable xếp bên StateCenter State_Vble: cho phép định nghĩa thiết đặt, lấy tên biến trạng thái Một số hàm quan trọng hai lớp Required Provide 3.1 SA.pro.cpp Một số hàm Ý nghĩa istream& operator>> (istream& is, SetUpParams& setup) Đọc vào file cấu hình ostream& operator> (istream& is, Solution& sol) Đọc vào trả lời giải toán { return is; } ostream& operator (NetStream& ns, Solution& sol) { return ns; } double Solution::fitness () const { return 0.0; Hàm sức khoẻ } void UserStatistics::update(const Solver& solver) bool TerminateQ (const Problem& pbm, const Solver& solver,const Hàm kết thúc TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 19 http://kilobooks.com THÖ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT Chương III: KIL OBO OKS CO M SetUpParams& setup) Ứng dụng thuật toán SA I Bài toán MAXSAT Giới thiệu toán Bài toán MAXSAT bao gồm tập n biến {x1, x2,…,xn } tập m mệnh đề Mục đích tốn MAXSAT tìm phân phối giá trị chân lý T cho biến cho 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 ¬F cơng thức o Nếu F G cơng thức F ∧ G công thức CNF o Nếu F G cơng thức F ∨ G cơng thức CNF o Một hàm T: P-> {TRUE, FALSE} nghĩa T phân bố giá trị chân lý {TRUE, FALSE} cho vị từ P Một công thức F thoả mãn thị chân lý T nếu: • F biến logic x T(x) = TRUE • F cơng thc ơG thỡ T( G) = FALSE ã F l cơng thức G ∧ H T thoả mãn G H • F cơng thức G ∨ H T thoả mãn 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ả mãn công thức F Tuy nhiên có thị khác thoả mãn cơng thức F là: T2 = {x0 FALSE, x1 TRUE, x2 TRUE} Thấy F thoả mãn T2 thị làm thoả mãn F Bài toán MAX-SAT định nghĩa sau: TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 20 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TỐN MAXSAT Input: • n biến logic x1, x2, x3,…,xn mà nhận giá trị TRUE FALSE KIL OBO OKS CO M • m mệnh đề C1, C2, C3,…,Cm mệnh đề phân cách 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 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ả mãn 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ẻ 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); TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 21 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TOÁN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT if (display_state()) show_state(); } KIL OBO OKS CO M 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; Khai báo: Solver_Seq solver (pbm,cfg); Gọi hàm solver.run(); Nếu (solver.pid()==0) 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ó loại mơ sau: • Mơ hình khuyếch tán (Diffusion model): Các cá thể xếp không gian giao với cá thể khác Khi song song hố, 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 bước lặp truyền thơng cục Vì mơ hình phù hợp cho 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 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 thông tin sinh từ máy thợ Các máy thợ tiến hành xử lý 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 tiến trình hợp tác việc đặn 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 TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 22 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT Với đặc điểm định dùng mơ hình đảo dùng mơ hình tốn khơng tốn thực thuật tốn với tốc độ chậm Thêm vào sử dụng thư viện MPI để máy tính truyền thơng KIL OBO OKS CO M 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ừ < vị từ phủ định ……… // mệnh đề N (kết thúc 0), vị từ < vị từ phủ định Ví dụ cụ thể : Bài tốn có 573 //5 biến, mệnh đề, độ dài mệnh đề -1 -2 ¬x1 ∨ ¬x2 ∨ x3 -1 x2 ∨ x3 ∨ ¬x1 -2 x1 ∨ ¬x2 ∨ x3 -2 -3 4 -5 -4 ¬x2 ∨ ¬x3 ∨ x4 x3 ∨ x4 ∨ x5 ¬x5 ∨ x1 ∨ ¬x4 x2 ∨ x5 ∨ x3 istream& operator>> (istream& is, Problem& pbm) { TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 23 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT 2.1.3 KIL OBO OKS CO M 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; } return is; } 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(); TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 24 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT KIL OBO OKS CO M for (int i=0; iApply(newsol); if (AcceptQ(newsol.fitness(),fit,temperature)) ac += 1.0/test; } } 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 số nguyên ngẫu nhiên từ đến để gán cho mảng Ví dụ với biến ta 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; TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 25 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TOÁN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT KIL OBO OKS CO M } Sử dụng NetStream tính tố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) 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) TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 29 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN SỬ DỤNG THUẬT TỐN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT Kết Kết song song KIL OBO OKS CO M 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 [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 TRƯƠNG THỊ THÚY LAN(K54A) – KIỀU TUẤN DŨNG(K55B) - NGUYỄN MINH CHÂU K55B 30 ... TUYẾN SỬ DỤNG THUẬT TOÁN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT III Khung thuật toán SA song song giải toán MAXSAT 22 Lựa chọn mơ hình 22 Cài đặt Bài toán Maxsat ... KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT ĐỂ TÀI: KIL OBO OKS CO M BÁO CÁO KHOA HỌC 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 -... TUYẾN SỬ DỤNG THUẬT TOÁN LUYỆN KIM SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT Chương III: KIL OBO OKS CO M SetUpParams& setup) Ứng dụng thuật toán SA I Bài toán MAXSAT Giới thiệu toán Bài toán MAXSAT

Ngày đăng: 02/12/2015, 08:32