სწრაფი სიჩქარის განსაზღვრა

Original web-page: http://www.eng.fsu.edu/~dommelen/research/fast/fast.html

შესრულებული სამუშაოებიელკე რუნდენშტაინერი. ეს ნამუშევარი შესაძლებელი გახდა საჰაერო ძალების სამეცნიერო კვლევების ოფისის მხარდაჭერით.


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

შესავალი რიცხვითი გაკვეთილების დროს ხშირად ნახსენები მაგალითია კრამერის წესით 25 უცნობი ნომრის გადასაჭრელად. ბევრმა მოსწავლემ მათემატიკის გაკვეთილზე ისწავლა, თუ როგორ უნდა ამოხსნათ 3 ან 4 უცნობი უცნობად, კრამერის წესის გამოყენებით, მაგრამ არავინ არ გააფრთხილა მათ, რომ გამოიყენონ სხვა მეთოდი უფრო უცნობიებისთვის. 25 უცნობი ადამიანისთვის მოგვარება დიდი საქმე არ არის, არსებობს მრავალი მარტივი მეთოდი, რომლის გაკეთებაც ძალიან სწრაფად შეუძლია, მაგრამ კრამერის წესი არ არის ერთ – ერთი მათგანი! ეს დაახლოებით 100,000,000,000,000,000,000,000 ჯერ ნელა, ვიდრე ამის გაკეთების სტანდარტული მეთოდი. საუკეთესო სუპერკომპიუტერები იქნებოდნენ მტვერი, სანამ ისინი გამოთვლებდნენ.

როგორც თქვენ ალბათ მიხვდებით, ამგვარი განსხვავება გამონაკლისია. ეს გამოწვეულია განსაკუთრებით ცუდი რიცხვითი მეთოდის, კრამერის წესის არჩევით. პრობლემა, რომელსაც ელკე და მე ვხვდებოდით, გაუმჯობესებისკენ არ გამოირჩეოდა. ჩვენ გვსურს გამოვთვალოთ ჰაერის ან წყლის ნაკადები დაბრკოლებების გარშემო, როგორიცაა მავთულები ან ფრთები. რიცხვითი მეთოდი უნდა იყოს ‘ბორბლიანი მეთოდი’, რომლის დროსაც ათასობით პატარა ტორნადო, რომელსაც ეწოდება ვორცეტები, გამოიყენება ჰაერის ან წყლის მოძრაობის წარმოსადგენად. სირთულის იყო, ჩვენ უნდა მოვძებნოთ სიჩქარე თითოეული ბორბლიანი დაიცვას მათი მოძრაობის და სიჩქარე თითოეული დამოკიდებულია ყველა სხვა ვორცეტები.

სირთულის დასანახად, წარმოიდგინეთ, რომ ხალხისგან ვირონიების ნაცვლად ვყვიროდით. მაგალითად, დავუშვათ, რომ არსებობს ძალიან ბევრი დიდი ფართობი მიმოფანტული 10,000 ადამიანი. კითხვაა, რა ხმაური აქვს თითოეულ ადამიანს. კითხვაზე პასუხის გასაცემად, თქვენ თითოეული ადამიანისთვის განსაზღვრავდით თუ რამდენ ხმაურს იღებს იგი ყველა სხვა ადამიანისგან, ამ პიროვნებისგან დაშორების პოვნა და ამ მანძილზე ხმაურის დონის გამოთვლა. შეაჯამეთ ხმაური სხვა 9,999 სხვა პირისაგან, რომ მთლიანი ხმაური მიიღოთ.

ეს მუშაობს, მაგრამ რადგან თითოეული ადამიანისათვის 9,999 დისტანცია უნდა გამოვთვალოთ, გამოთვლითი სამუშაოების მოცულობა პროპორციულია 10 000 ჯერ 9,999-ს. ეს პროპორციულია ხალხის რაოდენობის კვადრატთან. თუ 10,000-ის ნაცვლად 20,000 ადამიანი იქნებოდა, დაახლოებით 4-ჯერ მეტი დისტანცია უნდა დაგჭირდეთ, არა ორჯერ. დიდი რაოდენობის ადამიანებისთვის, სამუშაოს შესრულება ერთ ადამიანზე მეტად ხდება.

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

ასე რომ, ბავშვის გამოყენებით, ჩვენ შეგვიძლია აღმოვაჩინოთ რამდენიმე მანძილი, რომლის გამოთვლაც მოგვიწევს. ეს შეიძლება გავიმეოროთ ახლომდებარე სხვა ჯგუფებისთვის. და კიდევ არის სხვა თამაშები, რომელთა თამაშიც შეგვიძლია. დავუშვათ, ახლომდებარე ორი ბავშვია, რომლებიც სხვადასხვა ჯგუფს შეცვლიან. მართლაც ძალიან დიდ დისტანციებზე, ჩვენ შეგვიძლია ორი ბავშვი ჩავანაცვლოთ ზედმეტი ბაბუით, რაც კვლავ ორჯერ მაღალია. (მას შეიძლება სჭირდება ისპანახი.)

როგორც მოგეხსენებათ, ძირითადი იდეა აღმოჩნდა, რომ არ არის განსაკუთრებით ორიგინალური; ნამდვილი გამოცდა იყო ეფექტურად ამის გაკეთებაში ხალხისთვის (ვორტიკები), რომლებიც გავრცელებული იყო რეგულარული ფორმის მიხედვით. აქ არის სურათი, თუ როგორ და ჯგუფმა ჯგუფმა ვორკეტები ერთად დავაჯგუფეთ:

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

მუშაობდა? წამში მოცემულია გამოთვლითი დრო, წამებში, ჯერ თუ გამოვთვლით ყველა დისტანციას და შემდეგ ჩვენს მიერ შემუშავებული ახალი მეთოდის გამოყენებით:

ვორცეტები:    400   800   1600   3200    6400   12800    25600
Ძველი დრო:  9.1  36.3  151.9  586.8  2354.1  9404.8  37556.0
ახალი დრო:   4.7  10.6   25.1   55.4   128.5   286.3    597.8
თანაფარდობა:  2     3      6     11      18      33       63

ამრიგად, ახალი მეთოდი უკვე 63 ჯერ უფრო სწრაფია 25,000 ვორტისთვის და ეს მეტს მიიღებს მეტი ვორცეტები.

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


აქ მოცემულია რამდენიმე ცნობა:

ვან სომელენი, ლ.ლ. (1985) ადაპტირებადი-პანელი ბორბლიანი ჯამი რომ კიბერი 205. 38-ე ყოველწლიური შეხვედრა დივი. სითხე დინამიკა, ბიულეტენი ამერიკის ფიზიკური საზოგადოების30.

ვან სომელენი, ლ.ლ. და რუნდენშტაინერი (1989) სწრაფი გადაწყვეტა ორგანზომილებიანი პუასონის განტოლების წერტილი ბრძენი აიძულა. ჟურნალი გამოთვლითი ფიზიკის  83, 126-147.

გადამზიდავი, ჯ, გრინგარდი და როხლინი, ბ. (1986) სწრაფი ადაპტური მულტიპოლი ალგორითმი ნაწილაკების სიმულაციები. იელის უნივერსიტეტის კვლევის ანგარიში YALEU/DCS/RR-496.

გრინგარდი, ლ და როხლინი, ბ. (1988) ეფექტიანი განხორციელებისათვის სწრაფი მულტიპოლი ალგორითმი. იელის უნივერსიტეტის კვლევის ანგარიში YALEU/DCS/RR-602.


Leon van Dommelen