English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

სტუმარი
1 / ?
უკან გაკვეთილებზე

ჰამინგის გეომეტრიული ინტუიცია

ჰამინგი გეომეტრიას ხედავდა ყველგან

ჰამინგის 9-ე თავი გაფრთხილებით იწყება: გეომეტრიული ინტუიცია რღვევა მაღალ განზომილებებში. 3D-ში, სფერო შემცველი კუბის მოცულობის უმეტესობას იკავებს. 10D-ში, სფერო კუბის მოცულობის 0.2%-ზე ნაკლებს იკავებს. 100D-ში, წილი ნულამდე მრგვალდება. მოცულობა თეთრეულის მახლობლად კონცენტრირდება. წერტილები კუთხეების მახლობლად, არა ცენტრში გროვდება.


მისი გასწორების კოდები ამ გეომეტრიას პირდაპირ გამოიყენა. ჰამინგის კოდები კოდური სიტყვებს n-განზომილებიან ბინარულ სივრცეში ისე უფუთა, რომ ყველა კოდური სიტყვი გასწორების შესაძლო შეცდომების სფერით აკრეფილი იყო. გეომეტრია განსაზღვრავს, რამდენი შეცდომის გასწორება შეგიძლიათ. n-სივრცეში სფეროების შეფუთვა მათემატიკური პრობლემა რეალური ფსონით: უფრო მჭიდროდ აფუთი სფეროები, უფრო მეტი შეცდომის გასწორება.


იგივე გეომეტრიული ჯამის რეჟიმი ალგორითმული სირთვეზეც გამოიყენება. მცირე N-ზე, O(N²) და O(N) გრაფიკზე თითქმის ერთნაირი ჩანს. მათ შორის უფსკელი მართვადი ჩანს. დიდ N-ზე, უფსკელი აფეთქდება — ზუსტად ისე, როგორც სფეროს მოცულობის წილი მაღალ განზომილებებში ინგრევა. რა ვერცხლისფერი ჯობდა მცირე მასშტაბით, იქ მასშტაბით შეუძლებელი ხდება.

თითოეული სირთვის კლასის ფორმა

სირთვის დახაზვა

სირთვის ყველა კლასს აქვს გეომეტრიული ფორმა:


- O(1): ჰორიზონტალური ხაზი. იგივე ღირებულება რეგარდლესი N-ისა. არა დახრა.

- O(log N): რბილი ზემოწევის მრუდი, რომელიც ბრტყელდება. ორმაგი ყოველ ჯერზე როდესაც N კვადრატი. იზრდება N-ის ციფრების რაოდენობის პროპორციულად.

- O(N): დიაგონალური ხაზი წარმოშობის მეშვეობით. ღირებულება იზრდება N-ის პროპორციულად.

- O(N log N): ოდნავ უფრო ციცაბო დიაგონალი. ხაზი, რომელიც ძალიან რბილად მრუდეს ზემოთ.

- O(N²): პარაბოლა. N=100-ზე: 10,000 ოპერაცია. N=1,000-ზე: 1,000,000 ოპერაცია.


სირთვის ზრდის მრუდები


კრიტიკული აზრი: ორი სირთვის კლასს შორის თანაფარდობა თავისთავად N-ის ფუნქციაა. N=10-ზე, O(N²) O(N)-ზე 10× მეტი ღირს. N=1,000-ზე, O(N²) 1,000× მეტი ღირს. N=1,000,000-ზე, 1,000,000× მეტი ღირს. უფსკელი არა რომ იზრდება — ის N-ის მაჩვენებლით იზრდება.


ეს არის გეომეტრიული არგუმენტი იმისთვის, რატომ აქვთ მნიშვნელობა MOAD-0001 პაচები. დამოკიდებულების გაწერის გადაყვანა O(N²)-დან O(N)-ზე არ არის მუდმივი სწრაფი სქემა. N=50,000 პაკეტში, ეს არის 50,000× სწრაფი სქემა. N=100,000-ზე, ეს არის 100,000× სწრაფი სქემა. პაჩის მნიშვნელობა პრობლემის ზომას იზრდება.

სიგანე უფსკელი

O(N²) და O(N) ორივე სწორ შედეგებს აწარმოებს.

N=10-ზე: O(N²) 100 ოპერაციის ღირს, O(N) 10 ოპერაციის ღირს. თანაფარდობა: 10×.

N=1,000-ზე: O(N²) 1,000,000 ოპერაციის ღირს, O(N) 1,000 ოპერაციის ღირს.

