Ellerin Alqoritmi Maze Generatoru
Nəşr olundu: 16 fevral 2025 at 20:39:16 UTC
Mükəmməl mazut yaratmaq üçün Ellerin alqoritmini istifadə edərək Maze generatoru. Bu alqoritm maraqlıdır, belə ki, o, yalnız cari cərgəni (bütün mazutu deyil) yaddaşda saxlamağı tələb edir. Buna görə də çox məhdud sistemlərdə belə çox, çox böyük mazutlar yaratmaq üçün istifadə oluna bilər.Eller's Algorithm Maze Generator
Eller alqoritmi — ardıcıl yanaşmadan istifadə edərək mükəmməl mazutlar (heç bir döngəsi olmayan mazutlar və hər hansı iki nöqtə arasında vahid yol) səmərəli şəkildə əmələ gətirən mazut nəsil alqoritmidir. Kruskalın alqoritminə bənzər mazutlar əmələ gətirir, lakin bunu bütün mazutun yaddaşda saxlanılmasına ehtiyac olmadan, bir-birinin ardınca cəmi bir cərgə yaratmaqla edir. Bu isə onu çox məhdud sistemlərdə çox böyük mazutların əmələ gətirməsi və prosedurlu məzmunların əmələ gətirməsi üçün faydalı edir.
Mükəmməl bir labirint, labirintdəki hər hansı bir nöqtədən hər hansı digər nöqtəyə tam olaraq bir yolun olduğu labirintdir. Bu o deməkdir ki, siz dövrələrə girə bilməyəcəksiniz, ancaq tez-tez çıxılmaz nöqtələrlə qarşılaşacaqsınız, sizi dönüb geri qayıtmağa məcbur edəcəksiniz.
Burada yaradılan labirint xəritələri heç bir başlanğıc və bitmə mövqeləri olmayan defolt versiyanı ehtiva edir, buna görə də özünüz üçün bunlara qərar verə bilərsiniz: labirintdə istənilən nöqtədən istənilən digər nöqtəyə həll yolu olacaq. Əgər ilham almaq istəyirsinizsə, təklif olunan başlanğıc və bitiş mövqeyini aktivləşdirə və hətta ikisi arasında həll yolu görə bilərsiniz.
Ellerin Alqoritmi haqqında
Ellerin Alqoritmi David Eller tərəfindən təqdim edilmişdir.
Alqoritm mazut nəslinə səmərəli sıra ilə yanaşması ilə diqqət çəkir, bu isə onu real vaxtda əmələ gələn sonsuz mazutlar və ya mazutlar üçün ideal edir. Əsasən prosessual məzmunlu nəsrdə və mazut-nəsr ədəbiyyatında qeyd olunur, lakin onun orijinal nəşrini təfərrüatı ilə izah edən əsas mənbələri tapa bilməmişəm.
Ellerin Alqoritmi Maze nəsli üçün necə işləyir?
Eller alqoritmi bir-birinin ardınca bir cərgəni işləyərək, bağlı hüceyrələrin dəstlərini qoruyub saxlayır və dəyişdirir. O, ilgəklərdən qaçınmaqla yanaşı, əlaqəni təmin edir və mazutu effektiv şəkildə aşağıya doğru uzadır.
Nəzəri olaraq sonsuz mazutlar əmələ gətirmək üçün istifadə edilə bilər, lakin generasiya olunan mazutun əslində həll edilə bilməsi üçün, mazutu bitirmək üçün müəyyən bir vaxtda "son sıra" məntiqinə keçmək lazımdır.
1-ci addım: birinci cərgəni başlanğıcda
- Cərgədəki hər bir hüceyrəni unikal set ID-yə təyin edin.
2-ci addım: Bəzi bitişik hüceyrələrə horizontal şəkildə qoşulun
- Təsadüfi olaraq bitişik hüceyrələri eyni set ID-yə qoyaraq birləşdiin. Bu isə horizontal keçidlərin olmasını təmin edir.
3-cü addım: Növbəti cərgəyə şaquli bağlantılar yaradın
- Cərgədə görünən hər bir set üçün ən azı bir hüceyrə aşağıya bağlanmalıdır (əlaqəni təmin etmək üçün).
- Növbəti cərgəyə bağlanmaq üçün hər setdən təsadüfi olaraq bir və ya bir neçə hüceyrə seçin.
4-cü addım: Növbəti cərgəyə keç
- Şaquli bağlantıları aşağıdakı müvafiq hüceyrələrə eyni set ID-ləri təyin edərək irəli aparın.
- Təyin olunmamış hüceyrələrə yeni təyin olunmuş kodu təyin edin.
5-ci addım: Son sıra çatana qədər 2–4-cü addımları təkrarlayın
- Sıra ilə işlənməni davam etdir.
6-ci addım: Sonuncu cərgəni proses
- Qalan hər hansı ayrı-ayrı setləri bir-birinə birləşdirilərək, son cərgədəki bütün hüceyrələrin eyni setə aid olmasını təmin edin.