5 Kết luận và hướng phát triển
4.8 Xây dựng HTA từ trên xuống
sẽ sinh ba HTA như chỉ ra trong Hình 4.7
Xây dựng từ trên xuống
Phương pháp bắt đầu từ mức đỉnh và lần lượt xây dựng mỗi phần chia. Cách tiếp cận này linh động hơn cách tiếp cận từ dưới lên ở chỗ nó cho phép tạo ra cả HTA đồng nhất và không đồng nhất. HTA được tạo ra từ trên xuống bằng đệ quy. Đầu tiên, một HTA rỗng được tạo. Muốn tạo HTA rỗng dùng hàm tạo: hta(size0, size1, . . . , sized−1)
Trong hàm tạo trên, các tham số chỉ ra kích thước mỗi chiều của mức đỉnh của HTA. Sau khi HTA mức đỉnh rống được tạo, mỗi miếng lợp của nó có thể được khởi tạo để chứa hoặc HTA hoặc một ma trận. Trước khi trình bày ví dụ về cách tạo HTA từ trên xuống, cần phải mô tả cách đánh địa chỉ các miếng lợp trong một HTA. Các miếng lợp ngoài cùng có thể đánh địa chỉ bằng chỉ số dưới trong dấu ngoặc đơn. Một tập thêm các chỉ số dưới nên được thêm vào với mỗi mức cần đánh địa chỉ của HTA. Hình 4.8 mô tả trừu tượng quá trình tạo HTA theo cách từ trên xuống.
Cách tạo HTA từ trên xuống được ưa thích hơn cho chương trình song song, vì nó không đòi hỏi toàn bộ mảng được cấp phát trước khi HTA được tạo; mỗi vi xử lí có thể chỉ cần cấp phát miếng lợp nó chứa. Thêm nữa, cách này còn cho phép tạo ra cả HTA đồng nhất lẫn không đồng nhất theo cách tương tự nhau.
Hàm tạo HTA đặc biệt
Vì HTA đồng nhất được dùng rộng rãi nhất, hàm tạo sinh HTA đồng nhất mọi mức được xây dựng. Hàm tạo chỉ có các tham số là kích thước các miếng lợp ở mỗi mức của sự phân cấp:
C =hta((d0, d1, . . . , dd−1)0, . . . ,(d0, d1, . . . , dd−1)l));
Mỗi tham số của hàm tạo trên là một tuple kích thướcd. Tham số i chỉ kích thước miếng lợp ở mức i.
4.2 Định nghĩa đại số mới cho cấu trúc dữliệu HTA liệu HTA
4.2.1 Định nghĩa
Như phần trên đã trình bày cơ bản về cấu trúc dữ liệu HTA, tuy nhiên các cách khởi tạo cho HTA đã đưa ra là rất khó khăn trong việc xây dựng nên các cấu trúc khung. Vì theo phương pháp sử dụng lý thuyết Tính toán trên giải thuật thì các cấu trúc dữ liệu phải được biểu diễn theo đại số, và thứ hai cũng là điểm quan trọng nhất chính là cách biểu diễn đại số phải thể hiện được khả năng song song hóa khi thực thi. Luận văn đã đi sâu nghiên cứu và đề xuất một định nghĩa đại số mới cho cấu trúc dữ liệu HTA như sau:
data HTAβ = Mat β
| Tile (HTA β)
| (HTA β) (HTA β)
| (HTA β) (HTA β)
Trong đólà hàm tạobeside, để thể hiện hai HTA bên cạnh nhau theo chiều ngang.là hàm tạo above, thể hiện hai HTA bên cạnh nhau theo chiều dọc. Đơn vị nhỏ nhất của một HTA là một ma trận, hay còn gọi là một phần tử