Mã hóa Prufer 56

Một phần của tài liệu Đánh giá hiệu quả của giải thuật di truyền giải bài toán cây khung truyền thông tối ưu với các kỹ thuật mã hóa cây (Trang 57 - 60)

M ục đích nghiên cứu, đố it ượ ng, phạm vi nghiên cứ u 12 

3.2.1Mã hóa Prufer 56

Caley (1889) đã chỉ ra rằng đồ thị đầy đủ n nút có nn-2cây khung phân biệt. Với giả thiết này Prufer (1918) đã giới thiệu một ánh xạ 1- 1 tương ứng giữa một cây khung và một chuỗi số có độ dài n-2 số, với n là sốđỉnh của cây khung. Chuỗi số này

được gọi là chuỗi số Prufer, và mỗi một cây được biểu diễn tương ứng với một chuỗi sốPrufer. Do đó phương pháp này được xem như một cách mã hóa cây.

Để thực hiện mã hóa và giải mã chuỗi Prufer ta gán nhãn các đỉnh trên cây khung từ 1 tới n.

57

+ Thuật toán mã hóa một cây khung thành một chuỗi Prufer:

Bước 1: Lấy nút i là nút lá có nhãn nhỏ nhất trong số các nút có bậc là 1.

Bước 2: Lấy j là một nút kết nối với i (có chính xác một nút j), cho nút j vào bên phải chuỗi sốPrufer.

Bước 3: Xóa nút i và liên kết (i,j) từ cây và lúc này cây còn n-1 nút.

Bước 4: Quay lại bước 1 cho đến khi cây còn hai nút (có nghĩa là chỉ còn một liên kết).

Sau khi kết thúc thuật toán chúng ta có chuỗi số Prufer với n-2 số mà nó biểu diễn một cây.

Ví dụ:

P: Là chuỗi sốprufer

Hình 3.3- Cây khung được mã hóa thành chuỗi Prufer 2565

1 2 3 4 5 6 1 2 3 4 5 6 P=2 1 2 3 4 5 6 P=25 1 2 3 4 5 6 P=256 1 2 3 4 5 6 P=2565

58

Với cây khung trong hình 3.3, các nút có bậc là 1 bao gồm: 1, 3, 4. Trong đó 1 là nhãn nhỏ nhất, kề với nút 1 là nút 2. Theo thuật toán: Đầu tiên chuỗi số Prufer bắt

đầu bằng nút 2. Sau đó, loại bỏ nút 1 và cạnh (1,2) ra khỏi cây, tiếp tục quá trình. Các nút bậc 1 bây giờ là 2, 3, 4. Trong đó 2 là nhãn nhỏ nhất, liên kết với nút 2 là nút 5. Ta thêm 5 bên phải vào chuỗi sốPrufer. Cứ tiếp tục như vậy, ta có kết quả chuỗi Prufer là 2565.

+ Thuật toán xây dựng một cây từ một sốPrufer

Bước 1: Lấy P là một chuỗi sốPrufer với n- 2 số (với mỗi số là tương ứng với mỗi đỉnh của cây). P1 là tập nhãn của các đỉnh mà không có trong Pđược sử dụng cho việc xây dựng cây.

Bước 2: Lấy nhãn i trong P1 có giá nhỏ nhất và j là số bên trái nhất của P. Bước 3: Chọn liên kết (i,j) làm cạnh cho cây. Xóa i từP1j từ P. Nếu nhãn j

không còn xuất hiện ở bất kỳ vị trí nào trong P thì đặt j vào P1.

Bước 4: Lặp lại Bước 1 đến Bước 3 cho đến khi không còn số nào trong P. Bước 5: Nếu không còn số nào trong P, lúc này có chính xác 2 nút rs trong

P1. Thêm liên kết (r,s) trong cây. Ta được cây n-1 liên kết.

Ban đầu ta có chuỗi Prufer : P= 2565, và P1={1,3,4}. Vòng lặp đầu tiên, => thêm cạnh vào cây, đánh dấu 1 không còn là "nhãn thích hợp", xoá 2 khỏi , lúc này P=565. Vì 2 không xuất hiện trong lần nào nữa nên cho 2 vào tập P1, lúc này P1={2,3,4} . Vòng lặp thứ 2, => thêm cạnh , xoá 5 ra khỏi , lúc này P=65. Tiếp tục ta thu được kết quả là cây nhưHình 3.3.

+ Một sốđặc điểm mã hóa Prufer

Mã hóa với số Prufer trình bày được tất cả các cây tương ứng đồ thị. Ngoài ra nó còn mang thông tin về bậc các đỉnh, với một đỉnh có bậc là d thì sẽ xuất hiện chính xác

59

trong số Prufer d-1 lần, có nghĩa là khi một nút xuất hiện d lần trong chuỗi số Prufer

thì có d+1 kết nối đến các nút khác.

Số Prufer thích hợp cho việc mã hóa cây khung, đặc biệt là trong lĩnh vực nghiên cứu, như bài toán vận chuyển, bài toán cây khung. Với mã hóa độ dài n-2 và kích thước không gian tìm kiếm là nn-2, mối quan hệ giữa cây khung và số Prufer là ánh xạ 1-1. Vì vậy nó dễ dàng kiểm soát những nút là được mã hóa hoặc không mã hóa trong biểu diễn di truyền bằng sử dụng mã hóa sốPrufer.

Tuy nhiên nhược điểm lớn nhất của mã hoá Prufer là tính cục bộ thấp. Tức là một thay đổi nhỏ trong sốPrufer cũng có thể gây ra nhưng biến đổi lớn trong cây được biểu diễn. Điều này có nghĩa ánh xạ kiểu gen- kiểu hình là bất định. Do đó thao tác đột biến không làm việc trên một khu vực láng giềng cục bộ xung quanh một cá thể và con cháu thì không thể kế thừa những đặc tính của cha mẹ chúng. Tính chất này ảnh hưởng xấu tới chất lượng lời giải của giải thuật khi sử dụng chuỗi Prufer [26]. (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Đánh giá hiệu quả của giải thuật di truyền giải bài toán cây khung truyền thông tối ưu với các kỹ thuật mã hóa cây (Trang 57 - 60)