Biểu diễn dữ liệu ảnh bằng cây R mô tả trên đây không cho khả năng tìm kiếm láng giềng gần nhất. Lý do là mỗi đối tƣợng o có chữ nhật liên kết Ro. Tuy nhiên, chữ nhật này là chữ nhật 2-d nhƣ chỉ ra trên hình 3.14. Cách biểu diễn này lƣu trữ các thuộc tính của mỗi đối tƣợng trong trƣờng “Data” của nó. Vì trƣờng “ Data” không đƣợc sử dụng để tạo ra chỉ số R-tree, có nghĩa rằng truy vấn trên cơ sở các trƣờng này là không hiệu quả, việc tìm kiếm láng giềng gần nhất trở nên nặng nề.
Có hai mở rộng không phức tạp về cây R có thể sử dụng để giải quyết vấn đề này. Thứ nhất dựa trên cơ sở khái niệm của cây R khái quát hoá (gR-Tree) mô tả dƣới đây. Thứ hai dựa trên cơ sở cây vectơ lồng nhau (telescoping vector tree) sẽ đƣợc mô tả sau:
Nhớ lại rằng đối tƣợng o có thể đƣợc biểu diễn bởi vùng trong không gian n+2 chiều, nơi mà mỗi đối tƣợng có n đặc trƣng và không gian hai chiều khác biểu
diễn chữ nhật bao đối tƣợng. Chữ nhật tổng quát hoá cho không gian có số chiều g (có thể coi g=n+2) đƣợc xác định bởi tập các ràng buộc sau:
l1 x1u1 l2 x2u2 …. lg xgug
Chú ý rằng khi g=2, và n=0, khi đó chữ nhật 2-d là trƣờng hợp đặc biệt của định nghĩa này.
Nếu bây giờ với tập đối tƣợng Obj, có thể biểu diễn tập đối tƣợng này bởi tập ràng buộc (n+2)-d. Cây R khái quát (gR-tree) bậc K hoàn toàn giống cây R trừ các hệ số sau đây.
Khi nút N biểu diễn chữ nhật bao khái quát hoá GBR (N) của số chiều (n+2), nó đƣợc biểu diễn bởi 2x(n+2) trƣờng số thực, cho cận dƣới và cận trên của mỗi chiều.
Khi nút N bị bẻ gãy, hợp nhất của chữ nhật bao khái quát hoá với con của chúng chữ nhật bao khái quát hoá kết hợp với N.
Mỗi nút (không phải là gốc và lá) chứa nhiều nhất k chữ nhật bao khái quát hoá và ít nhất [K/2] chữ nhật khái quát hoá.
Thông thƣờng, mọi chữ nhật (n+2)-d đƣợc lƣu trữ tại lá.
Do đó, cây gR đƣợc định nghĩa đúng nhƣ cây R, trừ khi các nút chứa tập các chữ nhật bao khái quát hoá thay cho tập các chữ nhật bao 2-d. Rõ ràng, cấu trúc của nút đƣợc mở rộng để mô tả cận trên và cận dƣới của (n+2)-d. Tìm kiếm láng giềng gần nhất có thể đƣợc thực hiện hiệu quả nhƣ sau đây.
Giả sử Rq là chữ nhật truy vấn (có thể biểu diễn đối tƣợng ảnh). Muốn tìm mọi chữ nhật trong cây gR có tên T mà nó gần Rq nhất (mức gần đƣợc xác định bởi thƣớc đo d trên các điểm). Thực hiện mở rộng thƣớc đo d để áp dụng vào chữ nhật nhƣ sau:
d(R,R’) = min{d(p,p’’)|pR, p’R’}
Thuật toán :
NN_Search_GR(T, Rq)SQL=NIL;(*cho đến bây giờ chƣa có giải pháp*); Todo=List containing T only;
Bestdist = (*khoảng cách của giải pháp tốt nhất từ Rq*) while Todo≠NIL do
{
F=first element of Todo; Todo=delete F from Todo; If d(GBR(F),RQ))<Bestdist then {
Computer children N1,…, Nr of F; If N1’s are leaves of T then
{Nmin=any Ni at mimimal distance from RQ; Ndist=d(GBR(N1), RQ));
If Ndist<Bestdist then {
Bestdist=Ndist; SOL=Nmin; }
}
else Todo=insert all N1’s into Todo order of distance from RQ; }
}
Return SOL; end