1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu và hiện thực các phương pháp để xây dựng các ma trận trực giao mới

71 33 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 704,1 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong số các giải thuật đề xuất này, chúng tôi đã hiện thực được một giải thuật song song hóa, đó là Giải thuật song song hóa sử dụng lại các kết quả ma trận cũ, để tính toán nên các ma

Trang 1

Đại Học Quốc Gia Thành Phố Hồ Chí Minh

Trường Đại Học Bách Khoa

PHAN HỮU TRỌNG HIỀN

Trang 2

ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập - Tự Do - Hạnh Phúc

- -oOo -

Tp HCM, ngày 05 tháng 11 năm 2007

NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ và tên học viên : Phan Hữu Trọng Hiền Giới tính : Nam ;/ Nữ … Ngày, tháng, năm sinh : 17/08/1981 Nơi sinh : Bình Thuận

Chuyên ngành : Khoa học Máy tính

Khoá : 2005

1- TÊN ĐỀ TÀI :

TÌM HIỂU VÀ HIỆN THỰC CÁC PHƯƠNG PHÁP XÂY DỰNG CÁC MA TRẬN TRỰC GIAO MỚI

2- NHIỆM VỤ LUẬN VĂN :

3- NGÀY GIAO NHIỆM VỤ :

4- NGÀY HOÀN THÀNH NHIỆM VỤ :

5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : TS Nguyễn Văn Minh Mẫn TS Nguyễn Tuấn Anh

Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua

CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN

(Họ tên và chữ ký)

TS Nguyễn Văn Minh Mẫn TS Đinh Đức Anh Vũ

Trang 3

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học : TS Nguyễn Văn Minh Mẫn

TS Nguyễn Tuấn Anh

Cán bộ chấm nhận xét 1 :

Cán bộ chấm nhận xét 2 :

Luận văn thạc sĩ được bảo vệ tại

HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ

TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày tháng năm 2007

Trang 4

Phan Hữu Trọng Hiền Trang i

LỜI CAM ĐOAN

Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi

rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện

và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở

trường này hoặc trường khác

Ngày 05 tháng 11 năm 2007

Trang 5

LỜI CẢM ƠN

Tôi xin gởi lời cảm ơn chân thành nhất đến TS Nguyễn Văn Minh Mẫn, người thầy đã tận tình chỉ bảo, giúp đỡ tôi một cách sâu sát trong suốt quá trình thực hiện luận văn cao học này Ngoài ra tôi cũng xin gửi lời cảm ơn thầy đồng hướng dẫn luận văn, TS Nguyễn Tuấn Anh, chính thầy đã hướng dẫn cho tôi trong phần hiện thực chương trình song song hóa và cho tôi những góp ý, những lời khuyên rất hữu ích về đề tài này Cuối cùng tôi xin cảm ơn ba mẹ, các anh chị trong gia đình và bạn bè đã luôn bên cạnh, hỗ trợ, động viên tôi trong suốt quá trình thực hiện luận văn cao học Tôi sẽ phải

cố gắng hơn nhiều để không phụ niềm tin của tất cả các người thân yêu mình

Trang 6

Phan Hữu Trọng Hiền Trang iii

TÓM TẮT LUẬN VĂN

Ma trận trực giao là một khái niệm trong lĩnh vực thiết kế thí nghiệm, có vai trò quan trọng trong sản xuất công nghiệp Chính nhờ ma trận trực giao, người ta đã có thể thiết kế các thí nghiệm trong công nghiệp với số thí nghiệm thiết kế nhỏ nhưng vẫn có thể khảo sát được các nhân tố ảnh hưởng đến chất lượng sản phẩm

Có nhiều công trình trên thế giới đã xây dựng các ma trận trực giao, tuy nhiên chỉ với các trọng 2, 3 Do đó đề tài luận văn này đã nghiên cứu các phương pháp để xây dựng các ma trận trực giao tổng quát, đồng thời đề xuất, hiện thực các phương pháp tìm kiếm mới để tính toán ra các ma trận trực giao trọng 3 và 4 mới

Trong quá trình thực hiện luận văn, chúng tôi đã tìm hiểu các phương pháp toán học để xây dựng các ma trận trực giao mới, các khái niệm lý thuyết nhóm về đếm các

ma trận trực giao (chương 2, 3) Ngoài ra luận văn cũng đã tìm hiểu, đề xuất các giải thuật song song hóa để tính toán các ma trận trực giao mới dựa trên một giải thuật

quan trọng: Giải thuật đếm sắp thứ tự ma trận (chương 4, 5, 6) Trong số các giải thuật đề xuất này, chúng tôi đã hiện thực được một giải thuật song song hóa, đó là Giải

thuật song song hóa sử dụng lại các kết quả ma trận cũ, để tính toán nên các ma

trận trực giao mới Giải thuật này sẽ được hiện thực bằng mô hình lập trình MPI và được thực thi trên hệ thống cluster SuperNode II, đại học Bách Khoa, thành phố Hồ Chí Minh Các kết quả thu được về speedup, effiency đã chứng minh tính hiệu quả của giải thuật song song này (chương 7) Tính đúng đắn của việc sử dụng các kết quả của

ma trận cũ để tính toán nên các ma trận trực giao mới đã được chúng tôi chứng minh bằng cả lý thuyết lẫn thực nghiệm (phần 6.1, 6.2)

Trong quá trình thực hiện tính toán, chúng tôi đã gặp phải nhiều khó khăn về sự bùng nổ tổ hợp khi đếm các ma trận trực giao mới, do bản chất NP-Complete của giải thuật đếm vét cạn các ma trận trực giao mới Luận văn đã tính toán, phát hiện ra được một vài ma trận trực giao trọng 4 mới (phần 7.4 và phụ lục B)

Luận văn vẫn còn một vài vấn đề cần hoàn thiện và phát triển, những vấn đề này sẽ được đề cập trong chương 8 của luận văn

Trang 7

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

TÓM TẮT LUẬN VĂN iii

1 TỔNG QUAN VỀ MA TRẬN TRỰC GIAO 1

1.1 Giới thiệu 1

1.2 Định nghĩa ma trận trực giao trọng t 3

1.3 Ý nghĩa thống kê của ma trận trực giao 6

1.4 Một vài ứng dụng và kết quả nghiên cứu mới nhất về ma trận trực giao 7

1.5 Sơ lượt các kết quả mới mà luận văn thực hiện được 8

2 CÁC PHƯƠNG PHÁP XÂY DỰNG MA TRẬN TRỰC GIAO 10

2.1 Phương pháp chia cột (splitting method) 10

2.2 Phương pháp chồng ma trận (concatenating method) 11

2.3 Phương pháp nhân (multiplying method) 12

2.4 Phương pháp đặt kề (juxtaposing method) 12

2.5 Phương pháp số học (arithmetic method) 13

2.6 Phương pháp hình vuông Latin (Latin square method) 14

2.7 Một vài đánh giá 16

3 ĐẾM CÁC MA TRẬN TRỰC GIAO 17

3.1 Đếm các lớp đẳng cấu 17

3.2 Đếm các nhóm tự đẳng cấu 19

3.3 Một số kết luận 20

4 GIẢI THUẬT ĐẾM SẮP THỨ TỰ MA TRẬN 22