N=1,000-ზე O(N²) რამდენჯერ უფრო ნელია O(N)-ზე შედარებით? რა გეომეტრიული ფორმა აღწერს ამ ორი მრუდს შორის უფსკელის სიგანეს N-ის აღმატებამდე?

გრაფიკები როგორც გეომეტრია

მიმართული აციკლიური გრაფი

DAG (მიმართული აციკლიური გრაფი) გეომეტრიული სტრუქტურაა: კვანძები დამაკავშირებელი მიმართული კიდეებით ციკლეების გარეშე. პროგრამული დამოკიდებულების გრაფიკები, ნაკერი ტრაპიკები, და მონაცემთა ნაკადის არქიტექტურები ყველა DAG-ს წარმოქმნის.


ფაბრიკის მოდელი DAG სამუშაოსთან დაკავშირებული კვანძებით და მადლობით კვანძებით


თითოეული კვანძი ატარებს გეომეტრიულ თვისებებს მისი კიდეების რაოდენობის დათვლით:


- შემომავალი-გრადუსი: კიდეების რაოდენობა კვანძის წინ მოსვლილი. მაღალი შემომავალი-გრადუსი ნიშნავს მრავალი ზემოთკიდე დამოკიდებულება ამ კვანძის კვებას.

- გამომავალი-გრადუსი: კიდეების რაოდენობა კვანძიდან დატოვებული. მაღალი გამომავალი-გრადუსი ნიშნავს მრავალი ქვემოთკიდე სამომხმარებელი ამ კვანძის გამოაყენებს.

- შუაშებ: შემომავალი-გრადუსი + გამომავალი-გრადუსი. სამაზე მეტი გზები გრაფიკის ამ კვანძის გამოიყენებს. მაღალი-შუაშებ კვანძი გზაჯვარის გადაკვეთაზე.

- ზვალი ქულა: სწრაფი სქემა × შემომავალი-გრადუსი. სამაზე მეტი სამუშაო ღრმა დინების ქვემო თუ ეს ბოთლის კერძო გაწერა სუფთა.


ფაბრიკის მოდელი აძლევს ამ გეომეტრიულ თვისებებს ფიზიკურ მნიშვნელობას:

- მაღალი შუაშებ + მაღალი ზვალი ქულა = სამუშაო კვანძი. ამ ბოთლის კერძო წაშლა ქვემო სტეპის გარეშე = ჩავარდნა.

- მაღალი გამომავალი-გრადუსი + დაბალი ზვალი ქულა = მადლობით კვანძი. ხმელი ყველა რამ, იძახებს არა ტკივილი — მანქანა რომელიც ავიწყდა გაკეთოს გაჩერება.

ზვალი & შუაშებ პრაქტიკაში

DAG-ის წაკითხვა

განიხილეთ 5-კვანძი ჯაჭვი: A → B → C → D → E, პლუს დამატებითი კიდე B → D.


- A: შემომავალი-გრადუსი 0, გამომავალი-გრადუსი 1, შუაშებ 1. წყარო კვანძი. არა რამე ამის კვებას. ერთი სამომხმარებელი.

- B: შემომავალი-გრადუსი 1 (A-დან), გამომავალი-გრადუსი 2 (C-ს და D-ს), შუაშებ 3. კვებات ორი ქვემო კვანძი — გამშენებელი-გამოსცემი წერტილი.

- C: შემომავალი-გრადუსი 1 (B-დან), გამომავალი-გრადუსი 1 (D-ს), შუაშებ 2. გზა-გამოგზავნილი კვანძი.

- D: შემომავალი-გრადუსი 2 (B-დან და C-დან), გამომავალი-გრადუსი 1 (E-ს), შუაშებ 3. ღებულობა ორი გზიდან.

- E: შემომავალი-გრადუსი 1 (D-დან), გამომავალი-გრადუსი 0, შუაშებ 1. ღრმა კვანძი.


B და D აკავშირებენ ყველაზე მაღალი შუაშებ (3). B არის გამშენებელი-გამოსცემი: ის კვებatoes ორი კვანძი. D არის კონვერგენციის წერტილი: ის ღებულობა ორი გზიდან. MOAD-0001 პაჩის შემდეგ C-ზე, D ღებულობა ზვალი ორივე B→D გზიდან და C→D გზიდან ერთდროულად.

კვანძის მეტრიკების გაანგარიშება

დამოკიდებულების გრაფი: A → B → C → D → E (ჯაჭვი), პლუს დამატებითი კიდე B → D.

კვანძი C აქვს გაზომილი სწრაფი სქემა 50× MOAD-0001 პაჩის შემდეგ.

