Кіріспе
Аффиналық арифметика (АА) – өзін-өзі тексерілген сандық талдаудың моделі. АА-да қызығушылық тудыратын шамалар белгілі бір бастапқы айнымалылардың аффиндік комбинациялары (аффиндік түрлер) түрінде көрсетіледі, олар деректердегі немесе есептеулер кезінде жасалған жуықтаулардағы белгісіздік көздерін білдіреді. Аффиналық арифметика интервалдық арифметиканы (IA) жетілдіру мақсатында жасалған, сондай-ақ ол жалпыланған интервалдық арифметикаға, бірінші реттік Тейлор арифметикасына, орталық еңіс моделіне және эллипсоидтық есептеуге ұқсас – бұл жалпы формулаларға бірінші реттік кепілді жуықтамаларды автоматты түрде алуға мүмкіндік беретін әдіс. Аффиналық арифметика функцияларды тегістеуге кепілді шекаралар қажет болатын кез келген сандық мәселеде пайдалы болуы мүмкін, мысалы, сызықтық емес теңдеулер жүйесін шешу, динамикалық жүйелерді талдау, функцияларды интегралдау, дифференциалдық теңдеулер және т.б. Қолданылу аймақтарына сәулелерді қадағалау, қисықтарды сызу, жасырын және параметрлік беттердің қиылысын табу, қателерді талдау (математика), процестерді басқару, электр тізбектерінің нашар жағдайларын талдау және тағы да басқалары кіреді.
Афиналық арифметикалық операциялар
Аффиналық түрлер стандартты арифметикалық амалдармен немесе қарапайым функциялармен үйлестіріліп, формулаларға нақты шамалауды қамтамасыз етуге болады.
Сырлас операциялар
Мысалы, X және Y үшін аффиндік формалар берілген болса, Z = X + Y үшін аффиндік форманы формаларды қосу арқылы, яғни әр j үшін орнату арқылы алуға болады. Сол сияқты, Z = X үшін аффиндік форманы есептеуге болады, мұнда белгілі тұрақты, әр j үшін орнату арқылы. Бұл Z = X + Y + сияқты кез келген аффиндік операцияларға да қатысты.
Қауымдасты емес операциялар
Аффиндік емес операция, мысалы, көбейту, дәл орындалмайды, өйткені нәтижесі бастапқы аффиндік формада болмайды. Ондай жағдайда, F функциясын бірінші реттікке жуықтайтын және диапазондарында және қолданылатын сәйкес аффиндік G функциясын алу керек; содан кейін есептеу керек, мұнда – абсолюттік қателік үшін жоғарғы шек, ал – бұрынғы формаларда кездеспейтін жаңа символдық айнымалы. Осы форма Z шамасы үшін кепілді қоршауды береді; сонымен қатар, аффиндік формалар (X, Y, , Z) нүктесі үшін кепілді қоршауды ұсынады, бұл жеке формалардың диапазондығының декарт көбейтіндісінен әлдеқайда кіші болады.
Тізбектеу операциялары
Жүйелі түрде осы әдісті қолдану берілген шамалар бойынша кез келген есептеулерді олардың аффиндік түрлері бойынша эквивалентті есептеулермен алмастыруға мүмкіндік береді, кіріс және шығыс арасындағы бірінші реттік корреляцияларды сақтай отырып, және бірлескен диапазонның толық қамтылуын қамтамасыз етеді. Формуладағы әр арифметикалық операцияны немесе элементарлық функцияны шақыруды тиісті AA кітапханасының процедурасын шақырумен алмастыру жеткілікті. Жұмсақ функциялар үшін, әр қадамда жасалған жуықтау қателіктері кіріс интервалдарының ені h-тің h2 квадратына пропорционалды. Осы себепті, аффиндік арифметика көбінесе стандартты интервалдық арифметикаға қарағанда (қателіктері h-ге пропорционалды) әлдеқайда нақты шекаралар береді.
Түзету қателері
Кепілдік берілген қоршауды қамтамасыз ету үшін аффиналық арифметикалық операциялар нәтижедегі коэффициенттерді есептеудегі дөңгелектеу қателерін ескеруі керек. Бұл әрбір шаманы белгілі бір бағытта дөңгелектеу арқылы жасауға болмайды, себебі мұндай дөңгелектеу бір символды бөлісетін аффиналық формалар арасындағы тәуелділікті бұзады. Оның орнына, әрбір шаманың дөңгелектеу қатесіне жоғарғы шек есептеліп, олардың барлығы жаңа символдың коэффициентіне қосылуы керек (жоғарылату арқылы). Осылайша, дөңгелектеу қателерінің салдарынан, Z = X және Z = X + Y сияқты тікелей аффиналық операциялар да қосымша мүше қосады. Дөңгелектеу қателерін өңдеу АА операцияларының кодтық күрделілігі мен орындалу уақытын арттырады. Егер бұл қателер маңызды емес деп танылса (кіріс деректеріндегі белгісіздіктермен және/немесе сызықтық жуықтау қателерімен салыстырғанда), дөңгелектеу қатесін бақылауды іске асырмайтын жеңілдетілген АА кітапханасын қолдануға болады.
The handling of roundoff errors increases the code complexity and execution time of AA operations. In applications where those errors are known to be unimportant (because they are dominated by uncertainties in the input data and/or by the linearization errors), one may use a simplified AA library that does not implement roundoff error control.
Аффиналық проекция моделі
Аффинальды арифметиканы матрицалық түрде келесідей қарастыруға болады. Есептеу кезінде белгілі бір сәтте қолданылатын барлық кіріс және есептелген шамалар болсын. Бұл шамалардың аффиндік формалары бір ғана коэффициент матрицасы А және вектор b арқылы көрсетілуі мүмкін, мұнда элементі шаманың аффиндік формасындағы символдың коэффициенті болып табылады; ал – сол форманың тәуелсіз мүшесі. Онда шамалардың бірлескен диапазоны – яғни, нүктесінің диапазоны – гиперкубтың А-дан В-ға анықталған аффиналық түрлендіру арқылы алынған кескіні болады. Осы аффиналық түрлендірудің диапазоны шамалардың бірлескен диапазонын шектеуші зонтотоп болып табылады. Сондықтан, АА-ны «зонтотоп арифметикасы» деп айтуға болады. АА-ның әр қадамында әдетте А матрицасына бір қатар және бір баған қосылады.
The range of this affine map is a zonotope bounding the joint range of the quantities Thus one could say that AA is a "zonotope arithmetic". Each step of AA usually entails adding one more row and one more column to the matrix A.
Афиналық нысанды оңайлату
Әрбір АА операциясы әдетте жаңа символ жасайтындықтан, аффиндік формадағы мүшелер саны оны есептеуге жұмсалган операциялар санына пропорционал болуы мүмкін. Сондықтан, көбінесе екі немесе одан көп символдарды кішірек жаңа символдар жиынтығымен алмастыратын "символ конденсациясы" қадамдарын қолдану қажет. Геометриялық тұрғыдан алғанда, бұл күрделі P зонатопын оны қамтитын қарапайым Q зонатопымен алмастыруды білдіреді. Бұл операция соңғы зонатоптың бірінші дәрежелі жуықтау қасиетін жоймай орындалуы мүмкін.
Матрицаны іске асыру
Аффиналық арифметика жоғарыда сипатталғандай, A глобалды массив және b глобалды вектор арқылы іске асырылуы мүмкін. Бұл тәсіл есептелетін шамалар жиынтығы шағын және алдын ала белгілі болған жағдайда жеткілікті. Осы тәсілде бағдарламашы қатар индекстері мен қызығушылық тудыратын шамалар арасындағы сәйкестікті сырттан ұстап тұруы керек. Глобалды айнымалылар қазірге дейін есептелген аффиналық формалардың (қатарлардың) m саны мен қазірге дейін пайдаланылған символдардың (бағандардың) n санын сақтайды; олар әрбір АА операциясында автоматты түрде жаңартылады.
Векторды іске асыру
Сонымен қатар, әр аффиндік түрді коэффициенттердің жеке векторы ретінде жүзеге асыруға болады. Бұл тәсіл бағдарламалау үшін ыңғайлырақ, әсіресе AA-ны іштен пайдаланатын кітапхана процедураларын шақыру кезінде. Әр аффиндік түрге есте сақтауға қолайлы атау берілуі мүмкін; қажет болғанда жадтан орын бөлініп, процедураларға жіберіліп, енді қажет болмағанда босатылуы мүмкін. Осылайша, AA коды бастапқы формулаға көбірек ұқсайды. Глобалды айнымалыда қазітке дейін қолданылған символдардың n саны сақталады.
Спарс векторды іске асыру
Ұзақ есептеулерде болашақта қолданылатын "тірі" шамалар жиыны, есептелген барлық шамалар жиынынан әлдеқайда кіші болады; сондай-ақ "тірі" символдар жиыны үшін де осы жағдай орынды. Мұндай жағдайда матрицалық және векторлық жүзеге асырулар уақыт пен жадты тым көп шығындайды. Ондай кезде сирету (sparse) жүзеге асыруды қолдану керек. Яғни, әрбір аффиндік форма тек нөлдік емес коэффициенттері бар (j, α) жұптарының тізімі түрінде сақталады. Тиімділік үшін, мүшелер j бойынша реттелген болуы керек. Бұл бейнелеу АА операцияларын сәл күрделендіреді; алайда, әрбір операцияның құны осы уақытқа дейін қолданылған барлық символдар санының орнына, операндардағы нөлдік емес мүшелер санына пропорционалды болады. Осы бейнелеуді LibAffa қолданады.