4.1 Định nghĩa phép so sánh hai ma trận trực giao 22

4.2 Ý tưởng giải thuật 23

4.2.1 Giải thuật mở rộng cột 24

4.2.2 Đặc tả giải thuật đếm sắp thứ tự 26

4.3 Các kết quả đã sinh ra bằng phương pháp sắp thứ tự ma trận 27

4.4 Đánh giá về phương pháp sắp thứ tự ma trận 28

5 SONG SONG HÓA GIẢI THUẬT ĐẾM SẮP THỨ TỰ MA TRẬN TỪ GÓC ĐỘ BACKTRACK SEARCH 30

5.1 Phân loại backtrack search 30

5.2 Các phương pháp song song hóa tổng quát backtrack enumeration 33

5.2.1 Giải thuật phân phối xoay vòng 34

5.2.2 Giải thuật phân phối ngẫu nhiên 34

5.3 Kết luận về việc song song hóa backtrack enumeration 35

Trang 8

Phan Hữu Trọng Hiền Trang v

6 SONG SONG HÓA SỬ DỤNG LẠI KẾT QUẢ TRUNG GIAN 37

6.1 Ý tưởng sử dụng lại kết quả tính toán trung gian 37

6.2 Bổ đề về việc sử dụng lại kết quả ma trận cũ 38

6.3 Phân tích về tính chính xác của giải thuật 41

6.4 Các ưu điểm của song song hóa từ các kết quả ma trận cũ 41

6.5 Kết luận 42

7 HIỆN THỰC VÀ ĐÁNH GIÁ GIẢI THUẬT SONG SONG HÓA ĐỂ TÍNH CÁC MA TRẬN TRỰC GIAO MỚI 44

7.1 Hiện thực giải thuật Song song hóa sử dụng lại ma trận nhỏ nhất 44

7.2 Các chỉ số speedup và effiency 47

7.3 Một vài nhận xét và đánh giá 50

8 HƯỚNG PHÁT TRIỂN ĐỀ TÀI 53

TÀI LIỆU THAM KHẢO 55

PHỤ LỤC 1: Một vài ma trận nhỏ nhất ứng với các thông số khác nhau 57

PHỤ LỤC 2: Bảng đối chiếu thuật ngữ Anh – Việt 61

Trang 9

• 40 phần trăm chi phí để đưa một sản phẩm ra thị trường là trong giai đoạn thiết kế sản phẩm

• Hầu hết các nhà quản l ý đều mong muốn phòng ngừa hơn là khắc phục những sai sót

Từ những l ý do nêu trên, chúng ta thấy rằng việc tổ chức ra được một quy trình thiết kế sản phẩm thích hợp là vô cùng quan trọng đối với một công ty Trong ngành công nghiệp sản xuất hiện nay, trước khi bắt tay vào sản xuất bất kỳ sản phẩm mới nào đó, hầu hết các doanh nghiệp đều phải trải qua một quá trình xem xét, đánh giá đầy đủ các nhân tố ảnh hưởng đến chất lượng của sản phẩm đó Cách làm thông thường nhất, đó là họ sẽ thiết kế các thí nghiệm trước

để xem xét, đánh giá các tác nhân hay là cặp tác nhân nào đó sẽ có nhiều tác động đến sản phẩm

Ta xét một ví dụ sau:

Ban giám đốc của một công ty phần mềm XYZ cần xác định rằng các yếu tố nào là quan trọng để tạo ra một dự án thành công Các yếu tố cần được xem xét là: Nhân tố A (số năm kinh nghiệm của nhân viên), nhân tố B (ngôn ngữ lập trình

sử dụng trọng dự án), nhân tố C (loại ứng dụng của dự án, ví dụ loại phần mềm

về khoa học hay phần mềm về thương mại), nhân tố D (hệ thống sẽ chạy trên platform, hệ điều hành nào), nhân tố E (có sự hợp tác tốt với khách hàng hay không), nhân tố F (khoản thưởng hàng tuần có hay không), nhân tố G (có tổ chức

Trang 10

Phan Hữu Trọng Hiền Trang 2

training cho nhân viên tốt án hay không), nhân tố H (có chính sách tốt cho việc làm thêm giờ hay không) Ở mỗi nhân tố, ta chỉ xem xét các giá trị cụ thể, ví dụ nhân tố A, số năm kinh nghiệm, chúng ta chỉ xem xét các giá trị là 1, 3, 5, 7, 9 năm, như vậy là chúng ta có tổng cộng 5 giá trị (level); ở nhân tố B, các ngôn ngữ lập trình có thể sử dụng trong dự án, ta chọn là C++, Java, Perl, C#, nhân tố

C, loại ứng dụng, ta chọn là Scientific, hoặc Business; ở nhân tố D, platform, ta chọn là Windows hoặc Linux, các nhân tố sau đó chúng ta xét chúng ở dạng nhị nguyên, yes hay no

Cụ thể ta có bảng sau:

Như vậy nếu để đánh giá đầy đủ các nhân tố này, số tổ hợp đầy đủ mà chúng

ta cần xem xét phải là 5.4.26=1280 trường hợp Rõ ràng phải thực hiện 1280 thí nghiệm như vậy là không khả thi về mặt kinh tế Mong muốn của ban giám đốc chính là giảm thiểu tối đa số thí nghiệm cần thực hiện xuống khoảng 100 trường hợp nhưng vẫn cho phép chúng ta đánh giá được đầy đủ các tác động của các nhân tố này đến các dự án Liệu điều này có khả thi hay không?

Câu trả lời rằng có Trong lĩnh vực thiết kế thí nghiệm, các nhà nghiên cứu

toán học ứng dụng đã đưa ra khái niệm ma trận trực giao đều trọng t nhằm chọn

ra một bộ các thí nghiệm phù hợp sao cho mặc dù ta chỉ thực hiện một số giới hạn số thí nghiệm này, chúng ta vẫn hoàn toàn có thể đánh giá tác động của các

nhân tố đến chất lượng sản phẩm Vậy ma trận trực giao đều trọng t là gì? Phần

kế tiếp chúng ta sẽ đi vào định nghĩa của ma trận trực giao đều trọng t

Trang 11

1.2 Định nghĩa ma trận trực giao trọng t

Ma trận trực giao trọng t (t-balanced Orthogonal Array) là một ma trận đặc

biệt và có nhiều ý nghĩa trong lĩnh vực "Thiết kế thí nghiệm" Trong định nghĩa này, chúng ta sẽ xem xét ma trận này trong ngữ cảnh của thiết kế thí nghiệm

Ta cho r 1 , r 2 , , r d là các số tự nhiên và với mỗi i thuộc 1, 2, …, d chúng ta gọi

Q i là tập hợp nào đó mà có số phần tử của nó là r i. Ở đây, chúng ta gọi Q i

nhân tố (factor) Một nhân tố có r i phân từ và r i được gọi là mức (level) của nó Một thiết kế nhân tố đầy đủ (full factorial design) tương ứng vói các nhân tố Q i

này sẽ là một tích Đề-các (ta gọi tích này là D) của tập hợp Q i : D = Q 1 × ×

Q d