გაანგარიშეთ C-ის შემომავალი-გრადუსი, გამომავალი-გრადუსი, შუაშებ, და ზვალი ქულა. რომელი კვანძი პირგაჯება ყველაზე მაღალი MOAD-0005 რისკი პაჩის შემდეგ, და რატომ?

ბრტყელი დეფექტი

MOAD-0007: სივრცითი მონაცემი ითხოვნილია როგორც ბრტყელი სია

MOAD-0007 (ბრტყელი დეფექტი): სივრცითი მონაცემი ითხოვნილია როგორც ბრტყელი სია უგულებელყოფს მონაცემთა გეომეტრიული სტრუქტურა. ყოველი ითხოვნა შემოწმებს N ობიექტები. O(N) თითო ითხოვნა. M ითხოვნებით: O(M × N). მასშტაბით: კატასტროფიკური.


BVH vs სიბრტყე სია სივრცითი ითხოვნა


რეალ-დროის კერძო შემოწმებს ყოველ ობიექტს სცენაში წინააღმდეგ ყოველი სხივი. 60 ჩარჩო წამში, 100 სხივი თითო ჩარჩო და 10,000 სცენის ობიექტი: 60,000,000 კვეთის ტესტი წამში. ყველა მათ თავიდან აცილებული.


გეომეტრიული აზრი: სივრცეს აქვს სტრუქტურა. ობიექტები თემა. სხივი რომელიც ჯერ სცენის მარცხენა ნახევარი ჯერ ყოველი ობიექტი მარცხენა ნახევარი. ბრტყელი სია არ აძლევს ამ სახელ — ის შემოწმებს ყოველი ობიექტი რეგარდლესი სივრცითი მდებარეობა. სივრცითი მონაცემთა სტრუქტურა აძლევს.

BVH: ორობითი ძიება 3D-ში

როგორ მუშაობს BVH

BVH (სასაზღვრო მოცულობის იერარქია) რღვევს 3D სივრცე ხე მეშვეობით კეთილი სასაზღვრო ყუთი. თითოეული შიდა კვანძი ხელი სასაზღვრო ყუთი რომელიც ხელი ყველა მისი შვილი გეომეტრია.


სხივი კერძო ითხოვნა:

1. ტესტი ფესვი სასაზღვრო ყუთი. თუ სხივი ჯერ, გამოსვლა დაუყოვნებლივ — მთელი სცენა არის გაშორებული.

2. თუ სხივი ტალი, რეკურსივი შე შვილი. ტესტი თითოეული შვილი სასაზღვრო ყუთი.

3. თითოეული შვილი რომელიც ჯერ: გაშორება რომ სუბთრი. თითოეული შვილი რომელი ტალი: რეკურსივი უფრო ღრმა.

4. ფოლიო კვანძი: ტესტი ფაქტიკური გეომეტრია.


გეომეტრია გაშორება: თითოეული დონე, არა-კვეთის ფილიალი მოდის ამოღებული. გაბალანსებული BVH სიღრმე d-თან: 2^d ფოლიო კვანძი ხელი, მაგრამ ერთი სხივი საჭიროება პირდაპირ O(log N) შედარება თითო გაშორება გზა.


ეს არის იგივე გეომეტრიული არგუმენტი როგორც ორობითი ძიება: თითოეული შედარება ნახევარი დარჩენილი ძიება სივრცე. ორობითი ძიება ნახევარი დასახელოვანებული მასივი. BVH ნახევარი ხილული 3D სივრცე. სტრუქტურა იდენტიკური — გაბალანსებული ორობითი ხე გაშორება თითოეული კვანძი.


MOAD-0007 ფიქსი: შეცვალეთ ბრტყელი სია BVH-თან. გადაბრუნება O(N)-დან ითხოვნა O(log N)-მდე ითხოვნა. N=1,024 ობიექტი, O(log₂ 1,024) = 10 შედარება ნაცვლად 1,024.

BVH სწრაფი სქემის გაანგარიშება

თამაში სცენა აქვს 1,024 ობიექტი.

BVH გარეშე: სხივი კერძო შემოწმებს ყველა 1,024 ობიექტი.

გაბალანსებული BVH სიღრმე 10 (2^10 = 1,024 ფოლიო): სხივი კერძო ჯამებს მაქსიმუმ 10 დონე, 2 შვილი შედარება თითო დონე.

შემაფასეთ მაქსიმუმ რაოდენობა სასაზღვრო ყუთი შემოწმება BVH საჭიროება თითო სხივი კერძო, და გაანგარიშეთ სწრაფი სქემა შედარება ბრტყელი სკანი.