AI-இல் நடத்தை மரங்களைப் புரிந்துகொள்வதற்கான ஒரு விரிவான வழிகாட்டி, முக்கியக் கருத்துக்கள் முதல் கேமிங், ரோபாட்டிக்ஸ் மற்றும் பிறவற்றில் நடைமுறைப் பயன்பாடுகள் வரை.
செயற்கை நுண்ணறிவு: நடத்தை மரங்களைப் பற்றிய ஒரு ஆழமான பார்வை
செயற்கை நுண்ணறிவின் பரந்த மற்றும் வளர்ந்து வரும் உலகில், டெவலப்பர்கள் சக்திவாய்ந்த, அளவிடக்கூடிய மற்றும் உள்ளுணர்வுடன் கூடிய கருவிகளை தொடர்ந்து தேடுகின்றனர். நமக்கு பிடித்த வீடியோ கேம்களில் உள்ள விளையாட்டாளர் அல்லாத பாத்திரங்கள் (NPCs) முதல் கிடங்குகளில் பொருட்களை வரிசைப்படுத்தும் தானியங்கி ரோபோக்கள் வரை, நம்பகமான மற்றும் பயனுள்ள AI நடத்தையை உருவாக்குவது ஒரு மகத்தான பணியாகும். பல நுட்பங்கள் இருந்தாலும், அதன் நேர்த்தி மற்றும் நெகிழ்வுத்தன்மைக்காக ஒன்று ஆதிக்கம் செலுத்தும் சக்தியாக உருவெடுத்துள்ளது: அதுதான் நடத்தை மரம் (BT).
ஒரு விளையாட்டில் எதிரி புத்திசாலித்தனமாக மறைவிடம் தேடுவதையும், கூட்டாளிகளுடன் ஒருங்கிணைந்து செயல்படுவதையும், சூழ்நிலைக்கு ஏற்ப தந்திரங்களை மாற்றுவதையும் கண்டு நீங்கள் எப்போதாவது வியந்திருந்தால், நீங்கள் ஒரு நடத்தை மரத்தை செயல்பாட்டில் கண்டிருக்கலாம். இந்த கட்டுரை நடத்தை மரங்கள் பற்றிய ஒரு விரிவான ஆய்வை வழங்குகிறது, அடிப்படை கருத்துக்களிலிருந்து மேம்பட்ட பயன்பாடுகள் வரை, உலகளாவிய டெவலப்பர்கள், வடிவமைப்பாளர்கள் மற்றும் AI ஆர்வலர்களுக்காக வடிவமைக்கப்பட்டுள்ளது.
எளிய அமைப்புகளின் சிக்கல்: நமக்கு ஏன் நடத்தை மரங்கள் தேவை?
நடத்தை மரங்களின் புதுமையை பாராட்ட, அதற்கு முன் என்ன இருந்தது என்பதைப் புரிந்துகொள்வது உதவியாக இருக்கும். பல ஆண்டுகளாக, எளிய AI-க்கான தீர்வு வரையறுக்கப்பட்ட நிலை இயந்திரம் (FSM) ஆகும்.
ஒரு FSM என்பது நிலைகளின் (எ.கா., ரோந்து சுற்றுதல், துரத்துதல், தாக்குதல்) மற்றும் அவற்றுக்கிடையேயான மாற்றங்களின் (எ.கா., nếu "எதிரி காணப்பட்டால்", ரோந்து சுற்றுதல் என்பதிலிருந்து துரத்துதல் நிலைக்கு மாறுதல்) தொகுப்பாகும். சில தனித்துவமான நடத்தைகளைக் கொண்ட எளிய AI-க்கு, FSM-கள் நன்றாக வேலை செய்கின்றன. இருப்பினும், சிக்கலான தன்மை அதிகரிக்கும்போது, அவை விரைவாக நிர்வகிக்க முடியாதவையாகி விடுகின்றன.
- அளவிடுதல் சிக்கல்கள்: "மறைவிடம் தேடு" போன்ற ஒரு புதிய நிலையைச் சேர்ப்பதற்கு, ஏற்கனவே உள்ள ஒவ்வொரு நிலையிலிருந்தும் மாற்றங்களை உருவாக்க வேண்டியிருக்கலாம். இது டெவலப்பர்கள் "ஸ்பாகெட்டி கோட்" என்று அழைக்கும் ஒரு நிலைக்கு வழிவகுக்கிறது—இது பிழைதிருத்தம் செய்வதற்கும் விரிவுபடுத்துவதற்கும் கடினமான ஒரு சிக்கலான இணைப்புகளின் வலையாகும்.
- மாடுலாரிட்டி இல்லாமை: நடத்தைகள் நிலைகளுடன் இறுக்கமாக இணைக்கப்பட்டுள்ளன. வெவ்வேறு சூழ்நிலைகளில் "வெடிமருந்துகளைக் கண்டுபிடி" என்ற தர்க்கத்தை மீண்டும் பயன்படுத்துவது, குறியீடு மற்றும் தர்க்கத்தை நகலெடுக்காமல் கடினம்.
- விறைப்புத்தன்மை: ஒரு FSM எப்போதும் ஒரே ஒரு நிலையில் மட்டுமே இருக்கும். இது நுணுக்கமான அல்லது அடுக்கு நடத்தைகளை மாதிரியாக்குவதை கடினமாக்குகிறது.
இந்த சிக்கல்களைத் தீர்ப்பதற்காகவே நடத்தை மரங்கள் உருவாக்கப்பட்டன, இது சிக்கலான AI ஏஜெண்டுகளை வடிவமைக்க மிகவும் கட்டமைக்கப்பட்ட, மட்டுப்படுத்தப்பட்ட மற்றும் அளவிடக்கூடிய அணுகுமுறையை வழங்குகிறது.
நடத்தை மரம் என்றால் என்ன? AI-க்கான ஒரு படிநிலை அணுகுமுறை
அதன் மையத்தில், ஒரு நடத்தை மரம் என்பது ஒரு AI ஏஜென்ட்டின் முடிவெடுக்கும் ஓட்டத்தைக் கட்டுப்படுத்தும் முனைகளின் படிநிலை மரமாகும். இதை ஒரு நிறுவனத்தின் அமைப்பு விளக்கப்படம் போல நினைத்துப் பாருங்கள். உச்சியில் உள்ள தலைமை நிர்வாக அதிகாரி (மூல முனை) ஒவ்வொரு பணியையும் செய்வதில்லை; மாறாக, அவர்கள் மேலாளர்களுக்கு (கூட்டு முனைகள்) பணிகளை déléguer செய்கிறார்கள், அவர்கள் குறிப்பிட்ட வேலைகளைச் செய்யும் ஊழியர்களுக்கு (இலை முனைகள்) பணிகளை déléguer செய்கிறார்கள்.
இந்த மரம் மேலிருந்து கீழாக, மூலத்திலிருந்து தொடங்கி, பொதுவாக ஒவ்வொரு பிரேம் அல்லது புதுப்பிப்பு சுழற்சியிலும் மதிப்பிடப்படுகிறது. இந்த செயல்முறை ஒரு "டிக்" என்று அழைக்கப்படுகிறது. டிக் சிக்னல் ஒரு குறிப்பிட்ட விதிகளின் அடிப்படையில் ஒரு குறிப்பிட்ட பாதையில் முனைகளைச் செயல்படுத்தி, மரத்தின் கீழே பரவுகிறது. ஒவ்வொரு முனையும், முடிந்ததும், அதன் பெற்றோருக்கு ஒரு நிலையைத் திருப்பித் தருகிறது:
- வெற்றி (SUCCESS): முனை பிரதிநிதித்துவப்படுத்தும் பணி வெற்றிகரமாக முடிக்கப்பட்டது.
- தோல்வி (FAILURE): பணியை முடிக்க முடியவில்லை.
- இயங்குகிறது (RUNNING): பணி செயல்பாட்டில் உள்ளது மற்றும் முடிக்க அதிக நேரம் தேவைப்படுகிறது (எ.கா., ஒரு இடத்திற்கு நடந்து செல்வது).
பெற்றோர் முனை இந்த நிலைகளைப் பயன்படுத்தி அதன் குழந்தைகளில் எதை அடுத்து டிக் செய்வது என்று முடிவு செய்கிறது. இந்த தொடர்ச்சியான, மேலிருந்து கீழான மறுமதிப்பீடு, உலகில் மாறும் நிலைமைகளுக்கு BT-களை நம்பமுடியாத அளவிற்கு வினைபுரிய வைக்கிறது.
ஒரு நடத்தை மரத்தின் முக்கிய கூறுகள்
ஒவ்வொரு நடத்தை மரமும் சில அடிப்படை வகை முனைகளிலிருந்து கட்டமைக்கப்படுகிறது. இந்த கட்டுமானத் தொகுதிகளைப் புரிந்துகொள்வதே இந்த அமைப்பில் தேர்ச்சி பெறுவதற்கான திறவுகோலாகும்.
1. இலை முனைகள்: செயல்கள் மற்றும் நிபந்தனைகள்
இலை முனைகள் மரத்தின் இறுதிப் புள்ளிகளாகும்—அவை பணிகளைச் செய்யும் அல்லது நிபந்தனைகளைச் சரிபார்க்கும் உண்மையான தொழிலாளர்கள். அவற்றுக்கு குழந்தைகள் இல்லை.
- செயல் முனைகள்: இந்த முனைகள் விளையாட்டு உலகில் ஒரு செயலைச் செயல்படுத்துகின்றன. செயல் உடனடி என்றால் (எ.கா., ஒரு ஆயுதத்தை சுடுவது), அது உடனடியாக `SUCCESS` ஐத் திருப்பித் தரலாம். இதற்கு நேரம் எடுத்தால் (எ.கா., ஒரு புள்ளிக்கு நகர்வது), அது முடியும் வரை ஒவ்வொரு டிக்கிலும் `RUNNING` ஐத் திருப்பித் தரும், அந்த நேரத்தில் அது `SUCCESS` ஐத் திருப்பித் தரும். எடுத்துக்காட்டுகள்: `MoveToEnemy()`, `PlayAnimation("Attack")`, `ReloadWeapon()`.
- நிபந்தனை முனைகள்: இவை ஒரு சிறப்பு வகை இலை முனைகள், அவை உலகத்தின் நிலையை மாற்றாமல் சரிபார்க்கின்றன. அவை மரத்தில் நுழைவாயில்களாக செயல்படுகின்றன, நிபந்தனை உண்மையாக இருந்தால் `SUCCESS` ஐயும், தவறாக இருந்தால் `FAILURE` ஐயும் திருப்பித் தருகின்றன. எடுத்துக்காட்டுகள்: `IsHealthLow?`, `IsEnemyInLineOfSight?`, `HasAmmunition?`.
2. கூட்டு முனைகள்: கட்டுப்பாட்டு ஓட்டம்
கூட்டு முனைகள் மரத்தின் மேலாளர்கள். அவை ஒன்று அல்லது அதற்கு மேற்பட்ட குழந்தைகளைக் கொண்டுள்ளன மற்றும் எந்தக் குழந்தையைச் செயல்படுத்த வேண்டும் என்பதைத் தீர்மானிக்க ஒரு குறிப்பிட்ட விதிகளைப் பயன்படுத்துகின்றன. அவை AI-யின் தர்க்கத்தையும் முன்னுரிமைகளையும் வரையறுக்கின்றன.
-
வரிசை முனை: பெரும்பாலும் ஒரு அம்புக்குறியால் (→) குறிக்கப்படும் அல்லது "AND" என்று பெயரிடப்படும். ஒரு வரிசை முனை அதன் குழந்தைகளை இடமிருந்து வலமாக வரிசையாக செயல்படுத்துகிறது. அதன் குழந்தைகளில் ஒன்று தோல்வியுற்றவுடன் அது நின்று `FAILURE` ஐத் திருப்பித் தருகிறது. அனைத்து குழந்தைகளும் வெற்றி பெற்றால், வரிசை முனையே `SUCCESS` ஐத் திருப்பித் தரும். இது வரிசையாக செய்யப்பட வேண்டிய பணிகளின் வரிசையை உருவாக்கப் பயன்படுகிறது.
உதாரணம்: ஒரு `Reload` வரிசை இப்படி இருக்கலாம்: வரிசை( `HasAmmoInInventory?`, `PlayReloadAnimation()`, `UpdateAmmoCount()` ). ஏஜென்ட் தனது இருப்பில் வெடிமருந்துகள் வைத்திருக்கவில்லை என்றால், முதல் குழந்தை தோல்வியடைகிறது, முழு வரிசையும் உடனடியாக கைவிடப்படுகிறது.
-
தேர்வி முனை (அல்லது பின்வாங்கல் முனை): பெரும்பாலும் ஒரு கேள்விக்குறியால் (?) குறிக்கப்படும் அல்லது "OR" என்று பெயரிடப்படும். ஒரு தேர்வி முனையும் அதன் குழந்தைகளை இடமிருந்து வலமாக வரிசையாக செயல்படுத்துகிறது. இருப்பினும், அதன் குழந்தைகளில் ஒன்று வெற்றி பெற்றவுடன் அது நின்று `SUCCESS` ஐத் திருப்பித் தருகிறது. அனைத்து குழந்தைகளும் தோல்வியுற்றால், தேர்வி முனையே `FAILURE` ஐத் திருப்பித் தரும். இது பின்வாங்கல் நடத்தைகளை உருவாக்க அல்லது சாத்தியக்கூறுகளின் பட்டியலிலிருந்து ஒரு செயலைத் தேர்ந்தெடுக்கப் பயன்படுகிறது.
உதாரணம்: ஒரு `Combat` தேர்வி இப்படி இருக்கலாம்: தேர்வி( `PerformMeleeAttack()`, `PerformRangedAttack()`, `Flee()` ). AI முதலில் ஒரு கைகலப்புத் தாக்குதலை முயற்சிக்கும். அது சாத்தியமில்லை என்றால் (எ.கா., இலக்கு வெகு தொலைவில் உள்ளது), அது தோல்வியடைகிறது, தேர்வி முனை அடுத்த குழந்தைக்கு நகர்கிறது: தொலைதூரத் தாக்குதல். அதுவும் தோல்வியடைந்தால் (எ.கா., வெடிமருந்து இல்லை), அது இறுதி விருப்பத்திற்கு நகர்கிறது: தப்பி ஓடுவது.
-
இணை முனை: இந்த முனை அதன் அனைத்து குழந்தைகளையும் ஒரே நேரத்தில் செயல்படுத்துகிறது. அதன் சொந்த வெற்றி அல்லது தோல்வி ஒரு குறிப்பிட்ட கொள்கையைப் பொறுத்தது. உதாரணமாக, ஒரு குழந்தை வெற்றி பெற்றவுடன் அது `SUCCESS` ஐத் திருப்பித் தரலாம், அல்லது அனைத்து குழந்தைகளும் வெற்றி பெறும் வரை காத்திருக்கலாம். இது ஒரு முதன்மைப் பணியை இயக்கும் போது ஒரே நேரத்தில் ஒரு இரண்டாம் நிலை, கண்காணிப்புப் பணியை இயக்க பயனுள்ளதாக இருக்கும்.
உதாரணம்: ஒரு `Patrol` இணை முனை இப்படி இருக்கலாம்: இணை( `MoveAlongPatrolPath()`, `LookForEnemies()` ). AI தொடர்ந்து சுற்றுச்சூழலை ஸ்கேன் செய்யும் போது அதன் ரோந்துப் பாதையில் நடக்கிறது.
3. அலங்கரிப்பான் முனைகள்: மாற்றியமைப்பாளர்கள்
அலங்கரிப்பான் முனைகளுக்கு ஒரே ஒரு குழந்தை மட்டுமே உள்ளது, மேலும் அவை அந்தக் குழந்தையின் நடத்தை அல்லது முடிவை மாற்றியமைக்கப் பயன்படுகின்றன. அவை மரத்தை ஒழுங்கீனம் செய்யாமல் ஒரு சக்திவாய்ந்த கட்டுப்பாடு மற்றும் தர்க்க அடுக்கைச் சேர்க்கின்றன.
- நேர்மாற்றி: அதன் குழந்தையின் முடிவை நேர்மாறாக்குகிறது. `SUCCESS` என்பது `FAILURE` ஆகவும், `FAILURE` என்பது `SUCCESS` ஆகவும் மாறும். `RUNNING` பொதுவாக மாற்றப்படாமல் அனுப்பப்படும். இது "இல்லை என்றால்" தர்க்கத்தை உருவாக்க ஏற்றது.
உதாரணம்: நேர்மாற்றி( `IsEnemyVisible?` ) ஒரு எதிரி தெரியாதபோது மட்டுமே வெற்றி பெறும் ஒரு நிபந்தனையை உருவாக்கும்.
- மீண்டும் செய்பவர்: அதன் குழந்தையை ஒரு குறிப்பிட்ட எண்ணிக்கையிலான முறைகள் அல்லது குழந்தை தோல்வியடையும் வரை காலவரையின்றி செயல்படுத்துகிறது.
- வெற்றியாளர் / தோல்வியாளர்: அதன் குழந்தை என்ன திருப்பித் தந்தாலும், முறையே எப்போதும் `SUCCESS` அல்லது `FAILURE` ஐத் திருப்பித் தரும். இது மரத்தின் ஒரு கிளையை விருப்பமானதாக மாற்றப் பயன்படுகிறது.
- வரம்பி / குளிர்விக்கும் நேரம்: அதன் குழந்தை எவ்வளவு அடிக்கடி செயல்படுத்தப்படலாம் என்பதைக் கட்டுப்படுத்துகிறது. உதாரணமாக, ஒரு `GrenadeThrow` செயலை ஒரு வரம்பியால் அலங்கரிக்கலாம், அது ஒவ்வொரு 10 வினாடிக்கும் ஒரு முறை மட்டுமே செய்யப்படுவதை உறுதிசெய்யலாம்.
அனைத்தையும் ஒன்றிணைத்தல்: ஒரு நடைமுறை உதாரணம்
ஒரு முதல்-நபர் சுடும் விளையாட்டில் ஒரு எளிய எதிரி சிப்பாய் AI-க்கான ஒரு நடத்தை மரத்தை வடிவமைப்போம். விரும்பிய நடத்தை இதுதான்: வீரர் கண்ணுக்குத் தெரிந்தால் அவரைத் தாக்குவதே சிப்பாயின் முதன்மை முன்னுரிமை. வீரர் கண்ணுக்குத் தெரியவில்லை என்றால், சிப்பாய் ஒரு குறிப்பிட்ட பகுதியில் ரோந்து செல்ல வேண்டும். போரின் போது சிப்பாயின் ஆரோக்கியம் குறைந்தால், அவர் மறைவிடம் தேட வேண்டும்.
ஒரு நடத்தை மரத்தில் இந்த தர்க்கத்தை நாம் எவ்வாறு கட்டமைக்கலாம் என்பது இங்கே (மேலிருந்து கீழாகப் படிக்கவும், உள்தள்ளல் படிநிலையைக் காட்டுகிறது):
மூலம் (தேர்வி) |-- குறைந்த ஆரோக்கியத்தில் தப்பித்தல் (வரிசை) | |-- IsHealthLow? (நிபந்தனை) | |-- FindCoverPoint (செயல்) -> நகரும்போது RUNNING, பின்னர் SUCCESS ஐத் திருப்பித் தரும் | `-- TakeCover (செயல்) | |-- வீரரைத் தாக்கு (வரிசை) | |-- IsPlayerVisible? (நிபந்தனை) | |-- IsWeaponReady? (நிபந்தனை) | |-- போர் தர்க்கம் (தேர்வி) | | |-- வீரரைச் சுடு (வரிசை) | | | |-- IsPlayerInLineOfSight? (நிபந்தனை) | | | `-- Shoot (செயல்) | | `-- தாக்குதல் நிலைக்கு நகர் (வரிசை) | | |-- நேர்மாற்றி(IsPlayerInLineOfSight?) (அலங்கரிப்பான் + நிபந்தனை) | | `-- MoveTowardsPlayer (செயல்) | `-- ரோந்து (வரிசை) |-- GetNextPatrolPoint (செயல்) `-- MoveToPoint (செயல்)
ஒவ்வொரு "டிக்கிலும்" இது எப்படி வேலை செய்கிறது:
- மூல தேர்வி தொடங்குகிறது. அது அதன் முதல் குழந்தையான `குறைந்த ஆரோக்கியத்தில் தப்பித்தல்` வரிசையை முயற்சிக்கிறது.
- `குறைந்த ஆரோக்கியத்தில் தப்பித்தல்` வரிசை முதலில் `IsHealthLow?` என்பதைச் சரிபார்க்கிறது. ஆரோக்கியம் குறைவாக இல்லை என்றால், இந்த நிபந்தனை `FAILURE` ஐத் திருப்பித் தருகிறது. முழு வரிசையும் தோல்வியடைகிறது, கட்டுப்பாடு மூலத்திற்குத் திரும்புகிறது.
- மூல தேர்வி, அதன் முதல் குழந்தை தோல்வியடைந்ததைக் கண்டு, அதன் இரண்டாவது குழந்தைக்கு நகர்கிறது: `வீரரைத் தாக்கு`.
- `வீரரைத் தாக்கு` வரிசை `IsPlayerVisible?` என்பதைச் சரிபார்க்கிறது. இல்லை என்றால், அது தோல்வியடைகிறது, மூலம் `ரோந்து` வரிசைக்கு நகர்கிறது, இதனால் சிப்பாய் அமைதியாக ரோந்து செல்கிறார்.
- இருப்பினும், `IsPlayerVisible?` வெற்றி பெற்றால், வரிசை தொடர்கிறது. அது `IsWeaponReady?` என்பதைச் சரிபார்க்கிறது. அது வெற்றி பெற்றால், அது `போர் தர்க்கம்` தேர்விக்குச் செல்கிறது. இந்த தேர்வி முதலில் `வீரரைச் சுடு` என்பதை முயற்சிக்கும். வீரர் பார்வைக் கோட்டில் இருந்தால், `Shoot` செயல் செயல்படுத்தப்படுகிறது.
- போரின் போது, சிப்பாயின் ஆரோக்கியம் குறைந்தால், அடுத்த டிக்கில் முதல் நிபந்தனையான (`IsHealthLow?`) வெற்றி பெறும். இது `குறைந்த ஆரோக்கியத்தில் தப்பித்தல்` வரிசையை இயக்கச் செய்யும், சிப்பாய் மறைவிடத்தைக் கண்டுபிடித்து மறைந்துகொள்ள வைக்கும். மூலம் ஒரு தேர்வி என்பதால், அதன் முதல் குழந்தை இப்போது வெற்றி பெறுவதால் (அல்லது இயங்குவதால்), அது `வீரரைத் தாக்கு` அல்லது `ரோந்து` கிளைகளை மதிப்பிடவே செய்யாது. இப்படித்தான் முன்னுரிமைகள் இயல்பாகக் கையாளப்படுகின்றன.
இந்தக் கட்டமைப்பு சுத்தமானது, படிக்க எளிதானது, மிக முக்கியமாக, விரிவாக்க எளிதானது. ஒரு கையெறி குண்டு வீசும் நடத்தையைச் சேர்க்க வேண்டுமா? `போர் தர்க்கம்` தேர்வியில் சுடுவதை விட அதிக முன்னுரிமையுடன் மற்றொரு வரிசையைச் செருகலாம், அதன் சொந்த நிபந்தனைகளுடன் (எ.கா., `IsPlayerInCover?`, `HasGrenade?`).
நடத்தை மரங்கள் vs. வரையறுக்கப்பட்ட நிலை இயந்திரங்கள்: சிக்கலான தன்மைக்கு ஒரு தெளிவான வெற்றியாளர்
ஒப்பீட்டை முறைப்படுத்துவோம்:
அம்சம் | நடத்தை மரங்கள் (BTs) | வரையறுக்கப்பட்ட நிலை இயந்திரங்கள் (FSMs) |
---|---|---|
மாடுலாரிட்டி | மிகவும் அதிகம். துணை மரங்களை (எ.கா., ஒரு "உதவிப் பெட்டியைக் கண்டுபிடி" வரிசை) ஒருமுறை உருவாக்கி, பல வெவ்வேறு AI-களில் அல்லது ஒரே மரத்தின் வெவ்வேறு பகுதிகளில் மீண்டும் பயன்படுத்தலாம். | குறைவு. தர்க்கம் நிலைகள் மற்றும் மாற்றங்களுக்குள் பொதிந்துள்ளது. நடத்தையை மீண்டும் பயன்படுத்துவது என்பது பெரும்பாலும் நிலைகளையும் அவற்றின் இணைப்புகளையும் நகலெடுப்பதாகும். |
அளவிடுதல் | சிறப்பானது. புதிய நடத்தைகளைச் சேர்ப்பது மரத்தில் ஒரு புதிய கிளையைச் செருகுவது போல எளிதானது. மற்ற தர்க்கத்தின் மீதான தாக்கம் உள்ளூர்மயமாக்கப்பட்டுள்ளது. | மோசமானது. நிலைகள் சேர்க்கப்படும்போது, சாத்தியமான மாற்றங்களின் எண்ணிக்கை அதிவேகமாக வளரக்கூடும், இது ஒரு "நிலை வெடிப்பை" உருவாக்குகிறது. |
வினைத்திறன் | இயல்பாகவே வினைபுரியக்கூடியது. ஒவ்வொரு டிக்கிலும் மரம் மூலத்திலிருந்து மீண்டும் மதிப்பிடப்படுகிறது, இது வரையறுக்கப்பட்ட முன்னுரிமைகளின் அடிப்படையில் உலக மாற்றங்களுக்கு உடனடி எதிர்வினையை அனுமதிக்கிறது. | குறைந்த வினைத்திறன். ஒரு குறிப்பிட்ட, முன் வரையறுக்கப்பட்ட மாற்றம் தூண்டப்படும் வரை ஒரு ஏஜென்ட் அதன் தற்போதைய நிலையில் "சிக்கிக் கொள்கிறது". அது அதன் ஒட்டுமொத்த இலக்கை தொடர்ந்து மறுமதிப்பீடு செய்வதில்லை. |
படிக்க எளிமை | அதிகம், குறிப்பாக காட்சி எடிட்டர்களுடன். படிநிலை அமைப்பு முன்னுரிமைகளையும் தர்க்க ஓட்டத்தையும் தெளிவாகக் காட்டுகிறது, இது விளையாட்டு வடிவமைப்பாளர்கள் போன்ற நிரலாளர்கள் அல்லாதவர்களுக்கும் புரியக்கூடியதாகிறது. | சிக்கலான தன்மை அதிகரிக்கும்போது குறைவாகிறது. ஒரு சிக்கலான FSM-ன் காட்சி வரைபடம் ஒரு தட்டு ஸ்பாகெட்டி போல தோற்றமளிக்கலாம். |
கேமிங்கிற்கு அப்பால் உள்ள பயன்பாடுகள்: ரோபாட்டிக்ஸ் மற்றும் சிமுலேஷன்
நடத்தை மரங்கள் கேமிங் துறையில் புகழ் பெற்றிருந்தாலும், அவற்றின் பயன்பாடு அதையும் தாண்டி விரிவடைகிறது. தன்னாட்சி, பணி சார்ந்த முடிவெடுக்கும் தேவைப்படும் எந்தவொரு அமைப்பும் BT-களுக்கு ஒரு முக்கிய வேட்பாளராகும்.
- ரோபாட்டிக்ஸ்: ஒரு கிடங்கு ரோபோவின் முழு வேலை நாளையும் ஒரு BT உடன் மாதிரியாக்கலாம். மூலம் `ஆர்டரை நிறைவேற்று` அல்லது `பேட்டரியை ரீசார்ஜ் செய்` என்பதற்கான ஒரு தேர்வியாக இருக்கலாம். `ஆர்டரை நிறைவேற்று` வரிசையில் `அலமாரிக்குச் செல்`, `பொருளை அடையாளம் காண்`, `பொருளை எடு`, மற்றும் `ஷிப்பிங்கிற்கு வழங்கு` போன்ற குழந்தைகள் அடங்கும். `IsBatteryLow?` போன்ற நிபந்தனைகள் உயர் மட்ட மாற்றங்களைக் கட்டுப்படுத்தும்.
- தன்னாட்சி அமைப்புகள்: ஆளில்லா வான்வழி வாகனங்கள் (UAVs) அல்லது ஆய்வுப் பயணங்களில் உள்ள ரோவர்கள் சிக்கலான பயணத் திட்டங்களை நிர்வகிக்க BT-களைப் பயன்படுத்தலாம். ஒரு வரிசையில் `மேலெழும்பு`, `வேபாயிண்டிற்குப் பற`, `பகுதியை ஸ்கேன் செய்`, மற்றும் `தளத்திற்குத் திரும்பு` ஆகியவை அடங்கும். ஒரு தேர்வி `தடை கண்டறியப்பட்டது` அல்லது `GPS இழக்கப்பட்டது` போன்ற அவசர பின்வாங்கல்களைக் கையாளக்கூடும்.
- சிமுலேஷன் மற்றும் பயிற்சி: இராணுவ அல்லது தொழில்துறை சிமுலேட்டர்களில், BT-கள் உருவகப்படுத்தப்பட்ட সত্তைகளின் (மக்கள், வாகனங்கள்) நடத்தையை இயக்கி, யதார்த்தமான மற்றும் சவாலான பயிற்சி சூழல்களை உருவாக்க முடியும்.
சவால்கள் மற்றும் சிறந்த நடைமுறைகள்
அவற்றின் சக்தி இருந்தபோதிலும், நடத்தை மரங்கள் சவால்கள் இல்லாமல் இல்லை.
- பிழைதிருத்தம்: ஒரு பெரிய மரத்தில் ஒரு AI ஏன் ஒரு குறிப்பிட்ட முடிவை எடுத்தது என்பதைக் கண்டுபிடிப்பது கடினமாக இருக்கலாம். மரம் இயங்கும்போது ஒவ்வொரு முனையின் நேரடி நிலையைக் (`SUCCESS`, `FAILURE`, `RUNNING`) காட்டும் காட்சி பிழைதிருத்தக் கருவிகள் சிக்கலான திட்டங்களுக்கு கிட்டத்தட்ட அவசியமானவை.
- தரவுத் தொடர்பு: முனைகள் தகவல்களை எவ்வாறு பகிர்ந்து கொள்கின்றன? ஒரு பொதுவான தீர்வு கரும்பலகை (Blackboard) எனப்படும் பகிரப்பட்ட தரவு சூழலாகும். `IsEnemyVisible?` நிபந்தனை கரும்பலகையிலிருந்து வீரரின் இருப்பிடத்தைப் படிக்கலாம், அதே சமயம் ஒரு `DetectEnemy` செயல் அந்த இருப்பிடத்தை அதில் எழுதும்.
- செயல்திறன்: ஒவ்வொரு பிரேமிலும் மிக பெரிய, ஆழமான மரத்தை டிக் செய்வது கணினி ரீதியாக செலவாகும். நிகழ்வு-இயக்கப்படும் BT-கள் (ஒரு தொடர்புடைய நிகழ்வு ஏற்படும்போது மட்டுமே மரம் இயங்கும்) போன்ற மேம்படுத்தல்கள் இதைக் குறைக்கலாம், ஆனால் இது சிக்கலான தன்மையைச் சேர்க்கிறது.
சிறந்த நடைமுறைகள்:
- ஆழமற்றதாக வைத்திருங்கள்: ஆழமான மரங்களை விட அகலமான மரங்களுக்கு முன்னுரிமை கொடுங்கள். ஆழமாகப் பொதிந்த தர்க்கத்தைப் பின்பற்றுவது கடினமாக இருக்கலாம்.
- மாடுலாரிட்டியைத் தழுவுங்கள்: வழிசெலுத்தல் அல்லது இருப்பு மேலாண்மை போன்ற பொதுவான பணிகளுக்கு சிறிய, மீண்டும் பயன்படுத்தக்கூடிய துணை மரங்களை உருவாக்குங்கள்.
- ஒரு கரும்பலகையைப் பயன்படுத்துங்கள்: அனைத்து நிலைத் தகவல்களுக்கும் ஒரு கரும்பலகையைப் பயன்படுத்தி உங்கள் மரத்தின் தர்க்கத்தை ஏஜென்ட்டின் தரவிலிருந்து பிரிக்கவும்.
- காட்சி எடிட்டர்களைப் பயன்படுத்துங்கள்: அன்ரியல் எஞ்சினில் உள்ளமைக்கப்பட்ட கருவி அல்லது யூனிட்டிக்கான பிஹேவியர் டிசைனர் போன்ற சொத்துக்கள் விலைமதிப்பற்றவை. அவை விரைவான முன்மாதிரி, எளிதான காட்சிப்படுத்தல் மற்றும் புரோகிராமர்களுக்கும் வடிவமைப்பாளர்களுக்கும் இடையே சிறந்த ஒத்துழைப்பை அனுமதிக்கின்றன.
எதிர்காலம்: நடத்தை மரங்கள் மற்றும் இயந்திர கற்றல்
நடத்தை மரங்கள் நவீன இயந்திர கற்றல் (ML) நுட்பங்களுடன் போட்டியிடவில்லை; அவை நிரப்புபவை. ஒரு கலப்பின அணுகுமுறை பெரும்பாலும் மிகவும் சக்திவாய்ந்த தீர்வாகும்.
- இலை முனைகளுக்கு ML: ஒரு BT உயர் மட்ட உத்தியைக் கையாள முடியும் (எ.கா., `தாக்க முடிவு செய்` அல்லது `தற்காக்க முடிவு செய்`), அதே சமயம் ஒரு பயிற்சி பெற்ற நரம்பியல் நெட்வொர்க் குறைந்த மட்ட செயலைச் செயல்படுத்த முடியும் (எ.கா., துல்லியமான, மனிதனைப் போன்ற குறிவைப்பிற்கு ML-ஐப் பயன்படுத்தும் ஒரு `AimAndShoot` செயல் முனை).
- அளவுரு சரிசெய்தலுக்கு ML: ஒரு சிறப்புத் திறனுக்கான குளிர்விக்கும் நேரம் அல்லது பின்வாங்குவதற்கான சுகாதார வரம்பு போன்ற ஒரு BT-க்குள் உள்ள அளவுருக்களை மேம்படுத்த வலுவூட்டல் கற்றல் பயன்படுத்தப்படலாம்.
இந்த கலப்பின மாதிரி ஒரு நடத்தை மரத்தின் கணிக்கக்கூடிய, கட்டுப்படுத்தக்கூடிய மற்றும் வடிவமைப்பாளருக்கு ஏற்ற கட்டமைப்பை இயந்திர கற்றலின் நுணுக்கமான, தகவமைக்கும் சக்தியுடன் இணைக்கிறது.
முடிவுரை: நவீன AI-க்கான ஒரு அத்தியாவசியக் கருவி
நடத்தை மரங்கள் வரையறுக்கப்பட்ட நிலை இயந்திரங்களின் கடுமையான வரம்புகளிலிருந்து ஒரு குறிப்பிடத்தக்க முன்னேற்றத்தைக் குறிக்கின்றன. முடிவெடுப்பதற்கான ஒரு மட்டுப்படுத்தப்பட்ட, அளவிடக்கூடிய மற்றும் மிகவும் படிக்கக்கூடிய கட்டமைப்பை வழங்குவதன் மூலம், நவீன தொழில்நுட்பத்தில் காணப்படும் சில மிகவும் சிக்கலான மற்றும் நம்பகமான AI நடத்தைகளை உருவாக்க டெவலப்பர்கள் மற்றும் வடிவமைப்பாளர்களுக்கு அவை அதிகாரம் அளித்துள்ளன. ஒரு பிளாக்பஸ்டர் விளையாட்டில் உள்ள தந்திரமான எதிரிகள் முதல் ஒரு எதிர்கால தொழிற்சாலையில் உள்ள திறமையான ரோபோக்கள் வரை, நடத்தை மரங்கள் எளிய குறியீட்டை அறிவார்ந்த செயலாக மாற்றும் தர்க்கரீதியான முதுகெலும்பை வழங்குகின்றன.
நீங்கள் ஒரு அனுபவமிக்க AI புரோகிராமராகவோ, ஒரு விளையாட்டு வடிவமைப்பாளராகவோ அல்லது ஒரு ரோபாட்டிக்ஸ் பொறியியலாளராகவோ இருந்தாலும், நடத்தை மரங்களில் தேர்ச்சி பெறுவது ஒரு அடிப்படைத் திறனில் முதலீடு செய்வதாகும். இது எளிய தர்க்கத்திற்கும் சிக்கலான நுண்ணறிவுக்கும் இடையிலான இடைவெளியைக் குறைக்கும் ஒரு கருவியாகும், மேலும் தன்னாட்சி அமைப்புகளின் உலகில் அதன் முக்கியத்துவம் தொடர்ந்து வளரும்.