Ta có thể tưởng tượng các Q i như là các nhân tố mà chúng ta sẽ lưu ý trong việc thiết kế thí nghiệm cho một sản phẩm P nào đó Các giá trị của mỗi tập Q i có thể xem như là các giá trị mà chúng ta xem xét cho từng nhân tố đó

Một thiết kế riêng phần (fractional design) hay còn gọi là fraction F của D là một

tập con của tập tích Đề-các D

Nếu như chúng ta có r 1 = r 2 = … = r d thì chúng ta gọi F là đối xứng (symmetric) còn trong trường hợp ngược lại ta gọi F là không đối xứng (mixed) Gọi dãy có thứ tự s 1 , s 2 ,…, s m (s 1 > s 2 > · · · > s m ) là tập hợp các kích cỡ khác

nhau của các nhân tố và giả sử là có chính xác ai nhân tố có cùng level là s i Lúc

này chúng ta sẽ phân chia d nhân tố Q i mà có các mức r 1 , r 2 ,…, r d này thành m nhóm, bằng cách gom các nhân tố có cùng level vào một nhóm, và mỗi nhóm sẽ

có ai phần tử Chúng ta gọi

d

r r

r1, 2, , = a m

m a

s 1, 2, ,

2 1

là một kiểu thiết kế (design type) của F

Nếu chú giải rõ ràng hơn thì ta có:

Trang 12

Phan Hữu Trọng Hiền Trang 4

2 1 1

a a

là một thiết kế riêng phần không đối xứng có kiểu thiết kế là (4, 23)

Thật ra chúng ta thường biểu diễn thiết kế F ở dạng ma trận, trong đó các hàng của ma trận tương ứng với các phần tử của F, và các cột tương ứng với các nhân tố của thiết kế Do đó thiết kế F trên nếu biểu diễn ở dạng ma trận sẽ có

dạng như sau

(lưu ý ở đây chúng ta vẽ ma trận trên theo hàng ngang và k ý hiệu T biểu thị cho

ma trận chuyển vị của nó)

Với cách biểu diễn này, chúng ta xem các hàng của ma trận sẽ là các run, và

số hàng của ma trận sẽ là run size Nếu nhìn theo hướng thiết kế thí nghiệm thì mỗi run sẽ đại diện cho một thí nghiệm, và run size sẽ đại diện cho tổng số thí

nghiệm mà ta sẽ thực hiện Rõ ràng, số hàng càng lớn chứng tỏ rằng việc thực hiện các thí nghiệm này càng nhiều và dĩ nhiên … càng tốn kém

Thông thường do mỗi tập Q i có r i phần tử nên ta thường biểu diễn ri phần tử

của tập Q i này là các số nguyên từ 0, 1,… cho đến r i - 1 Nói cách khác để tiện lợi, chúng ta thường xem xét: Q i =Z r = 1,2, ,r i − }

Trang 13

Nếu ta chỉ lấy ra t cột của ma trận F, ta sẽ được một mảng con (subfraction) của F Nếu như mảng con này có một đặc điểm đặc biệt, đó là nó chứa đựng tất

cả các bộ (tuple) của thiết kế đều tương ứng và các bộ này có số lần xuất hiện

như nhau, thì lúc đó ta gọi mảng đó là trivial (tầm thường)

Một ma trận được gọi là trực giao đều trọng t, nếu như mọi mảng con gồm t cột cùa nó đều là trivial Đây chính là định nghĩa của ma trận trực giao trọng t

Định nghĩa ma trận trực giao trọng t một cách hình thức bằng tổ hợp như sau:

Ta đã biết D=QQ2× ×Q dF là một tập con của D Gọi tập chỉ số I là tập hợp con bất kỳ gồm t phần tử của tập {1,2,…,d} Số tập hợp I như vậy là t

F

I λ , với λIlà một số nguyên dương nào đó

Hình vẽ sau là ví dụ của một ma trận trực giao đều trọng 3: OA(16; 4.23;3)

Trang 14

Phan Hữu Trọng Hiền Trang 6

