Examples of using Мемоизација in Serbian and their translations into English
{-}
-
Colloquial
-
Ecclesiastic
-
Computer
-
Latin
-
Cyrillic
Ово се још назива и мемоизација.
Мемоизација“ има специфично значење у рачунарству.
У контексту неких логичких програмских језика, мемоизација је такође позната као табелирање;
На тај начин мемоизација омогућава да функција постане ефикаснија у времену извршења, што се више позива.
У контексту неких логичких програмских језика, мемоизација је такође позната као табелирање; погледати такође лукап табеле.
Мемоизација се много користи у компајлерима за функционалне програмске језике, који често користе стратегију еваулације позива по имену.
Једно једноставно решење се зове мемоизација: сваки пут када израчунамо минималну цену која је потребна да се помноже два одређена подниза, ми је запамтимо.
Мемоизација је начин на који се смањује трошак времена извршења функције у замену за трошак меморијског простора; што значи да мемоизоване фукнције постају оптимизоване по брзини на рачун већег коришћења меморијског простора рачунара.
У језицима који омогућавају затварање, мемоизација може да се примени имплицитно помоћу функционалног објекта са функтором који враћа тај запаковани мемоизовани функционални објекат.
Када се комбинује са лукап табелом која садржи резултате решавања под-проблема( да би се избегло њихово решавање у више наврата и стварања додатног времена израчунавања),може се назвати динамично програмирање или мемоизација.
Иако је везана за кеширање, мемоизација указује на специфичан случај ове оптимизације, разликовајући је од облика кеширања као што су баферовање или замена страница.
Мемоизација у рачунарству, је техника оптимизације која се најпре користи да би се убрзало извршавање рачунарских програма тако што се складиште резултати„ скупих“ позива функција и враћају кеширани резултат када се поново јаве исти улази.
Док су повезани са лукап табелама, с' обзиром да мемоизација често користи такве табеле у својој имплементацији, мемоизација попуњава кеш са резултатима транспарентно у току извршења, ако је потребно, пре него унапред.
Док мемоизација може да буде придружена функцијама интерно и експлицитно од стране програмера, на исти такав начин горе поменута мемоизована функција факторијел може да буде аутоматски мемоизована екстерно.
Насупрот томе, у примени мемоизације за оптимизацију брзине,Форд је приказао да мемоизација може да гарантује да граматике за парсирање израза могу да се изврше у линеарно времену, чак и код језика који имају најгоре бектрекинг-понашање.
Мемоизација у рачунарству, је техника оптимизације која се најпре користи да би се убрзало извршавање рачунарских програма тако што се складиште резултати„ скупих“ позива функција и враћају кеширани резултат када се поново јаве исти улази.
Док је Норвиг повећао снагу парсера помоћу мемоизације, унапређени парсер је и даље био временски комплексан као иЕрлијев алгоритам који приказује случај коришћења мемоизације за нешто друго него што је мемоизација брзине.
Термин„ мемоизација“ је увео Доналд Мичи( Donald Michie) 1968. године и изведен је од латинске речи„ memorandum“(„ бити запамћен“), која се у Енглеском језику скраћено„ memo“ и има значење„ претварати резултате функција у нешто што ће бити запамћено“.
У програмским језицима где су функције првокласни објекти( као што су Луа, Пајтон или Перл),аутоматска мемоизација се може имплементирати заменом( у фази извршења) функције са израчунатом вредношћу чим је вредност израчуната за задати скуп параметара.
Ово се често назива подели па владај метод; када се комбинује са лукап табелом која садржи резултате решавања под-проблема( да би се избегло њихово решавање у више наврата и стварања додатног времена израчунавања),може се назвати динамично програмирање или мемоизација.
Мемоизација је испитана као стратегија парсирања 1991. године од стране Норвига, који је показао да алгоритам који је сличан коришћењу динамичког програмирања из скупова стања у Ерлијевом алгоритму( 1970. године) и табелама у CYK алгоритму Кока Јунгера и Касамију може бити генерисан увођењем аутоматске мемоизације у једноставан повратни рекурзивни силазни парсер да би решио проблем експоненцијалне временске комплексности.
Ричард Фрост је такође користио мемоизацију да би смањио експоненцијалну временску комплексност парсерских комбинатора који може да се посматра као„ чисто функционални топ-даун-бектрекинг“ парсинг техника.
За време ажурирања мемо-табеле, процес мемоизације групише( потенцијално екпоненцијалне) неједнозначне резултате и обезбеђује полиномиалне захтеве за простором.
Асоцијативни низови имају широку примену укључујући и основне шаблоне попут мемоизације и декоратора шаблона.[ 4].
Омот функција може да се користе за проверу параметра( тако рекурзивна функција прескаче њих), врши иницијализацију( издвојити меморију, покрените променљиве), осебно за помоћне променљиве као што су" ниво рекурзије" илиделимичне прорачуне за мемоизацију, ручне изузетаке и грешаке.
Џонсон и Дере приказују другу такву примену мемоизације која се не односи на брзину:коришћење мемоизације да би се одложила резолуција лингвистичких ограничења до тачке у процесу парсирања где су акумулиране довољне информације, да би се та ограничења разрешила.
Године Фрост, Хафис иКалахан описали су топ-даун алгоритам за парсирање који користи мемоизацију да би умањили редундантна израчунавања и да би омогућили било који облик да би обезбедили извршење било ког облика неједнозначних CFG у полиномиалном времену( Θ( n4) за граматике са левом рекурзијом и Θ( n³) за граматике са нелевом рекурзијом).
Њихово коришћење мемоизације није само ограничено на повраћај претходно израчунатих резултата када се парсер употребљава на истим улазним вредностима више пута( што је суштински важно за захтев за полиномиалним временом); оно је специјализовано и за следеће допунске задатке: Процес мемоизације( који може да се разматра као„ омотач“ око било ког извршења парсера) укључује растући директно лево рекурзивно парсирање, уводећи рестрикцију дубине у зависности од дужине улаза и тренутне позиције.
На пример, у горњем примеру, viking_ chorus може изазвати menu_ item да се покрене 8 пута( видети Спем скеч) за сваки пут када је позвано: def viking_ chorus( myfunc): def inner_ func(* args,** kwargs): for i in range( 8): myfunc(* args,** kwargs) return inner_ func Канонске користи декоратора функције су прављење метода класа или статичних метода, додавање својстава функцији, праћење, постављање предуслова и постуслова, и синхронизација, али могу бити коришћениза много више осим, укључујући репно рекурзивну елиминацију, мемоизацију и чак унапређивање писања декоратора.
Примена аутоматске мемоизације су формално истражене и у студијама преписивања термина и вештачкој интелигенцији.