Catastrophic cancellation
எண் பகுப்பாய்வில், பேரழிவு ரத்துசெய்தல் என்பது அருகிலுள்ள இரண்டு எண்களுக்கு நல்ல தோராயங்களைக் கழிப்பது அசல் எண்களின் வேறுபாட்டிற்கு மிகவும் மோசமான தோராயத்தை வழங்கக்கூடும். எடுத்துக்காட்டாக, இரண்டு ஸ்டட்கள் இருந்தால், ஒன்று நீளமாகவும் மற்றொன்று நீளமாகவும் இருந்தால், அவை சென்டிமீட்டருக்கு மட்டுமே நல்ல ஒரு ஆட்சியாளருடன் அளவிடப்பட்டால், தோராயங்கள் மற்றும் ஆக வரலாம். இவை உண்மையான நீளங்களுக்கு, ஒப்பீட்டு பிழையில், நல்ல தோராயங்களாக இருக்கலாம்ஃ தோராயங்கள் உண்மையான நீளங்களில் 2 சதவீதத்திற்கும் குறைவாகவே உள்ளன. இருப்பினும், தோராயமான நீளங்கள் கழிக்கப்பட்டால், நீளங்களுக்கு இடையிலான உண்மையான வேறுபாடு இருந்தாலும், வேறுபாடு இருக்கும். தோராயங்களின் வேறுபாடு,, உண்மையான மதிப்புகளின் வேறுபாட்டின் அளவின் 100% மூலம் பிழையாக உள்ளது. பேரழிவு ரத்துசெய்தல் எவ்வளவு பெரிய உள்ளீடுகளால் பாதிக்கப்படுவதில்லை-இது பெரிய மற்றும் சிறிய உள்ளீடுகளுக்கு பொருந்தும். இது வேறுபாடு எவ்வளவு பெரியது மற்றும் உள்ளீடுகளின் பிழையைப் பொறுத்தது. தோராயங்களில் இருந்து மற்றும் வரை கழிப்பதன் மூலமோ அல்லது தோராயங்களில் இருந்து மற்றும் வரை கழிப்பதன் மூலமோ அதே பிழை எழும். மேலே உள்ள உதாரணத்தைப் போலவே, வேறுபாடு சரியாக கணக்கிடப்பட்டாலும் பேரழிவு ரத்து செய்யப்படலாம்-இது மிதக்கும்-புள்ளி எண்கணிதம் போன்ற எந்தவொரு குறிப்பிட்ட வகையான எண்கணிதத்தின் பண்பு அல்ல; மாறாக, உள்ளீடுகள் தோராயமாக இருக்கும்போது, இது கழித்தலுக்கு உள்ளார்ந்ததாகும். உண்மையில், மிதக்கும்-புள்ளி எண்கணிதத்தில், உள்ளீடுகள் போதுமான நெருக்கமாக இருக்கும்போது, மிதக்கும்-புள்ளி வேறுபாடு ஸ்டெர்பென்ஸ் லெம்மாவால் சரியாக கணக்கிடப்படுகிறது-மிதக்கும்-புள்ளி கழித்தல் செயல்பாட்டால் அறிமுகப்படுத்தப்பட்ட வட்டப் பிழை எதுவும் இல்லை. முறையான பகுப்பாய்வு முறைப்படி, அருகிலுள்ள உள்ளீடுகளில் கழித்தல் தவறாக நிபந்தனை செய்யப்பட்டிருப்பதால் பேரழிவு ரத்து செய்யப்படுகிறதுஃ தோராயங்கள் மற்றும் சிறிய ஒப்பீட்டு பிழைகள் மற்றும் உண்மையான மதிப்புகளிலிருந்து முறையே இருந்தாலும், உண்மையான மதிப்புகளின் வேறுபாட்டிலிருந்து தோராயங்களின் வேறுபாட்டின் ஒப்பீட்டு பிழை உண்மையான மதிப்புகளின் வேறுபாட்டிற்கு நேர்மாறான விகிதாசாரமாகும்ஃ எனவே, உண்மையான மதிப்புகளின் வேறுபாட்டிலிருந்து தோராயங்களின் சரியான வேறுபாட்டின் ஒப்பீட்டு பிழை உண்மையான மதிப்புகள் மற்றும் நெருக்கமாக இருந்தால் தன்னிச்சையாக பெரியதாக இருக்கலாம். எண்ணியல் வழிமுறைகளில் அருகிலுள்ள எண்களை மிதக்கும்-புள்ளி எண்கணிதத்தில் கழிப்பது எப்போதும் பேரழிவுகரமான ரத்துசெய்தலை ஏற்படுத்தாது, அல்லது எந்த பிழையையும் கூட ஏற்படுத்தாது-ஸ்டெர்பென்ஸ் லெம்மாவால், எண்கள் போதுமான நெருக்கமாக இருந்தால் மிதக்கும்-புள்ளி வேறுபாடு துல்லியமானது. ஆனால் ரத்துசெய்தல் மற்ற மிதக்கும்-புள்ளி எண்கணிதத்தில் வட்டமிடுவதிலிருந்து எழும் உள்ளீடுகளில் பிழைகளை அதிகரிக்கக்கூடும். எடுத்துக்காட்டுஃ வர்க்கங்களின் வேறுபாடு கொடுக்கப்பட்ட எண்கள் மற்றும், மிதக்கும்-புள்ளி எண்கணிதத்தால் கணித செயல்பாட்டைக் கணக்கிடுவதற்கான அப்பாவித்தனமான முயற்சி, அளவில் நெருக்கமாக இருக்கும்போது பேரழிவு ரத்து செய்யப்படுவதற்கு உட்பட்டது, ஏனெனில் கழித்தல் வர்க்கத்தில் உள்ள வட்டப் பிழைகளை அம்பலப்படுத்தலாம். மிதக்கும் புள்ளி எண்கணிதத்தால் மதிப்பிடப்பட்ட மாற்று காரணி, பேரழிவு ரத்து செய்யப்படுவதைத் தவிர்க்கிறது, ஏனெனில் இது கழித்தலுக்கு வழிவகுக்கும் வட்டப் பிழையை அறிமுகப்படுத்துவதைத் தவிர்க்கிறது. எடுத்துக்காட்டாக, என்றால் மற்றும், பின்னர் வேறுபாட்டின் உண்மையான மதிப்பு. IEEE 754 பைனரி64 எண்கணிதத்தில், மாற்றுக் காரணியை மதிப்பீடு செய்வது சரியான முடிவை சரியாகத் தருகிறது (ரவுண்டிங் இல்லாமல்), ஆனால் அப்பாவித்தனமான வெளிப்பாட்டை மதிப்பீடு செய்வது மிதக்கும்-புள்ளி எண்ணைக் கொடுக்கிறது, அதில் பாதிக்கும் குறைவான இலக்கங்கள் சரியானவை மற்றும் மற்ற (அடிக்கோடிட்டுக் காட்டப்பட்ட) இலக்கங்கள் இடைநிலை வர்க்க மதிப்புகளைக் கணக்கிடும்போது ரவுண்டிங் காரணமாக இழந்த சொற்களைப் பிரதிபலிக்கின்றன. எடுத்துக்காட்டுஃ சிக்கலான ஆர்க்சின் சிக்கலான ஆர்க்சின் செயல்பாட்டைக் கணக்கிடும்போது, மடக்கை சூத்திரத்தை நேரடியாகப் பயன்படுத்த ஒருவர் ஆசைப்படலாம்ஃ இருப்பினும், என்று வைத்துக்கொள்வோம். பின்னர் மற்றும்; அவற்றுக்கிடையேயான வேறுபாட்டை அழைக்கவும்-ஒரு சிறிய வேறுபாடு, கிட்டத்தட்ட பூஜ்ஜியம். மிதக்கும்-புள்ளி எண்கணிதத்தில் ஏதேனும் பிழையுடன் மதிப்பிடப்பட்டால், மிதக்கும்-புள்ளி வட்டத்தைக் குறிக்கும் போது, அருகிலுள்ள இரண்டு எண்களின் வேறுபாட்டைக் கணக்கிடுவது, இரண்டும் மிகவும் நெருக்கமாக இருந்தால், ஒரு உள்ளீட்டில் உள்ள பிழையை ஒரு காரணியால் பெருக்கலாம்-கிட்டத்தட்ட பூஜ்ஜியமாக இருந்ததால் மிகப் பெரிய காரணி. எடுத்துக்காட்டாக, இதன் உண்மையான மதிப்பு தோராயமாக இருந்தால், ஆனால் ஐ. இ. இ. இ 754 பைனரி64 எண்கணிதத்தில் அப்பாவித்தனமான மடக்கை சூத்திரத்தைப் பயன்படுத்துவது பதினாறு இலக்கங்களில் ஐந்து மட்டுமே சரியானதாகவும், மீதமுள்ள (அடிக்கோடிட்டுக் காட்டப்பட்ட) அனைத்து குப்பைகளையும் கொடுக்கலாம். for விஷயத்தில், அடையாளத்தைப் பயன்படுத்துவது ரத்து செய்யப்படுவதைத் தவிர்க்கிறது, ஏனெனில் ஆனால், எனவே கழித்தல் என்பது ரத்து செய்யப்படாத அதே அடையாளத்துடன் திறம்பட சேர்க்கப்படுகிறது. எடுத்துக்காட்டுஃ ரேடிக்ஸ் மாற்றம் மென்பொருள் நிரல்களில் உள்ள எண் மாறிலிகள் பெரும்பாலும் தசமத்தில் எழுதப்படுகின்றன, அதாவது சி துண்டு இரட்டை x = 1.000000000000001; x என்ற IEEE 754 பைனரி 64 மாறியை அறிவிக்கவும் துவக்கவும். இருப்பினும், இது ஒரு பைனரி64 மிதக்கும்-புள்ளி எண் அல்ல; இந்த துண்டில் x துவக்கப்படும் அருகிலுள்ள ஒன்று. தசம மிதக்கும் புள்ளியில் இருந்து பைனரி மிதக்கும் புள்ளிக்கு ரேடிக்ஸ் மாற்றம் ஒரு சிறிய ஒப்பீட்டு பிழையை மட்டுமே ஏற்படுத்துகிறது என்றாலும், பேரழிவு ரத்துசெய்தல் அதை மிகப் பெரியதாக பெருக்கலாம்ஃ இரட்டை x = 1.000000000000001;// 1 + 5 * 2 ^ {-52} இரட்டை y = 1.000000000000002;// 1 + 9 * 2 ^ {-52} இரட்டை z = y-x;// வேறுபாடு சரியாக 4 * 2 ^ {-52} ஆகும். x இன் மற்றும் y இன் தொடர்புடைய பிழைகள் இரண்டும் கீழே உள்ளன, மேலும் மிதக்கும்-புள்ளி கழித்தல் y-x சரியாக ஸ்டெர்பென்ஸ் லெம்மாவால் கணக்கிடப்படுகிறது. ஆனால் உள்ளீடுகள் நல்ல தோராயங்களாக இருந்தாலும், கழித்தல் சரியாக கணக்கிடப்பட்டாலும், தோராயங்களின் வேறுபாடு தசமத்தில் எழுதப்பட்டபடி அசல் மதிப்புகளின் வேறுபாட்டிலிருந்து ஒப்பீட்டு பிழையைக் கொண்டுள்ளதுஃ பேரழிவு ரத்துசெய்தல் ரேடிக்ஸ் மாற்றத்தில் ஒரு சிறிய பிழையை பெருக்கியது வெளியீட்டில் ஒரு பெரிய பிழையாக. தீங்கற்ற ரத்துசெய்தல் ரத்துசெய்தல் சில நேரங்களில் எண் வழிமுறைகளில் பயனுள்ளதாகவும் விரும்பத்தக்கதாகவும் இருக்கும். எடுத்துக்காட்டாக, 2Sum மற்றும் Fast2Sum வழிமுறைகள் இரண்டும் ஒரு ரவுண்டிங் பிழையின் பின்னர் அத்தகைய ரத்துசெய்தலை நம்பியுள்ளன, ஒரு மிதக்கும்-புள்ளி கூட்டல் செயல்பாட்டில் பிழை என்ன என்பதை ஒரு மிதக்கும்-புள்ளி எண்ணாக துல்லியமாக கணக்கிடுவதற்காக. செயல்பாடு, புள்ளிகளில் அப்பாவியாக மதிப்பீடு செய்யப்பட்டால், வட்டத்தின் பெரும்பாலான இலக்கங்களை இழக்கும். இருப்பினும், செயல்பாடு அருகிலுள்ள உள்ளீடுகளில் நன்கு நிபந்தனை செய்யப்படுகிறது. பிழையை நேரடியாக மதிப்பீடு செய்வதைத் தவிர்ப்பதற்காக அதை சுரண்டல்கள் என்று மீண்டும் எழுதுவது ரத்து செய்யப்படுகிறது. இது வேலை செய்கிறது, ஏனெனில் எண்ணில் ரத்துசெய்தல் மற்றும் வகுப்பில் ரத்துசெய்தல் ஒருவருக்கொருவர் எதிர்க்கின்றன; செயல்பாடு பூஜ்ஜியத்திற்கு அருகில் நன்கு நிபந்தனைக்குட்பட்டது, இது ஒரு நல்ல தோராயத்தை அளிக்கிறது, இதனால் இதற்கு ஒரு நல்ல தோராயத்தை அளிக்கிறது. குறிப்புகள் எண் பகுப்பாய்வு