Trong ma trận trên, bấy kỳ một bô ba các cột nào cũng đều chứa đựng tất cả các bộ của thiết kế nhân tố đầy đủ với số lần xuất hiện là như nhau Ví dụ nếu chúng ta lấy ba cột B, C, D thì chúng ta thấy rằng tất cả các bộ (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0, (1,0,1), (1,1,0) và (1,1,1) đều xuất hiện hai lần

1.3 Ý nghĩa thống kê của ma trận trực giao

Chúng ta thấy rằng số run size của một ma trận trực giao luôn nhỏ hơn số tổ hợp tối đa của kiểu thiết kế ma trận Ví dụ ta xét một thiết kế thí nghiệm gồm bốn nhân tố, với kiểu thiết kế là (4.23) Để thực hiện hết tất cả các thí nghiệm, ta

Trang 15

sẽ cần ít nhất 32 run Tuy nhiên nếu như chúng ta dùng một ma trận trực giao với cùng kiểu thiết kế trên, chúng ta chỉ cần thực hiện 16 thí nghiệm là đủ Ma trận

tôi vừa nói đến là ma trận OA(16;4.2 3 ;3) ở trên

Về mặt hình học ta xem xét tập hợp đầy đủ 32 thí nghiệm sẽ là tập cha, tập hợp 16 thí nghiệm tương ứng với 16 run từ ma trận trực giao là tập con L ý thuyết thống kê đã chứng minh được rằng các kết quả thu được từ 16 thí nghiệm này đã cho phép chúng ta đánh giá được tác động của từng tác nhân đến sản phẩm và một vài tác động kép của cặp tác nhân [5] Đây là một điều hết sức ý nghĩa vì lưu ý một điều rằng chúng ta không cần thực hiện hết đầy đủ tất cả các thí nghiệm mà chỉ thực hiện một vài thí nghiệm mà thôi

Ngoài ra, các l ý thuyết thống kê cũng đã chứng minh được rằng ma trận trực

giao đều có trọng số t càng lớn thì càng có ý nghĩa Ví dụ các ma trận trực giao

trọng 2 chỉ cho phép chúng ta xác định các tác động của nhân tố chính, ma trận trực giao trọng 3 tốt hơn vì chúng cho phép chúng ta xác định sự tác động của tương tác cặp hai nhân tố (nhưng không đầy đủ hết tất cả), ma trận trực giao trọng 4 lại cho phép chúng ta xác định đầy đủ tất cả các tác động tương tác giữa các cặp nhân tố này ([5])

1.4 Một vài ứng dụng và kết quả nghiên cứu mới nhất về ma trận

Trang 16

Phan Hữu Trọng Hiền Trang 8

vào kiểm định phần mềm ([6], [11]), ứng dụng ma trận trực giao vào thiết kế mạng Battlefield trong quân đội ([12]) Trong công nghiệp, năm 2005, một kết

quả ma trận trực giao trọng 3 (OA(96;4 2 2 6 ;3) do Nguyễn Văn Minh Mẫn tìm ra

đã được ứng dụng vào ngành công nghiệp chế biến sữa để sản xuất một loại yahourt mới ([14])

Trong các ứng dụng trên, các nhà nghiên cứu khoa học cũng như các chuyên gia công nghiệp đều chỉ sử dụng các các ma trận trọng 2 hoặc 3 mà thôi Các ma trận trực giao trọng 4 với ưu điểm vượt trội hơn các ma trận trực giao trọng 2 và

3 sẽ có thể đóng góp nhiều giá trị hữu ích hơn nữa cho việc nghiên cứu khoa học cũng như trong công nghiệp Do đó mục tiêu xây dựng nên các ma trận trực giao mới trọng 4 là điều mà luận văn này sẽ hướng đến

Tuy nhiên, các ma trận trực giao trọng 4 là một thánh thức thú vị nhưng không đơn giản Nguyên nhân là do ma trận trực giao trọng số càng cao thì càng đòi hỏi nhiều sự tính toán hơn, thời gian xử lý lâu hơn, tốn nhiều bộ nhớ hơn Hơn thế nữa, về mặt toán học, điều mà ta mong muốn là "đếm" hết tất cả các ma trận trực giao ứng với một kiểu thiết kế cụ thể, chứ không đơn giản chỉ là tạo ra một ma trận nào đó cho kiểu thiết kế đó (khái niệm "đếm" các ma trận trực giao

sẽ được trình bày cụ thể ở phần 3: Đếm các ma trận trực giao) Từ những khó khăn trên, một trong những hướng đi của đề tài luận văn tốt nghiệp này là tìm các biện pháp song song hóa để có thể kết hợp sức mạnh tính toán nhiều máy tính lại cho việc đếm các ma trận trực giao mới có trọng 3 hoặc trọng 4

1.5 Sơ lượt các kết quả mới mà luận văn thực hiện được

Luận văn này đã tìm hiểu các phương thức xây dựng ma trận trực giao mới, trong đó đã đề xuất ba phương pháp song song hóa mới để đếm các ma trận trực giao Trong ba phương thức này, chúng tôi đã hiện thực một giải thuật quan trọng nhất, giải thuật song song hóa sử dụng lại kết quả ma trận cũ trên mô hình lập trình song song MPI và sẽ tính toán trên hệ thống cluster SuperNode-II của

Trang 17

trường đại học Bách Khoa thành phố Hồ Chí Minh Ngoài ra để bảo đảm cho tính đúng đắn của phương pháp này, chúng tôi đã phát hiện và chứng minh một

bổ đề toán học để chứng minh cho tính chính xác của việc sử dụng kết quả ma trận cũ để tính toán nên các ma trận trực giao mới (phần 6.2)

Trong quá trình thực hiện luận văn, đầu tiên chúng tôi đã sử dụng Giải thuật

sử dụng lại ma trận nhỏ nhất cũ để đếm các kết quả ma trận trọng 3, so sánh với

các kết quả đã tìm ra trong [1] Các so sánh cho thấy kết quả mới tìm ra và kết quả cũ là giống nhau Điều này đã chứng minh được tính đúng đắn của giải thuật song song Một điều quan trọng nữa là kết quả của việc đo đạc các chỉ số speedup, chỉ số effiency đã cho ta thấy sự hiệu quả của chương trình song song này Chúng tôi cũng đã có một số đánh giá, ước lượng về thời gian cần tính toán

để đếm các ma trận trực giao mới (phần 7.4) Kết quả cho thấy bài toán chúng ta

là một bài toán NP-Complete với sự bùng nổ tổ hợp rất lớn Điều này sẽ làm cho thời gian tính toán các ma trận mới là rất lớn

Cho đến thời điểm này, chúng tôi đã tìm hiểu và xây dựng được các ma trận

trực giao trọng 4 mới, đó là các ma trận OA(32;2 6 ;4), OA(96;3.2 5 ;4), OA(96;3.2 6 ;4) Hy vọng trong thời gian tới, chúng tôi sẽ có thể cập nhật thêm

nhiều kết quả nữa để bài báo cáo thêm hoàn thiện

Trang 18

Phan Hữu Trọng Hiền Trang 10

2 C ÁC PHƯƠNG PHÁP XÂY DỰNG MA TRẬN TRỰC GIAO

Sau khi đã biết được định nghĩa của ma trận trực giao trọng t, chúng ta sẽ xem xét về các phương pháp toán học để xây dựng (construction) nên các ma trận trực giao trọng t này Có khá nhiều phương pháp như vậy, nhưng trong bài viết này, tôi chỉ trình bày bốn phương pháp thuộc nhóm cơ bản [1], đó là phương pháp chia cột (splitting method), phương pháp chồng ma trận (concatenating method), phương pháp nhân (multiplying method) và phương pháp xếp kề

(juxtaposing method) Cuối cùng sẽ là hai phương pháp mới và khá phức tạp, đó

là phương pháp số học (arithmetic method) và phương pháp hình vuông Latin

(Latin square method)

2.1 Phương pháp chia cột (splitting method)

Giả sử chúng ta có một ma trận OA(N; uv.r 1 r 2 …r d ; t), ta thấy cột đầu tiên của

nó là tích của hai số nguyên u, v nào đó Với ma trận như vậy, chúng ta có thể tạo

ra một ma trận trực giao trọng t mới mà cùng số hàng với nó bằng cách tách cột đầu tiên có mức (u*v) đó ra để tạo thành hai cột mới có các mức là u và v Nói cách khác, ta có thể dựa vào ma trận (N; uv.r 1 r 2 …r d ; t) để tạo ra một ma trận trực giao mới là OA(N; u.v r 1 r 2 …r d ; t)

Chẳng hạn, nếu chúng ta có một cột có mức là 6, chúng ta có thể tạo ra hai

cột mới có các mức là 2 và 3 Ta lấy ví dụ là từ một ma trận OA(16;4.2 3 ;3), chúng ta có thể tạo ra một ma trận mới là (16;2 5 ;3) như hình vẽ phía dưới

Trong ví dụ này, chúng ta đã chia cột A của ma trận đầu tiên và tạo ra hai cột A1, A2 có mức là 2 cho ma trận thứ hai bằng cách sau:

• Với ký hiệu 3, chúng ta thay thế nó bằng hai k ý hiệu 1 và 1 tương ứng

• Với k ý hiệu 2, ta thay bằng 1 và 0

• Với k ý hiệu 1, ta thay bằng 0 và 1

• Với k ý hiệu 0, ta thay bằng 0 và 0

Trang 19

Tổng quát hóa, đối với mỗi giá trị của cột đầu tiên (thuộc Z uv), ta thay bằng

duy nhất một cặp giá trị thuộc tập Z u x Z v

1 0

0

1 1

0 0

1

1 1

0 1

0

1 1

1 1

1

1 1

1 0

0

0 1

0 0

1

0 1

0 1

0

0 1

1 1

1

0 1

0 1

1

1 0

1 1

0

1 0

1 0

1

1 0

0 0

0

1 0

0 1

1

0 0

1 1

0

0 0

1 0

1

0 0

0 0

0

0 0

D C

B

A2 A1

1 0

0

1 1

0 0

1

1 1

0 1

0

1 1

1 1

1

1 1

1 0

0

0 1

0 0

1

0 1

0 1

0

0 1

1 1

1

0 1

0 1

1

1 0

1 1

0

1 0

1 0

1

1 0

0 0

0

1 0

0 1

1

0 0

1 1

0

0 0

1 0

1

0 0

0 0

0

0 0

D C

B

A2 A1

Tạo ra một ma trận trực giao mới bằng phương pháp chia cột

2.2 Phương pháp chồng ma trận (concatenating method)

Phương pháp này dành riêng cho hai ma trận có cùng kiểu thiết kế (thuật ngữ cùng kiểu thiết kế có nghĩa là hai ma trận này có cùng trọng số t, có cùng số

factor và số mức của mỗi factor là giống nhau đôi một) Nếu chúng ta có hai ma trận có cùng kiểu thiết kế như vậy thì chúng ta có thể sinh ra một ma trận trực giao mới bằng cách đặt chồng ma trận này lên ma trận kia Lưu ý phép đặt chồng này giữ nguyên các ma trận thành phần, không hề làm thay đổi các giá trị của nó Chúng ta có thể biễu diễn điều này bằng k ý hiệu ⎥

D C

B

A

1 0

0

3

0 0

1

3

0 1

0

3

1 1

1

3

1 0

0

2

0 0

1

2

0 1

0

2

1 1

1

2

0 1

1

1

1 1

0

1

1 0

1

1

0 0

0

1

0 1

1

0

1 1

0

0

1 0

1

0

0 0

0

0

D C

B

A

1 0

0

3

0 0

1

3

0 1

0

3

1 1

1

3

1 0

0

2

0 0

1

2

0 1

0

2

1 1

1

2

0 1

1

1

1 1

0

1

1 0

1

1

0 0

0

1

0 1

1

0

1 1

0

0

1 0

1

0

0 0

0

0

Trang 20

Phan Hữu Trọng Hiền Trang 12

2.3 Phương pháp nhân (multiplying method)

Cho một ma trận trực giao F = OA(N; r 1 r 2 …r d ; t), chúng ta có thể tạo nên một ma trận trực giao mới OA(sN; sr 1 r 2 …r d ; t) với s là một số nguyên dương bất kỳ bằng cách chồng s bản copy của F, thay đổi các k ý hiệu ở cột đầu tiên sao

cho chúng khác nhau đôi một

Lưu ý là phương pháp nhân này chính yếu giống như phương pháp chồng, tuy nhiên khác biệt ở chỗ là chúng ta chỉ sử dụng một ma trận khởi tạo ban đầu duy nhất để xây dựng nên một ma trận mới và ngoài ra, chúng ta còn thay đổi các k ý

hiệu của cột đầu tiên Ví dụ, các ma trận có dạng OA(sN;2 a ;3) có thể thu được từ

s bảng copy của ma trận OA(N;2 a ; 3) = OA(N;1.2 a ; 3), đối với a ≤ N/2 (ma trận OA(24; 3.2 4 ; 3) đã được tạo ra bằng cách này) Các ma trận OA(8s; 2s.2 3 ; 3) được thiết lập từ OA(8; 2 4 ; 3) = OA(8; 2.2 3 ; 3); ngoài ra chúng ta tạo ra ma trận OA(16; 4.2 3 ; 3) từ hai ma trận OA(8; 2.2 3 ; 3); và cuối cùng chúng ta khởi tạo ma trận OA(24; 6.2 3 ; 3) từ ba ma trận OA(8; 2.2 3 ; 3)

2.4 Phương pháp đặt kề (juxtaposing method)

Phương pháp đặt kề là phương pháp đặt hai ma trận ở kề nhau và nó là sự kết hợp của hai phương pháp chồng và nhân ma trận Ta cho hai ma trận trực giao

F1, F2 với cùng trọng số t, và có cùng số cột Nếu như hai ma trận này có cùng

số mức ở tất cả các cột ngoại trừ cột đầu thì chúng ta có thể tạo ra một ma trận trực giao mới bằng cách chồng môt ma trận này lên ma trận kia, với ký hiệu khác nhau ở cột đầu tiên và vẫn giữ nguyên các k ý hiệu ở các cột còn lại Một cách rõ

ràng hơn, với hai ma trận OA(N′; s′ r 2 …r d ; t) và OA(N′′; s′′ r 2 … r d ; t) chúng ta

có thể khởi tạo một ma trận OA(N′ + N′′; s′ + s′′ r 2 … r d ;t) bởi phương pháp xếp

kề này Rõ ràng hơn chúng ta có thể thực hiện như sau:

• Trong N' hàng đầu tiên, ta giữ nguyên N' hàng của ma trận F1

• Trong N'' hàng kế tiếp, ta tạo ra chúng bằng cách giữ nguyên N'' hàng của

ma trận trực giao thứ hai, chỉ cộng N' thêm vào giá trị của cột đầu tiên

Trang 21

Ví dụ dùng phương pháp xếp kề này, chúng ta có thể tạo ra ma trận OA(56; 7,

2 a ; 3) từ hai ma trận OA(40; 5 2 a ; 3) và OA(16; 2 a+1 ; 3) với a ≤ 6

Phương pháp này hoàn toàn có thể mở rộng ra để xếp kề nhiều các ma trận trực giao với nhau, chứ không chỉ đơn giản là xếp kề hai ma trận

Bốn phương pháp nêu trên thuộc về nhóm các phương pháp cơ bản và chỉ là các phép biến đổi thông thường ở các ma trận trực giao Để tìm ra các ma trận trực giao khác, chúng ta cần các phương pháp phức tạp hơn sẽ được trình bày ở phần sau đây

2.5 Phương pháp số học (arithmetic method)

Phương pháp số học là một phương pháp được đề xuất đầu tiên trong [3] Phương pháp này khởi tạo nên các ma trận trực giao mới bằng cách mở rộng từ

các thiết kế nhân tố đầy đủ Gọi D = [S 1 | |S d ] là một thiết kế nhân tố đầy đủ không lặp lại với kiểu thiết kế là r 1 , r 2 ,…, r d , d >= 3, r 1 , r 2, …, r d >= 2 và cột S i

tương ứng với nhân tố Q i Chọn s>= 2 sao cho s là thừa số của N/ r i r j cho bất kỳ

cặp i, j nào vói i, j = 1, , d Phương pháp này sẽ tạo thêm một cột vector X cho

D, nghĩa là tạo ra [S 1 | |S d |X] sao cho ma trận này là ma trận trực giao có trọng

số là 3: OA(N; r 1 ,r 2 ,…,r d , s; 3) Chúng ta có thể mở rộng hơn để tìm ra các ma trận OA(N; r 1 ,r 2 ,…,r d , s m ; 3) vói m>1

Ta gọi u là một vector u bất kỳ thuộc D, ta có u:=(u 1 , u 2 , …, u d ) Bởi vì D là một thiết kế đầy đủ nên cột X sẽ được xác định

)

(,

Trang 22

Phan Hữu Trọng Hiền Trang 14

X

f (u) = h(u) = c 1 u 1 + c 2 u 2 + …+ c d u d (mod n)

Ở đây, c 1 , c 2 , …, c d là các hệ số mà chúng ta sẽ xác định và n là bội số chung

nhỏ nhất của r 1 , r 2 , …, r d

Theo định nghĩa của ma trận trực giao trọng 3, với hai cột S i , S j bất kỳ trọng

D thì bộ ba S i , S j và X phải là trivial (bình thường) Nhìn kỹ hơn nữa, với hai k ý hiệu a, b bất kỳ thuộc S i , S j, chúng ta phải cấu hình f X (u) trong đó u là một vector chứa đựng a, b sao cho bộ ba (a,b, f X (u)) xuất hiện với cùng tần số Chúng ta gọi điều này là điều kiện phân bổ đồng nhất (uniform scattering condition) Điều kiện này là rất quan trọng để cho phép chúng ta xác định các hệ

số c 1 , c 2 , …, c df X

Bằng phương pháp số học, Nguyễn Văn Minh Mẫn đã tạo ra một vài ma trận

trực giao mới chẳng hạn như OA(96; 6.4 2 2 3 ; 3), OA(96; 3.4 2 2 5 ; 3) từ thiết kế đầy đủ D= OA(96;6.4 2 ;3) ban đầu

Phương pháp số học này là một phương pháp phức tạp, bài viết này chỉ trình bày những ý tưởng cơ bản của nó, nội dung chi tiết của nó xin xem thêm ở tài liệu tham khảo [3]

2.6 Phương pháp hình vuông Latin (Latin square method)

Hình vuông Latin là một hình vuông có kích thước n x n, các phần tử của hình vuông lấy giá trị trong khoảng 0, 1, , n-1 và mỗi giá trị này chỉ xuất hiện

2 1 0

0 2 1

Trang 23

Chúng ta sẽ sử dụng các hình vuông Latin này để khởi tạo một vài ma trận trực giao trọng 3 Phương pháp này cũng áp dụng để mở rộng thêm vài cột vào

trong các thiết kế đều như phương pháp số học đã sử dụng Ví dụ, gọi k = OA(16;4 2 ;2) là thiết kế đầy đủ với kiểu thiết kế là 42 Chúng ta sẽ gắn thêm hai

cột g 1 , g 2 vào k để hình thành một ma trận mới:

[k|g 1 |g 2 ] = OA(16;4 2 2 2 ;2)

Ví dụ sau đây là một ví dụ của một ma trận trực giao có dạng mở rộng như vậy:

Bởi vì g1 và g2 có mức là 2 nên chúng sẽ lấy các giá trị nhị phân tập {0, 1}

Nếu chúng ta để ý đến các giá trị thập phân của từng bộ nhị phân g ij , h ij, chúng ta

sẽ tính toán ra một ma trận tương đương rất l ý thú sau đây: 1, 3, 2, 1, 3, 1, 0, 2, 2,

0, 1, 3, 0, 2, 3, 1 Điều lý thú ở đây là nếu chúng ta đặt dãy số kể trên vào một ma

trận 4 x 4, chúng ta sẽ có một hình vuông Latin:

Chúng ta định nghĩa khái niệm superimposed grid g*h là một ma trận 4 × 4 với các ô của nó lấy giá trị trong {0, 1, 2, 3} và cụ thể giá trị (g*h) tại hàng i, cột

j là giá trị dạng thập phân của số nhị phân (g ij h ij) Có một bổ đề đã chứng minh

rằng [k|g 1 |g 2 ] là một ma trận trực giao khi (g1*g2) là một hình vuông Latin

Thực tế phương pháp hình vuông Latin là một phương pháp phức tạp hơn phương pháp số học ở phần 4.5, tuy nhiên bài viết chỉ đưa ra một ví dụ cơ bản của phương pháp này Phương pháp này cũng được đề xướng đầu tiên trong [3]

Trang 24

Phan Hữu Trọng Hiền Trang 16

Bằng việc sử dụng khái niệm hình vuông Latin, kết hợp với các phương pháp cơ bản khác như juxtaposing, tác giả đã xây dựng một vài ma trận trực giao mới như

OA(96; 6 4 2 2 a ; 3) cho a ≤ 5 và ma trận OA(80; 5 4 2 a ; 3) cho a ≤ 6

2.7 Một vài đánh giá

Các phương pháp xây dựng ma trận vừa nêu trên là các phương pháp toán học và cách thức hoạt động của chúng chính yếu là dựa vào định nghĩa của ma trận trực giao và cộng một vài giả định đặc biệt nào đó Ví dụ như chúng ta sử dụng giả định về hàm định nghĩa trong phương pháp số học là tuyến tính

Với việc sử dụng thêm các giả định đặc biệt như vậy, chúng ta đã làm hạn chế việc tìm kiếm tổng quan tất cả các ma trận trực giao Một nhược điểm khác của các phương pháp trên đó là chúng dựa trên l ý thuyết tổ hợp và chủ yếu là việc đếm các k ý hiệu Điều này đồng nghĩa với việc chúng luôn phụ thuộc vào một tập thông số cụ thể nào đó Điều này làm mất đi khả năng tổng quát hóa để có thể

áp dụng chúng trong các trường hợp khác Khi sử dụng các phương pháp này, chúng ta thu được một vài ma trận được mở rộng thêm từ các ma trận đã biết, tuy nhiên chúng ta vẫn không thể biết được là có bao nhiêu sự mở rộng có thể thu được

Thật ra cách tiếp cận xây dựng ma trận trực giao bằng các phương pháp tổ hợp đại số là một trong những phương pháp đầu tiên được sử dụng trên thế giới khi chúng ta làm việc với chúng Tuy nhiên phương pháp này như đã nói ở trên

đã tỏ ra là không thích hợp Do đó, chúng ta cần một phương pháp mới và tốt hơn để có thể tìm ra tất cả các ma trận được mở rộng Phương pháp này được gọi

là phương pháp đếm ma trận và sẽ được thảo luận ở phần sau

Trang 25

3 Đ ẾM CÁC MA TRẬN TRỰC GIAO

Sau khi chúng ta đã xem xét qua về các phương pháp cấu trúc nên các ma trận trực giao mới, chúng ta sẽ xem xét thêm một vấn đề khá thú vị, đó là đếm các ma trận trực giao Một câu hỏi được đặt ra, đó là có bao nhiêu ma trận trực giao với cùng một kiểu thiết kế và cùng một run size?

3.1 Đếm các lớp đẳng cấu

Một điều rất dễ nhận thấy, đó là số ma trận trực giao tồn tại ứng với cùng một kiểu thiết kế và một run size thông thường là rất lớn Nếu chúng ta muốn đếm hết tất cả các ma trận này, chúng ta phải dùng một phương pháp đặc biệt Và để giải

quyết cho vấn đề này, chúng ta cần phải sử dụng lý thuyết nhóm (group theory)

của toán học đại số Cụ thể ở đây ta sẽ phân loại các ma trận trực giao này vào

các lớp đẳng cấu (isomorphic class), và thay vì phải đếm hết tất cả các ma trận

như thế này, chúng ta chỉ cần đếm các lớp đẳng cấu này mà thôi

Ví dụ chúng ta xem xét một ma trận trực giao cụ thể OA(16;4.2 3 ;3) như hình

vẽ bên dưới Nếu chúng ta tráo đổi hai cột bất kỳ, hoặc trao đổi hai hàng bất kỳ hay hai k ý hiệu bất kỳ nào đó, ta sẽ tạo ra một vài ma trận trực giao mới Ta thấy rằng các ma trận trực giao này là tương đương và chúng ta có thể nói là các ma trận trực giao này đều thuộc vào một lớp đẳng cấu Đối với mỗi lớp đẳng cấu như vậy, chúng ta chỉ cần một phần tử bất kỳ để đại diện cho lớp đó Lúc này vấn đề

"Đếm ma trận trực giao" sẽ trở nên dễ dàng hơn: chúng ta chỉ cần đếm có bao nhiêu lớp đẳng cấu như vậy ứng với một bộ thông số cụ thể nào đó Ví dụ như hình vẽ bên dưới, chúng ta có rất nhiều ma trận trực giao ứng với một bộ thông

số cụ thể nào đó, tuy nhiên do có nhiều ma trận trực giao tương đương nhau nên thực sự chỉ có hai lớp ma trận trực giao đẳng cấu

Trang 26

Phan Hữu Trọng Hiền Trang 18

Hiện nay, các cách thức đếm các lớp đẳng cấu được đưa ra trong [1] Phương pháp đầu tiên đó là phương pháp sắp thứ tự ma trận mà tôi sẽ trình bày trong chương 4: chúng ta sản sinh ra các ma trận trực giao “nhỏ nhất”, mỗi ma trận như vậy sẽ đại diện cho duy nhất một tập hợp các ma trận đẳng cấu với nhau (khái niệm ma trận nhỏ nhất sẽ trình bày kỹ trong chương 4) Phương pháp thứ hai là chúng ta chuyển đổi các ma trận trực giao thành một đồ thị và sau đó chúng ta sẽ dùng phương pháp "Tô màu đồ thị" để thực hiện tô màu các đồ thị này Việc kiểm tra tính đẳng cấu của các ma trận trực giao lúc này trở thành việc kiểm tra tính đẳng cấu của các đồ thị được tô màu của chúng Và lúc này việc đếm các lớp đẳng cấu ma trận trực giao được chuyển đổi thành đếm các đồ thị đẳng cấu được

tô màu

Trang 27

Ma trận tạo ra khi trao đổi ký hiệu 1 và 3 ở cột đầu tiên

Bảng biểu diễn một vài ma trận trực giao tương đương nhau

3.2 Đếm các nhóm tự đẳng cấu

Thật ra việc đếm các ma trận trực giao không chỉ là đếm các lớp đẳng cấu

Đối với mỗi ma trận trực giao F, nhóm tự đẳng cấu (automorphism group) của

ma trận này, k ý hiệu Aut(F), là tập hợp tất cả các phép chuyển đổi (trao đổi hàng,

cột và ký hiệu) sao cho từ ma trận này có thể sinh ra lại chính nó:

Aut(F) = {g G: F g = F}

Trang 28

Phan Hữu Trọng Hiền Trang 20

trong đó G là tập hợp tất cả các phép chuyển đổi có thể có (trao đổi hàng, cột và

k ý hiệu) để tạo ra một ma trận trực giao này từ một ma trận trực giao khác

Như vậy từ mỗi lớp đẳng cấu, chúng ta sẽ phải đếm thêm số phần tử của nhóm tự đẳng cấu ứng với một ma trận trực giao đại diện cho lớp đẳng cấu đó là bao nhiêu

Một vài ví dụ của các kết quả đếm ma trận ứng với một vài ma trận có bộ thông số cụ thể trong [1] như sau:

N (run size) Kiểu thiết kế Số lớp đẳng

cấu

Kích cỡ của các nhóm tự đẳng cấu

Khái niệm nhóm tự đẳng cấu là một khái niệm phức tạp, do đó xin tham khảo thêm trong [1] để có thể hiểu rõ ràng hơn về khái niệm này Tuy nhiên do thời gian không cho phép, luận văn không thực hiện vào việc đếm các nhóm tự đẳng cấu này mà chỉ tập trung vào việc đếm các lớp đẳng cấu được nêu ra ở phần 3.1

3.3 Một số kết luận

Rõ ràng, vấn đề đếm các ma trận trực giao là một vấn đề rất thú vị và không

hề đơn giản Công trình mới nhất về việc đếm các ma trận trực giao là của tiến sĩ Nguyễn Văn Minh Mẫn, khoa Công nghệ thông tin, đại học Bách Khoa, thành phố Hồ Chí Minh Trong công trình này, ông đã tiến hành khảo sát gần hết tất cả các ma trận trực giao trọng 3 với run size N <=100 (cũng lưu ý rằng, vẫn còn một vài kết quả mở cho trường hợp các ma trận trọng 3 mà luận văn này sẽ cố gắng tìm ra được lời giải đó) Ngoài ra trong công trình của mình, ông cũng đã đề ra

Trang 29

một phương pháp tổng quát để có thể đếm hết tất cả các ma trận trực giao Về tổng quan, phương pháp này có thể song song hóa được Do đó một hướng đi trong đề tài luận văn là nghiên cứu và hiện thực việc song song hóa giải thuật này

để có thể đếm được các ma trận trực giao mới chưa được xem xét có trọng 3 hay trọng 4

Trang 30

Phan Hữu Trọng Hiền Trang 22

4 GIẢI THUẬT ĐẾM SẮP THỨ TỰ MA TRẬN

Nhiệm vụ của chính của luận văn là tìm ra các giải thuật song song hóa để có thể tìm ra các ma trận trực giao mới có trọng số là 3 và 4 Trong phần này tôi sẽ trình bày một giải thuật quan trọng để đếm các ma trận trực giao: phương pháp sắp thứ tự ma trận ([1]) Tuy nhiên trước khi giới thiệu về giải thuật này, trong phần 4.1 chúng ta sẽ định nghĩa một phép so sánh về mặt toán học hai ma trận trực giao bất kỳ có cùng run size và bộ thông số, sau đó chúng ta mới có thể tìm hiểu cặn kẽ về giải thuật sắp thứ tự ma trận trong phần 4.2 Phần 4.3 sẽ trình bày

sơ lược về các ma trận trực giao đã tìm ra được nhờ áp dụng phương pháp này Cuối cùng phần 4.4 sẽ đánh giá một cách sơ lược về phương pháp sắp thứ tự ma trận này

4.1 Định nghĩa phép so sánh hai ma trận trực giao

Các ma trận bao gồm nhiều cột Do đó để so sánh hai ma trận trực giao có cùng số run size và một bộ thông số cụ thể, chúng ta sẽ so sánh từng cột của chúng Việc so sánh này có tính chất giống hệt như là so sánh sắp xếp các từ trong từ điển: chúng ta so sánh tuần tự theo ưu tiên các cột từ trái qua phải, chỉ cần lần đầu tiên phát hiện ma trận nào có cột lớn hơn cột tương ứng của ma trận kia thì ma trận đó sẽ lớn hơn Còn việc so sánh cột thì chúng ta cũng so sánh theo dạng từ điển các ô theo tuần tự ưu tiên từ trên xuống dưới, chỉ cần lần đầu tiên một cột nào có một ô lớn hơn ô tương ứng của cột kia, ta sẽ nói cột đó lớn

hơn Định nghĩa cho phép so sánh hai cột (hai vector) như sau:

Cho hai vector u và v có cùng chiều dài N, ta nói u<v nếu và chỉ nếu tồn tại một chỉ số j, j{1,…, d-1} sao cho u[i]=v[i] ứng với tất cả 1ij và u[j]<u[j+1]

Định nghĩa cụ thể về sự so sánh hai ma trận như sau:

Trang 31

Cho F = [c 1 , , c d ], F′ = [c′ 1 , , c′ d ] là hai ma trận bất kỳ có cùng một thông số, trong đó c i , c′ i là các cột Ta nói F nhỏ hơn F′, ký hiệu F<F′, nếu và chỉ nếu tồn tại một chỉ số j, j{1,…, d-1} sao cho c i = c′ I cho tất cả 1ij và

c j+1 <c′ j+1

Ví dụ sau sẽ chỉ ra hai cột u, v trong đó u<v:

1 0 0 0 U

1 0 0 0 U

1 1 0 0 V

1 1 0 0 V

U < V

Ví dụ sau đây sẽ chỉ ra hai ma trận F, F’ trong đó F<F’:

1 1

0 1

0 0

0 0

F

1 1

0 1

0 0

0 0

F

1 1

1 1

0 0

0 0

F’

1 1

1 1

0 0

0 0

F’

F < F’

Như vậy với định nghĩa phép so sánh như vậy, chúng ta luôn luôn có thể sắp thứ

tự hai ma trận bất kỳ có cùng chung một bộ thông số (cùng số hàng và bộ thiết kế) Điều này rất quan trọng để chúng ta có thể triển khai giải thuật đếm sắp thứ

tự ma trận

4.2 Ý tưởng giải thuật

Trong phương pháp này, chúng ta sẽ sản sinh ma trận mới bằng cách thêm lần lượt các cột mới vào Trong quá trình làm tìm kiếm này, chúng ta luôn bảm đảm rằng chỉ có các ma trận nhỏ nhất đại diện cho một lớp đẳng cấu ứng với một

Trang 32

Phan Hữu Trọng Hiền Trang 24

bộ thông số được sinh ra Khi một ma trận được sinh ra, nó đã được so sánh với tất cả các ma trận đẳng cấu với nó (nhắc lại rằng khi chúng ta đảo các hàng, đảo cột của một ma trận trực giao, chúng ta sẽ thu được các ma trận đẳng cấu với ma trận ban đầu) Chỉ cần bất kỳ ma trận trực giao nào sinh ra lớn hơn một ma trận đẳng cấu với nó, nó sẽ bị loại Kết quả cuối cùng thu được của chúng ta luôn luôn là các ma trận nhỏ nhất vì nó nhỏ hơn tất cả các ma trận đẳng cấu với nó Mỗi ma trận nhỏ nhất như vậy đại diện duy nhất cho lớp đẳng cấu của nó Hình

vẽ sau đây sẽ cho ta thấy ý tưởng của giải thuật đếm sắp thứ tự ma trận

4.2.1 Giải thuật mở rộng cột

Giải thuật sắp thứ tự ma trận này sẽ dựa vào việc mở rộng từng cột của ma trận Do mỗi cột bao gồm nhiều giá trị trong mỗi hàng nên chúng ta sẽ thêm lần lượt các giá trị có thể có của mỗi ô trong cột mới Việc xem xét các giá trị ô ở hàng sau luôn phụ thuộc các giá trị đã được đặt vào các ô ở các hàng trước đó Nói rõ hơn là trong quá trình xem xét các giá trị cho từng ô, chúng ta luôn cố gắng làm cho các giá trị của hàng sau không nhỏ hơn các giá trị của hàng trước

Trang 33

đó Khi đặt một giá trị vào một ô, chúng ta đếm xem tần suất của các bộ gồm t

giá trị của hàng đó đã vượt qua tần suất tối đa cho phép chưa Nếu tại mỗi ô có nhiều hơn một giá trị có thể đặt vào ô đó, ta sẽ lưu lại giá trị chưa xét trên Stack (để sau này quay lại) và tiếp tục chọn lựa một giá trị để phát sinh tiếp giá trị cho các ô tiếp theo Mô tả hình thức về giải thuật mở rộng cột như sau:

Tên giải thuật: Giải thuật mở rộng cột

ƒ Giả sử cột đang xét có mức là d, các giá trị có thể được xem

xét là j, j[0, d-1] Nếu hàng hiện hành khác với hàng trước nó, thì chúng ta sẽ xét các giá trị từ j từ 0 đến d-1 Tuy nhiên nếu hàng hiện hành bằng với hàng trước đó, chúng ta sẽ xét các giá trị j từ giá trị ô tướng ứng trước đó thêm một, cho đến giá trị d-1 (Điều này để đảm bảo hàng sau luôn có giá trị lớn hơn hàng trước đó)

ƒ Ta đặt lần lượt các giá trị j này vào, nếu như có bất kỳ bộ t

giá trị trong hàng hiện hành vượt quá tần suất tối đa cho phép thì giá trị j này vi phạm, ta xét cho các giá trị có thể khác của j (Xét cho j+1)

ƒ Nếu mỗi ô có nhiều hơn một giá trị có thể xem xét, cất các

giá trị này lên Stack

ƒ Lấy giá trị đầu tiên trên Stack ra, tiếp tục xét cho hàng kế

tiếp

o Khi đạt được đến hàng cuối cùng của cột, chúng ta sẽ có một ma trận trực giao mới có j cột, tuy nhiên nó phải là ma trận nhỏ nhất

Trang 34

Phan Hữu Trọng Hiền Trang 26

để có thể chấp nhận là lời giải Do đó chúng ta sẽ đảo cột này với các cột khác có cùng mức với nó, ma trận đảo được đó lại được sắp xếp để xem có phải là ma trận nhỏ nhất hay không Nếu là ma trận nhỏ nhất thì chúng ta sẽ chấp nhận nó như là một lời giải tìm

ra ở cột mới đó

Lưu ý rằng việc mô tả giải thuật mở rộng cột này bằng toán học khá phức tạp ([1]), riêng trong tài liệu này, chúng tôi đã cố gắng trình bày giải thuật này dưới dạng lời viết cô đọng, tóm tắt Để tìm hiểu kỹ càng hơn, chúng ta có thể xem trong [1]

4.2.2 Đặc tả giải thuật đếm sắp thứ tự

Sau khi đã tìm hiểu được giải thuật mở rộng cột, chúng ta sẽ xem xét đặc tả hình thức của giải thuật đếm sắp thứ tự ma trận như sau:

Tên giải thuật: Giải thuật đếm sắp thứ tự ma trận

Input: Kiểu thiết kế U, run size N, trọng t

Output: Tất cả các ma trận trực giao nhỏ nhất ứng với bộ thông số U, N, t Process:

o Gọi F j là ma trận trực giao có j cột, d là số cột của các ma trận cần tính

o Khởi tạo ma trận đầu tiên có t cột, có nghĩa là ta có F t

o Khởi tạo stack Branch rỗng

Trang 35

ƒ Nếu j=d thì ghi nhận K là một lời giải

o Trả về tất cả các lời giải có được

4.3 Các kết quả đã sinh ra bằng phương pháp sắp thứ tự ma trận

Bằng phương pháp sắp thứ tự ma trận, nhiều ma trận mới đã được tìm ra

([1]) Có nhiều kết quả nhưng tôi chỉ xin liệt kê ra đây một số rất ít kết quả của

các ma trận trực giao trọng 3 có run size lớn hơn 64 như sau:

Run size (N) Kiểu thiết kế Trọng của ma

trận

Số lớp đẳng cấu đếm được

Ngày đăng: 08/03/2021, 23:54

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w