ரிகர்சிவ் பேக்டிராக்கர் பிரமை ஜெனரேட்டர்
வெளியிடப்பட்டது: 16 பிப்ரவரி, 2025 அன்று பிற்பகல் 6:22:52 UTC
கடைசியாகப் புதுப்பிக்கப்பட்டது: 12 ஜனவரி, 2026 அன்று AM 9:02:27 UTC
Recursive Backtracker Maze Generator
சுழல்நிலை பின்தொடர்தல் வழிமுறை உண்மையில் ஒரு பொதுவான நோக்கத்திற்கான ஆழம்-முதல் தேடலாகும். பிரமை உருவாக்கத்திற்குப் பயன்படுத்தப்படும்போது, சீரற்ற முறையில் பாதையைத் தேர்ந்தெடுக்க இது சிறிது மாற்றியமைக்கப்பட்டது, அதேசமயம் உண்மையான தேடல் நோக்கங்களுக்காகப் பயன்படுத்தப்பட்டால், ஒருவர் பொதுவாக ஒவ்வொரு நிலையையும் நேரியல் வரிசையில் தேடுவார். இது நீண்ட, முறுக்கு தாழ்வாரங்கள் மற்றும் மிக நீண்ட, முறுக்கு தீர்வுடன் பிரமைகளை உருவாக்கும்.
ஒரு சரியான பிரமை என்பது ஒரு பிரமை, அதில் பிரமையின் எந்தப் புள்ளியிலிருந்தும் மற்றொரு புள்ளிக்கு சரியாக ஒரு பாதை இருக்கும். அதாவது நீங்கள் வட்டங்களில் சுற்றிச் செல்ல முடியாது, ஆனால் நீங்கள் அடிக்கடி முட்டுச்சந்துகளைச் சந்திப்பீர்கள், இதனால் நீங்கள் திரும்பிச் செல்ல வேண்டிய கட்டாயம் ஏற்படும்.
இங்கே உருவாக்கப்பட்ட பிரமை வரைபடங்கள் தொடக்க மற்றும் முடிவு நிலைகள் இல்லாத இயல்புநிலை பதிப்பைக் கொண்டுள்ளன, எனவே அவற்றை நீங்களே தீர்மானிக்கலாம்: பிரமையின் எந்தப் புள்ளியிலிருந்தும் வேறு எந்தப் புள்ளிக்கும் ஒரு தீர்வு இருக்கும். நீங்கள் உத்வேகம் விரும்பினால், பரிந்துரைக்கப்பட்ட தொடக்க மற்றும் முடிவு நிலையை நீங்கள் இயக்கலாம் - மேலும் இரண்டிற்கும் இடையிலான தீர்வைக் கூட பார்க்கலாம்.
சுழல்நிலை பின்தொடர்பவர் வழிமுறை என்பது சரியான பிரமைகளை உருவாக்குவதற்கான ஒரு ஆழ-முதல் தேடல் முறையாகும் (சுழல்கள் இல்லாத மற்றும் எந்த இரண்டு புள்ளிகளுக்கும் இடையில் ஒற்றை பாதை இல்லாத பிரமைகள்). இது எளிமையானது, திறமையானது, மேலும் நீண்ட, முறுக்கு தாழ்வாரங்களுடன் பார்வைக்கு ஈர்க்கும் பிரமைகளை உருவாக்குகிறது.
அதன் பெயர் இருந்தபோதிலும், இது மறுநிகழ்வைப் பயன்படுத்தி செயல்படுத்தப்பட வேண்டிய அவசியமில்லை. இது பெரும்பாலும் LIFO வரிசையைப் (அதாவது ஒரு அடுக்கு) பயன்படுத்தி ஒரு மறுபயன்பாட்டு அணுகுமுறையில் செயல்படுத்தப்படுகிறது. மிகப் பெரிய பிரமைகளுக்கு, மறுநிகழ்வைப் பயன்படுத்துவது நிரலாக்க மொழி மற்றும் கிடைக்கக்கூடிய நினைவகத்தைப் பொறுத்து அழைப்பு அடுக்கு வழிதல் ஏற்படுவதற்கான வாய்ப்புகள் அதிகம். கிடைக்கக்கூடிய நினைவகம் போதுமானதாக இல்லாவிட்டால் வரிசையை வட்டில் அல்லது தரவுத்தளத்தில் வைத்திருப்பது கூட, பெரிய அளவிலான தரவைக் கையாள LIFO வரிசையை எளிதாக மாற்றியமைக்க முடியும்.
எப்படி இது செயல்படுகிறது
இந்த வழிமுறை அடுக்கு அடிப்படையிலான ஆழம்-முதல் தேடல் அணுகுமுறையைப் பயன்படுத்தி செயல்படுகிறது. இங்கே படிப்படியான விளக்கம்:
- ஒரு தொடக்கக் கலத்தைத் தேர்ந்தெடுத்து அதைப் பார்வையிட்டதாகக் குறிக்கவும்.
- பார்வையிடப்படாத செல்கள் இருக்கும்போது: இதுவரை பார்வையிடப்படாத அண்டை செல்களைப் பாருங்கள். குறைந்தபட்சம் ஒரு பார்வையிடப்படாத அண்டை வீட்டாராவது இருந்தால்: பார்வையிடப்படாத அண்டை வீட்டாரில் ஒன்றைத் தோராயமாகத் தேர்ந்தெடுக்கவும். தற்போதைய கலத்திற்கும் தேர்ந்தெடுக்கப்பட்ட அண்டை வீட்டாருக்கும் இடையிலான சுவரை அகற்றவும். தேர்ந்தெடுக்கப்பட்ட அண்டை வீட்டிற்கு நகர்த்தி, அதைப் பார்வையிட்டதாகக் குறிக்கவும். தற்போதைய கலத்தை அடுக்கின் மீது தள்ளவும். பார்வையிடப்படாத அண்டை வீட்டார் யாரும் இல்லை என்றால்: அடுக்கிலிருந்து கடைசி கலத்தை பாப் செய்வதன் மூலம் பின்தொடர்க.
- அடுக்கு காலியாகும் வரை இந்த செயல்முறையைத் தொடரவும்.
இந்த வழிமுறையைப் பற்றிய ஒரு சுவாரஸ்யமான உண்மை என்னவென்றால், இது ஒரு பிரமை ஜெனரேட்டராகவும், ஒரு பிரமை தீர்வாகவும் செயல்படுகிறது. நீங்கள் ஏற்கனவே உருவாக்கப்பட்ட பிரமையில் இதை இயக்கி, தீர்மானிக்கப்பட்ட இறுதிப் புள்ளியை அடைந்ததும் நிறுத்தினால், அடுக்கில் பிரமைக்கான தீர்வு இருக்கும்.
இந்த தளத்தில் இந்த வழிமுறையின் இரண்டு பதிப்புகள் என்னிடம் உள்ளன: இந்தப் பக்கத்தில் பிரமைகளை உருவாக்குவதற்கான LIFO வரிசை அடிப்படையிலான ஒன்று மற்றும் பிரமைகளைத் தீர்ப்பதற்கான மறுநிகழ்வு அடிப்படையிலான ஒன்று, மற்ற வழிமுறைகளால் உருவாக்கப்பட்ட பிரமைகளும் (தீர்வுகளுடன் கூடிய வரைபடங்கள் இப்படித்தான் உருவாக்கப்படுகின்றன). இரண்டு வெவ்வேறு பதிப்புகளைக் கொண்டிருப்பது விளையாட்டுகளுக்கு மட்டுமே, ஏனென்றால் நான் அதை சுவாரஸ்யமாகக் கருதும் ஒரு மேதாவி, இரண்டிற்கும் ஒன்று வேலை செய்திருக்கலாம் ;-)
மேலும் படிக்க
இந்த இடுகை உங்களுக்குப் பிடித்திருந்தால், இந்த பரிந்துரைகளையும் நீங்கள் விரும்பலாம்:
- க்ருஸ்கலின் அல்காரிதம் பிரமை ஜெனரேட்டர்
- எல்லர் க்கான அல்கோரிதம் குழப்பக் கருவி
- மரங்களை வளர்ப்பதற்கான வழிமுறை பிரமை ஜெனரேட்டர்
