Về thuật toán đường thẳngđịnh hướng tìm bao lồi các điểm trong mặt phẳng

41 273 0
Về thuật toán đường thẳngđịnh hướng tìm bao lồi các điểm trong mặt phẳng

Đ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

bộ giáo dục đào tạo trờng đại học vinh ======= ======= hoàng thị ngân thuật toán đờng thẳng định hớng tìm bao lồi điểm mặt phẳng luận văn thạc sĩ toán học vinh-2007 giáo dục đào tạo trờng đại học vinh ======= ======= hoàng thị ngân thuật toán đờng thẳng định hớng tìm bao lồi điểm mặt phẳng chuyên ngành: hình học tôpô mà số : 60.46.10 luận văn thạc sĩ toán học Ng-ời hớng dẫn khoa học: Ts phan thành an vinh-2007 Môc lôc Môc lôc Mở đầu ChƯ¬ng KiÕn thøc c¬ së 1.1 TËp låi 1.2 Bao låi cña mét tËp 1.3 Điểm cực biên, cạnh cực biên 11 ChƯ¬ng ThuËt to¸n Graham 2.1 ThuËt to¸n Graham 13 2.2 VÝ dô 16 Chơng thuật toán đờng thẳng định hƯíng 3.1 Mét sè kh¸i niƯm 19 3.2 ThuËt to¸n 23 3.3 VÝ dô 26 3.4 So sánh thuật toán Graham thuật toán đờng thẳng định h ớng 29 3.5 Kết tính toán 31 KÕt luËn 32 Phô lôc 33 Phô lôc 36 Tài liệu tham khảo 39 mở đầu Hình học tính toán ngành häc cã øng dông rÊt réng r·i thùc tÕ đợc nhiều nhà khoa học quan tâm nh: Chand, Kapur, Preparata, Shamos, Graham, O' Rourke (xem [4], [5], [6] [7]), Cùng với việc nghiên cứu bao lồi, nhà khoa học đà tìm thuật toán hữu hiệu để tìm bao lồi cho tập hữu hạn điểm mặt phẳng Cụ thể năm 1970 Chand Kapur đà đa thuật toán "gói quà", năm 1972 Graham đà đa thuật toán "Graham" năm 1998 O' Rourke đà cải tiến thuật toán Graham Trong luận văn này, nghiên cứu thuật toán hiệu để xác định bao lồi tập hữu hạn điểm mặt phẳng TS Phan Thành An đa ra, dựa vào ý tởng phơng pháp đờng định hớng đà đợc GS.TSKH Hoàng Xuân Phú đề xuất năm 1987 để giải toán điều khiển tối u Bao lồi đợc xác định phần đ ờng thẳng định hớng đ ờng thẳng cuối Với tập hữu hạn điểm mặt phẳng thuật toán đà có thực nghiệm tốt thuật toán Graham Luận văn chứng minh chi tiết số tính chất liên quan, nêu ví dụ minh hoạ cho thuật toán này, So sánh thuật toán Graham thuật toán đờng thẳng định hớng Luận văn đợc chia làm ba chơng: Chơng Kiến thức sở Trong chơng này, hệ thống lại mét sè tÝnh chÊt quan träng cña tËp låi, bao lồi, điểm cực biên, cạnh cực biên Phát biểu trình bày lại chi tiết số định lý nhằm thuận lợi cho việc nghiên cứu chơng sau Chơng2 Thuật toán Graham Trong chơng mô tả lại thuật toán Graham, tìm bao lồi tập điểm mặt phẳng Bên cạnh đa ví dụ minh hoạ cho thuật toán Graham Chơng Thuật toán đờng thẳng định hớng Trong chơng trình bày thuật toán đờng thẳng định hớng tìm bao lồi tập hữu hạn điểm mặt phẳng (xem [4]) Cụ thể nội dung sau: 3.1 Mét sè tÝnh chÊt: MƯnh ®Ị 3.1.4 [4] không chứng minh chi tiết, luận văn chứng minh 3.2 Thuật toán đờng thẳng định h ớng: Trong [4] đà trình bày, phần trình bày chi tiết 3.3 Đa ví dụ cụ thể minh hoạ thuật toán 3.4 So sánh thuật toán Graham thuật toán đờng thẳng định h ớng thời gian tính toán độ xác thuật toán 3.5 Đ-a bảng kết tính toán cụ thể, thời gian chạy thuật toán số điểm cực biên trình chạy thuật toán Graham thuật toán đờng thẳng định h ớng cho điểm ngẫu nhiên với số l-ợng lớn Luận văn đợc hoàn thành dới hớng dẫn tận tình thầy giáo TS Phan Thành An Tác giả xin bày tỏ lòng biết ơn sâu sắc đến thầy, ngời đà trực tiếp hớng dẫn, dành cho tác giả giúp đỡ tận tình tâm huyết suốt trình học tập nhtrong thời kỳ hình thành hoàn thành luận văn Tác giả cảm ơn thầy giáo tổ hình học đà giảng dạy đóng góp ý kiến quý báu trình học tập hoàn thành luận văn Tác giả xin chân thành cảm ơn tới gia đình bạn bè đà dành cho tác giả giúp đỡ vô quý báu suốt trình học tâp Vinh, tháng 12 năm 2007 Tác giả Chơng Kiến thức sở Để thuận lợi cho việc nghiên cứu trình bày chơng sau Trong chơng này, hệ thống lại số tính chất quan trọng tập lồi, điểm cực biên, cạnh cực biên cđa bao låi 1.1 tËp låi Gi¶ sư E n không gian Ơclit n - chiều, tập số thực 1.1.1 Định nghĩa (xem [3]) Tập A En đợc gọi lồi nếu: x1 , x2  A ,  0, 1suy x1 (1 ) x2 A Chú ý: Theo định nghĩa, tập đợc xem tập lồi 1.1.2 Định nghĩa (xem [3]) Đoạn nối x1, x2 đợc định nghĩa nhsau: Với x1 , x2  En,  0, 1 x: x1 (1 ) x ;  x1 , x  : x  1  ;  x1 , x  : x  1  ;  x1 , x  : x  1  ;  x1 , x  : x  1  Ngoµi ra, ta ký hiƯu intA phần A, clA bao đóng A 1.1.3 NhËn xÐt (xem [3]) TËp A låi, nÕu:  x 1, x  A suy [x1 , x2 ]  A 1.1.4 VÝ dơ C¸c tam giác, hình tròn mặt phẳng tập lồi Hình cầu đơn vị không gian Banach tập lồi Các nửa không gian tập lồi 1.1.5 Mệnh đề (xem [3]) Giả sử A En (I) tập lồi, với I tập chØ sè bÊt kú Khi ®ã, tËp A =  A còng låi I Chøng minh LÊy x1 , x2  A Khi ®ã x1 , x2  A( I) Do A låi nªn ta cã x1 + (1- )x2  A, ( [0, 1] ) suy x1 + (1- )x2 A 1.1.6 Định nghĩa (xem [3]) x En đợc gọi tổ hợp lồi x1, x2, …, xm  E n nÕu tån t¹i  i 0 (i = 1, …, m), m m i 1 i 1 i 1 , cho x = i x i 1.1.7 Định lý (xem [3]) Giả sư A  En lµ tËp låi x 1, x2 , …, x m  A Khi ®ã víi i 0 (i = 1, 2, …, m), m i = th× i1 m ix i A i Chøng minh Ta chøng minh b»ng quy n¹p NÕu m = 2: Víi mäi 1, 2  0, 1 + 2 = 1; x1 , x A, theo định nghÜa 1.1.1 ta lu«n cã: 1x + 2 x2 A Giả sử khẳng định mệnh đề với m k, ta cần chứng minh khẳng định với m = k+1, nghĩa là: x 1, x 2, …, x k+1  A, i 0 (i = 1, 2, …, k + 1), k i = i1 x := 1x + + kxk + k+1x k+1 A Không tính tổng quát ta giả sử k+1 < (vì nÕu k+1 = suy 1, 2, …, k = th× ta cã x  A) Khi ®ã 1- k+1 = 1 +…+ k > 0, vµ i  (i = 1, , k) k 1 Do  1  = k i i1 k nên theo giả thiết quy nạp, ta có  k x   xk A y := 1   k k  Với điểm y A xk+1 A, ta cã 1- k+1 > 0, (1- k+1) + k+1 = 1, ®ã x = (1- k+1)y + k+1  A 1.1.8 MƯnh ®Ị (xem [6]) Giao cđa họ tập lồi tập lồi Chứng minh Giả sử Ai (i I) tập lồi §Ỉt A = i Ai I LÊy x1 , x2  A  x1, x2  Ai , i I Do Ai låi víi i  I, nªn ta cã: x + (1- )x2  Ai , [0,1] , i  I suy x + (1- )x2  A , [0,1] VËy A lµ tËp lồi 1.2 bao lồi tập 1.2.1 Định nghĩa (xem [7]) - Giao tất tập låi chøa A gäi lµ bao låi cđa A KÝ hiệu convA - Giao tất tập lồi đóng chứa A gọi bao lồi đóng A KÝ hiÖu conv A 1.2.2 NhËn xÐt (xem [7]) - convA tập lồi Đó tập lồi nhá nhÊt chøa A - A lµ tËp låi vµ chØ A = convA - convA lµ tËp lồi đóng Đó tập lồi đóng nhỏ chứa A 1.2.3 Mệnh đề (xem [7]) convA tập hợp tất tổ hợp lồi A Chứng minh Giả sử T tập tất tổ hợp lồi A Vì convA tập lồi (nhận xét 1.2.2) A convA nên theo (nhận xét 1.1.8) suy T  convA §Ĩ chøng minh convA  T trớc tiên ta chứng minh T tập lồi ThËy vËy, lÊy x; y  T, ®ã: x = i vµ y = iI jbj , ®ã ai, bj  A; i, j  I vµ jI i = 1, j = 1; i, j 0; i, j  I iI jI Víi 1, ta cã (1- )x + y = (1 )ia i + jbj iI mµ jI (1 )i + j = (1- ) i + jbj iI iI jI = (1- ) +  = jI (1 )i + jbj Do ®ã iI  T, jI (1- )x + y  T hay suy T låi Mặt khác A T mà convA tập lồi nhỏ chứa A nên convA T Vậy khẳng định mệnh đề Từ mệnh đề 1.2.3 ta suy kết sau 1.2.4 Bổ đề (xem [7]) TËp A lµ låi vµ chØ A chứa tất tổ hợp lồi 1.2.5 Mệnh đề (xem [7]) Nếu A tập lồi bao đóng clA A tập lồi Chứng minh Lấy x0 , x1 clA Đặt x := x0 + (1- )x (0 1) Gi¶ sư U lân cận lồi điểm Do x0, x  clA nªn (xi + U)  A  , (i = 0, 1) suy tån t¹i xi  (x i + U)  A (i = 0, 1) Đặt x = x0 + (1- )x 1, dÔ thÊy x ’  A x’0 , x’1  A Khi ®ã x i  (x0 + U) + (1- )(x + U) = x + U nªn (x + U)  A  Suy x  clA VËy clA lµ tËp låi 1.2.6 MƯnh đề (xem [7]) Nếu A B tập låi En th× conv(A B) = 0 1 { A + (1- )B} Chứng minh Đặt C : = 0 1 { A + (1- )B} ®ã víi x  A, y  B, 1, v× x, y thuéc tËp låi A  B nªn ta cã: 3.2.2 Thuật toán Sắp xếp điểm đà cho theo thứ tự giảm dần hoành độ đặt tên q0 : = a 2, q1 , , qn - 1: = b1 (nÕu c¶ hai cã cïng hoành độ điểm có tung độ nhỏ bỏ điểm cực biên) Gọi xq j , x p ' hoành ®é cđa ®iĨm qj vµ ®iĨm p' (p' = ab1 pl qj ) Điểm cực biên a Nên đặt l = 0, p0 = a2 XÐt pl i=1 2a if i n - then if qi bên phải ngặt tia pl qn - then j=i+1 if xq j xp ' then 2b if qj bên phải ngặt tia pl qi then i = j; q * = qj ; j = j + 1, go to 2b; else If q j bên trái ngặt tia plq i Then j = j + 1, goto 2b; else q * = q j; else goto else i = i + 1, goto 2a; else go to pl + = q*, l = l + 1, go to 2; S = {p0 , p1 , …, pl, q n - 1} STOP 26 b1 = qn-1 p' p'' a q* qj pl qi q = a2 = p0 xp' H×nh 7.3 xq j 3.3 VÝ dơ Trong [4] ®· cã vÝ dơ dïng tht toán này, tìm bao lồi tập điểm ngẩu nhiên với số điểm lớn (đến triệu điểm) thời gian tính toán nhanh hẳn so với thuật toán Graham Nhng ví dụ đa luận văn (với số điểm ít) nhằm minh hoạ thuật toán 3.2 lại nhanh xác thuật toán Graham Bài toán: Trong tam giác vuông ab1a2 có cạnh ab1 song song với trục hoành aa song song với trục tung cho điểm có toạ độ (7; 4), (5; 5), (-7; 12), (2; 10), (-1; 9), (4; 7), (-2; 11), (3; 9), (-4; 10), (9; 1), (6; 7) víi a2 (9, 1), b 1(-7, 12) HÃy tìm tập cạnh biên bao lồi convQ chứa tam giác vuông ab 1a2 Để tìm tập cạnh biên bao lồi convQ chứa tam giác vuông ab1a ta làm nhsau: Sắp xếp điểm đà cho theo thứ tự giảm dần hoành độ (nếu hai có hoành độ điểm có tung độ nhỏ bỏ đi) đặt a = q0, q1 , q2, q 3, q4 , q5 , q6, q 7, q8 , q9 , q10 = b1 27 Lóc ®ã q = (9; 1), q 1= (7; 4), q2 = (6; 7), q3 = (5; 5), q4 = (4; 8), q = (3; 9), q6 = (2; 10), q = (-1; 9), q8 = (-2; 11), q9 = (-4; 10), q10 = (-7; 12) = b1 §iĨm cùc biên a Nên đặt l = 0, p0 = a2 Nèi p0b1 kiÓm tra thÊy dt(p0 , b1, qi ) < nên tồn qi bên phải tia p0b1 Vậy p0b không đờng cuối qua p0 , có đờng thẳng định h ớng qua điểm p0 Tìm đờng định hưíng qua p0 + Nèi p 0q1 kiĨm tra thÊy dt(p 0, q 1, q2 ) < nªn q2 nằm bên phải tia p0q1 p0q1 không đờng định h ớng qua p0 , lúc đặt i = j j = j + ®Ó kiÓm tra tiÕp + Nèi p0q kiÓm tra thÊy dt(p0, q2 ,q 3) > nªn q3 n»m bên trái tia p0 q2 p0q đờng định h ớng qua p0 p0 q2 cạnh biên bao lồi Đặt p = q2, l = l + XÐt p Nèi p1 b1 kiÓm tra thÊy dt(p1, b1 , q i) < nên tồn q i bên phải tia p1b1 Vậy p1b không đờng cuối qua p1 , có đờng thẳng định hớng qua p1 Tìm đờng định hớng qua p1 + Nối p1q kiÓm tra thÊy dt(p1, q4, q 6) < nên q6 nằm bên phải tia p1 q4 p1 q4 không đờng định hớng qua p 1, lúc đặt i = j j = j + ®Ĩ kiĨm tra tiÕp + Nèi p1q5 kiÓm tra thÊy dt(p1, q 5, q6 ) < nên q nằm bên phải tia p1q p 1q5 không đờng định h ớng qua p1 lúc đặt i = j j = j + ®Ĩ kiĨm tra tiÕp 28 q10=b 1=p4 b' q8= p3 a b'' q6= p2 q9 q7 q4 q5 q2= p1 q3 q1 q0=a 2=p0 H×nh 8.3 + Nèi p1 q6 kiÓm tra thÊy dt(p1 ,q 6, q7) > nên q nằm bên trái tia p1 q6 p1q đ ờng định hớng qua p6 p1 q6 cạnh biên Đặt p2 = q6 , l = l + XÐt p2 Nèi p 2b kiÓm tra thÊy dt(p 2, b1 ,q i) < nên tồn q i bên phải tia p 2b1 Vậy p2b1 không ®ưêng cuèi qua p2 , sÏ cã mét ®ưêng th¼ng định h ớng qua điểm p2 Tìm đờng định hớng qua p2 Nèi p2q8 kiÓm tra thÊy dt(p 2, q8 , q9) > nên q9 nằm bên trái tia p2q8 p2q đờng định hớng qua p2 p2q cạnh biên Đặt p = q8 , l = l + 29 XÐt p3 Nèi p3 b kiÓm tra thÊy dt(p3 , b1, qi ) > nªn p 3b1 đờng thẳng cuối p3b1 cạnh biên Vậy {[p 0, p 1], [p1, p2 ], [p 2, p3]} tập cạnh biên bao lồi convQ chứa tam giác vuông ab1a2 , xem (Hình 8.3) 3.4 so sánh thuật toán graham thuật toán đờng thẳng định hớng Với tập điểm đà cho mặt phẳng thuật toán mà xét có thời gian tính toán bé xác thuật to¸n Graham 3.4.1 Thêi gian tÝnh to¸n + ThËt vËy với thuật toán 3.2 - Cho Q tập n điểm mặt phẳng để xác định convQ xét điểm bốn tam giác vuông ab1a 2, bc2b 2, cd2 c1, da1 d1 điểm rơi bên tam giác vuông đoạn më ]a 2, b1 [, ]b 2, c2 [, ]c 1, d2[ ]d 1, a1[ không điểm cực biên convQ nhvậy ta bỏ qua không cần phải xét, xem (Hình 1.2) - Trong trình tìm bao lồi, kiểm tra xem plb1 có phải đ ờng thẳng cuối hay không, đờng thẳng cuối ta tìm đ ờng thẳng định hớng việc thử với điểm bên phải đờng thẳng plb điểm bên trái ta bỏ qua không cần phải thử tiếp, xem (Hình 8.3) - Nếu kiểm tra có đ ờng thẳng cuối q 8b1, xem (Hình 8.3) thuật toán dừng lại thử tiếp điểm lại - Khi tìm đ ờng định hớng ta cần tìm điểm miền có hoành độ từ hoành độ p' đến hoành độ p '', điểm rơi bên miền bỏ qua, xem (Hình 7.3) 30 + Với thuật toán Graham : - Cho Q tập n điểm mặt phẳng để xác định convQ ta phải kiểm tra hết tất điểm xem có phải điểm cực biên hay không thuật toán chạy chậm thuật toán 3.2 3.4.2 Độ chÝnh x¸c cđa tht to¸n + Víi tht to¸n 3.2: Khi thứ tự điểm tam giác vuông xếp dựa sở so sánh hoành độ, dùng công thức hàm left, nên không gây sai số trình tính toán, dẫn đến bao lồi lấy xác + Với thuật toán Graham: Khi thứ tự điểm mặt phẳng dùng công thức hàm left gây sai số xảy ra.Thể ở: - Hiện tợng tràn số: Nhchúng ta đà biết miền nguyên C khoảng từ -32768(-215) đến 32767(215 -1), dÃy số nguyên không dấu từ đến 65535(216 -1) - Hiện tợng - : Trong lập trình để tính toán xác định vị trí điểm bên trái hay bên phải đờng thẳng xảy t ợng - Lúc máy tính cho kết sau: (-), (+) Nghĩa là, diện tích tam giác lớn 0, bé Từ lý xếp điểm theo góc, nhờ c«ng thøc 2dt(a, b, c) = (b - a0)(c1 - a1 ) - (c0 - a0 )(b - a 1) để xác định, công thức có phép nhân phép trừ hai số nguyên Phép nhân vợt qua miền giới hạn trờng số nguyên, phép trừ gây t ợng sai số Do phép toán gây sai số trình tính toán nói riêng nhtrong lập trình nói chung Nên với 31 thuật toán Graham lập trình tìm bao lồi tập hữu hạn điểm cho kết không xác 3.5 Kết tính toán Kết tính toán sau đà lập trình ngôn ngữ C, so sánh với thuật to¸n Graham ta dïng mét phÐp thùc hiƯn cđa tht toán Graham viết O'Rourke [6] Trong phần ch ơng trình biên soạn GNU C chạy hệ điều hành SuSe Linux 10.0 tiến hành xử lý Pentium IV Thời gian (trung bình 100 lần chạy) cần tính toán bao lồi với tập có hai ®iĨm b 1, a vµ n - ®iĨm với vị trí ngẫu nhiên nằm phần tam giác vuông ab1a2 có cỡ 1000 Thuật toán chạy nhanh thuật toán Graham -Số điểm Số điểm Thời gian Thời gian nhập vào cực biên Thuật toán Thuật toán Graham chạy ch¹y n -10 0.0000109 0.0000043 100 17 0.000044 0.0000169 1000 42 0.0007572 0.0002586 10000 100 0.0157512 0.0037472 100000 163 0,2345876 0,103567 -Sè liÖu chi tiết đợc cho phần phụ lục Phụ lục 1: Thùc thi tht to¸n Graham cđa J.O ' Rourke Phơ lục 2: Thực thi thuật toán đ-ờng thẳng định h-ớng TS Phan Thành An 32 Kết luận Luận văn đà thu đợc kết sau: Trình bày chi tiết thụât toán Graham tìm bao lồi tập điểm mặt phẳng Đa ví dụ cụ thể minh hoạ cho thuật toán Trình bày chi tiết thuật toán đờng thẳng định hớng ®ư a vÝ dơ thĨ minh ho¹ cho thuật toán Chứng minh số tính chất thuật toán đờng thẳng định hớng So sánh thuật toán Graham thuật toán đờng thẳng định hớng, thời gian tính toán độ xác Chạy thuật toán cho điểm ngẫu nhiên víi sè lư ỵng lín Trong thêi gian tíi chóng dùng ý t ởng thuật toán đ ờng thẳng định hớng tìm bao lồi họ hữu hạn điểm không gian ba chiều 33 Phụ lục thùc thi tht to¸n Graham cđa j.O' ruorke Thùc thi thuật toán J.O'Ruorke đ-a trình bày [6] Number of tests = 10: Running time (take an average) of graham.c (Joseph O'Rourke) is 0.000010900 seconds Number of points squashed After sorting and then squash: number of points is 12 %%Creator: graham.c (Joseph O'Rourke) 10000 21 9999 3872 9289 7455 7498 8147 6789 10000 closepath stroke % Number of points on the convex hull = -Number of tests = 10: Running time (take an average) of graham.c (Joseph O'Rourke) is 0.000044000 seconds Number of points squashed After sorting and then squash: number of points is 102 %%Creator: graham.c (Joseph O'Rourke 10000 8778 5903 21 9999 8874 5714 3496 9622 9235 4960 5454 8913 9466 4313 6375 8374 9827 2644 7408 7579 9891 2079 8038 6918 9979 972 8147 6789 10000 8751 5945 closepath stroke % Number of points on the convex hull = 17 Number of tests = 10: Running time (take an average) of graham.c (Joseph O'Rourke) is 0.000757200 seconds Number of points squashed After sorting and then squash: number of points is 1002 %%Creator: graham.c (Joseph O'Rourke) 10000 7690 7305 9129 5227 9893 2093 21 9999 7807 7179 9235 4960 9932 1723 1557 9911 8038 6918 9312 4765 9944 1569 2755 9767 8160 6776 9409 4498 9958 1371 3496 9622 8348 6545 9466 4313 9970 1169 5344 8977 8396 6480 9541 4060 9979 972 6422 8384 8452 6402 9562 3981 9989 654 6982 7953 8686 6057 9680 3488 9992 513 7206 7769 8809 5854 9757 3094 10000 7378 7617 8999 5501 9830 2643 7540 7459 9059 5377 9853 2466 closepath stroke 34 % Number of points on the convex hull = 42 -Number of tests = 10: Running time (take an average) of graham.c (Joseph O'Rourke) is 0.015751200 seconds Number of points squashed 23 After sorting and then squash: number of points is 9979 %%Creator: graham.c (Joseph O'Rourke) 10000 7600 7399 8958 5583 9803 2825 1014 9971 7699 7297 9018 5464 9830 2643 1875 9899 7761 7232 9083 5327 9859 2429 2268 9850 7811 7178 9120 5247 9865 2380 2705 9787 7892 7090 9129 5227 9882 2239 3034 9720 7910 7070 9215 5026 9883 2230 3496 9622 7954 7021 9227 4997 9901 2066 3985 9482 7984 6987 9266 4898 9915 1922 4506 9318 8046 6916 9289 4839 9931 1741 5164 9069 8098 6855 9311 4780 9933 1718 5600 8865 8162 6779 9351 4669 9943 1597 5943 8671 8265 6652 9382 4580 9946 1554 6363 8420 8294 6615 9406 4510 9958 1371 6422 8384 8348 6545 9439 4408 9968 1212 6430 8379 8410 6462 9492 4233 9970 1169 6532 8308 8470 6380 9512 4165 9975 1061 6631 8235 8552 6262 9558 3999 9979 972 6890 8038 8598 6194 9583 3903 9984 857 7058 7905 8642 6127 9592 3868 9990 685 7151 7824 8716 6010 9628 3718 9992 602 7292 7698 8756 5944 9663 3570 9994 511 7350 7644 8788 5891 9698 3403 9995 462 7414 7584 8852 5779 9725 3269 9997 344 7494 7506 8881 5727 9749 3141 9999 196 7566 7434 8929 5638 9760 3081 10000 closepath stroke % Number of points on the convex hull = 100 Number of tests = 10: Running time (take an average) of graham.c (Joseph O'Rourke) is 0.234587600 seconds Number of points squashed 1785 After sorting and then squash: number of points is 98217 %%Creator: graham.c (Joseph O'Rourke) 10000 4072 9470 6045 8622 7423 7576 376 9990 4232 9420 6237 8505 7458 7542 970 9973 4510 9328 6323 8451 7568 7432 1014 9971 4616 9290 6430 8379 7619 7380 1211 9960 4710 9255 6532 8308 7675 7322 1454 9940 4761 9236 6636 8235 7699 7297 1736 9914 4867 9196 6767 8139 7742 7252 1875 9901 4981 9150 6856 8070 7761 7232 2092 9875 5124 9088 6957 7989 7791 7200 2268 9850 5227 9043 7018 7939 7828 7160 2705 9787 5486 8922 7129 7845 7840 7147 3191 9691 5600 8865 7182 7799 7873 7111 3287 9670 5915 8695 7247 7741 7914 7066 3641 9589 5987 8656 7372 7625 7965 7009 8010 6958 8881 5728 9517 4149 9860 2423 8050 6912 8896 5700 9526 4117 9879 2266 8068 6891 8927 5642 9536 4081 9893 2142 8103 6850 8952 5595 9553 4019 9898 2097 35 8129 6819 8167 6773 8200 6733 8265 6652 8287 6624 8294 6615 8346 6548 8385 6496 8450 6408 8485 6359 8524 6303 8533 6290 8564 6245 8583 6217 8605 6184 8624 6155 8657 6104 8684 6062 8718 6007 8742 5968 8769 5923 8800 5871 8833 5813 closepath stroke % Number of points 9003 9043 9058 9091 9114 9124 9180 9219 9238 9246 9275 9310 9341 9361 9374 9402 9406 9432 9439 9453 9461 9484 9495 5495 5413 5382 5311 5261 5239 5111 5017 4970 4950 4876 4784 4699 4642 4604 4522 4510 4430 4408 4363 4337 4262 4225 9561 9571 9591 9599 9627 9631 9646 9663 9688 9698 9711 9729 9733 9740 9758 9772 9777 9801 9817 9822 9841 9848 9855 3989 3951 3873 3841 3726 3709 3645 3570 3454 3406 3342 3251 3230 3192 3094 3014 2985 2838 2734 2701 2565 2514 2462 on the convex hull = 163 36 9911 1968 9919 1883 9922 1849 9934 1712 9941 1623 9943 1597 9953 1457 9954 1442 9964 1285 9968 1212 9974 1097 9978 1013 9979 991 9986 809 9989 721 9991 657 9993 577 9995 489 9997 383 9998 307 9999 211 10000 Phô lôc thùc thi thuật toán TS Phan Thành an Number of tests = 10: Running time (take an average) of the new code is Number of extreme points = Number of points after sorting = 12 %%Creator: P T An, 17 May 2007 at Ba Vi Convex positioned in a triangle 10000 8147 6789 7455 7498 3872 9289 21 9999 10000 Number of tests = 10: Running time (take an average) of the new code is Number of extreme points = 17 Number of points after sorting = 102 %%Creator: P T An, 17 May 2007 at Ba Vi Convex positioned in a triangle 10000 8874 5714 9979 972 8778 5903 9891 2079 8751 5945 9827 2644 8147 6789 9466 4313 8038 6918 9235 4960 7408 7579 Number of tests = 10: Running time (take an average) of the new code is Number of extreme points = 42 Number of points after sorting = 937 %%Creator: P T An, 17 May 2007 at Ba Vi Convex positioned in a triangle 10000 9541 4060 9992 513 9466 4313 9989 654 9409 4498 9979 972 9312 4765 9970 1169 9235 4960 9958 1371 9129 5227 9944 1569 9059 5377 9932 1723 8999 5501 9893 2093 8809 5854 9853 2466 8686 6057 9830 2643 8452 6402 9757 3094 8396 6480 9680 3488 8348 6545 9562 3981 8160 6776 0.000004300 seconds hull for points 0.000016900 seconds hull for points 6375 5454 3496 21 8374 8913 9622 9999 10000 0.000258600 seconds hull for points 8038 7807 7690 7540 7378 7206 6982 6422 5344 3496 2755 1557 21 6918 7179 7305 7459 7617 7769 7953 8384 8977 9622 9767 9911 9999 10000 Number of tests = 10: Running time (take an average) of the new code is 0.003747200 seconds Number of extreme points = 100 Number of points after sorting = 5544 %%Creator: P T An, 17 May 2007 at Ba Vi Convex hull for points positioned in a triangle 37 10000 9999 196 9997 344 9995 462 9994 511 9992 602 9990 685 9984 857 9979 972 9975 1061 9970 1169 9968 1212 9958 1371 9946 1554 9943 1597 9933 1718 9931 1741 9915 1922 9901 2066 9883 2230 9882 2239 9865 2380 9859 2429 9830 2643 9803 2825 9760 3081 9749 9725 9698 9663 9628 9592 9583 9558 9512 9492 9439 9406 9382 9351 9311 9289 9266 9227 9215 9129 9120 9083 9018 8958 8929 8881 3141 3269 3403 3570 3718 3868 3903 3999 4165 4233 4408 4510 4580 4669 4780 4839 4898 4997 5026 5227 5247 5327 5464 5583 5638 5727 8852 8788 8756 8716 8642 8598 8552 8470 8410 8348 8294 8265 8162 8098 8046 7984 7954 7910 7892 7811 7761 7699 7600 7566 7494 7414 5779 5891 5944 6010 6127 6194 6262 6380 6462 6545 6615 6652 6779 6855 6916 6987 7021 7070 7090 7178 7232 7297 7399 7434 7506 7584 7350 7292 7151 7058 6890 6631 6532 6430 6422 6363 5943 5600 5164 4506 3985 3496 3034 2705 2268 1875 1014 7644 7698 7824 7905 8038 8235 8308 8379 8384 8420 8671 8865 9069 9318 9482 9622 9720 9787 9850 9899 9971 10000 Number of tests = 10: Running time (take an average) of the new code is 0.010356700 seconds Number of extreme points = 163 Number of points after sorting = 9184 %%Creator: P T An, 17 May 2007 at Ba Vi Convex hull for points positioned in a triangle 10000 9893 2142 9591 3873 9180 5111 9999 211 9879 2266 9571 3951 9124 5239 9998 307 9860 2423 9561 3989 9114 5261 9997 383 9855 2462 9553 4019 9091 5311 9995 489 9848 2514 9536 4081 9058 5382 9993 577 9841 2565 9526 4117 9043 5413 9991 657 9822 2701 9517 4149 9003 5495 9989 721 9817 2734 9495 4225 8952 5595 9986 809 9801 2838 9484 4262 8927 5642 9979 991 9777 2985 9461 4337 8896 5700 9978 1013 9772 3014 9453 4363 8881 5728 9974 1097 9758 3094 9439 4408 8833 5813 9968 1212 9740 3192 9432 4430 8800 5871 9964 1285 9733 3230 9406 4510 8769 5923 9954 1442 9729 3251 9402 4522 8742 5968 9953 1457 9711 3342 9374 4604 8718 6007 9943 1597 9698 3406 9361 4642 8684 6062 9941 1623 9688 3454 9341 4699 8657 6104 9934 1712 9663 3570 9310 4784 8624 6155 9922 1849 9646 3645 9275 4876 8605 6184 9919 1883 9631 3709 9246 4950 8583 6217 9911 1968 9627 3726 9238 4970 8564 6245 9898 2097 9599 3841 9219 5017 8533 6290 8524 6303 7840 7147 6767 8139 4510 9328 8485 6359 7828 7160 6636 8235 4232 9420 8450 6408 7791 7200 6532 8308 4072 9470 8385 6496 7761 7232 6430 8379 3641 9589 38 8346 8294 8287 8265 8200 8167 8129 8103 8068 8050 8010 7965 7914 7873 6548 6615 6624 6652 6733 6773 6819 6850 6891 6912 6958 7009 7066 7111 7742 7699 7675 7619 7568 7458 7423 7372 7247 7182 7129 7018 6957 6856 7252 7297 7322 7380 7432 7542 7576 7625 7741 7799 7845 7939 7989 8070 6323 6237 6045 5987 5915 5600 5486 5227 5124 4981 4867 4761 4710 4616 39 8451 8505 8622 8656 8695 8865 8922 9043 9088 9150 9196 9236 9255 9290 3287 3191 2705 2268 2092 1875 1736 1454 1211 1014 970 376 9670 9691 9787 9850 9875 9901 9914 9940 9960 9971 9973 9990 10000 tài liệu tham khảo Tiếng Việt [1] Phan Thành An (2005 - 2007), Bài giảng môn hình học tính toán cho cao học, Viện Toán học, Hà Nội [2] Nguyễn Hữu Điển (2005), Một số chuyên đề hình học tổ hợp, Nhà xuất Giáo dục [3] Đỗ Văn Lu Phan Huy Khải (2000), Giải tích lồi, Nhà xuất khoa học kỹ thuËt, Hµ Néi TiÕng Anh [4] P.T.An (2006), An efficient algorithm for determining the convex hull of a finite set of points in the plane, Preprint 06/21, Hanoi Institute of Mathematics, submitted [5] P.T.An (2007), A modification of Graham's algorithm for determining the convex hull of a finite planar set, Annales Mathematicae et Informaticae, Vol 34, in press [6].J.O ' Rourke (1998), Computional Geometry in C, Camberidge University Press, Second Edition [7] F.A.Valentine(1964), Convex Sets, Mc Graw-hill, New York [8] S.R.Lay (1982), Convex Sets And Their Applications, John Wiley & Sons 40 ... Graham, tìm bao lồi tập điểm mặt phẳng Bên cạnh đa ví dụ minh hoạ cho thuật toán Graham Chơng Thuật toán đờng thẳng định hớng Trong chơng trình bày thuật toán đờng thẳng định hớng tìm bao lồi tập... 13 CHƯƠNG THUậT TOáN GRAHAM Trong chơng mô tả lại thuật toán Graham, tìm bao lồi tập điểm mặt phẳng (xem [5]) Bên cạnh đa ví dụ minh hoạ thuật toán Graham 2.1 THUậT TOáN GRAHAM Bài toán: Cho... nghiên cứu bao lồi, nhà khoa học đà tìm thuật toán hữu hiệu để tìm bao lồi cho tập hữu hạn điểm mặt phẳng Cụ thể năm 1970 Chand Kapur đà đa thuật toán "gói quà", năm 1972 Graham đà đa thuật toán "Graham"

Ngày đăng: 15/12/2015, 07:13

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan