Недетерминистичко програмирање

Недетерминистички програмски језик је језик који се може одредити, у извесним тачкама програма (назван "Избор тачке"), различите алтернативе за ток програма. За разлику од, ако - онда изјави, метода избора између ових алтернатива није директно наведена од стране програмера; Програм мора да одлучи управљањем током између алтернатива, преко неке опште методе примењујући на свим изборима тачака. Програмер наводи ограничен број алтернатива, али програм касније мора да изабере између њих . ( "Изабери" је, у ствари, типично име за недетерминистичке оператере). Хијерархија одабери тачке могу бити формиране, са избором виших нивоа који су довели до гране које садрже изборе на нижем нивоу у њима. 

Једна од метода избора је оличена у одустајању система (као што су АМБ , или уједињење у Пролог ), у којима неке алтернативе могу " пропасти, " изазивање програма да одустане и покушати друге алтернативе . Ако све алтернативе не изазову у одређеном тренутку избора , онда цео грана пада , а програм ће додатно одустати , у старији избору тачке . Један компликација је да, сваки избор је привремен и може бити поново направљен, систем мора бити у стању да поврати стари програм стања одвртањем споредних ефеката изазвањем делимично извршене гране која на крају није успела. 

Друга метода избора је јачање учење, оличена у системима као што су Алисп . У таквим системима, радије него одустајање , систем прати неку меру успеха и учи што избори често доводи до успеха, и у којим ситуацијама (и унутрашњи Програм стања и улаз животне средине могу утицати на избор). Ови системи су погодни за примену у роботици и другим областима у којима би повлачење изјаве укључивало покушавање да се поништи акција извода у динамичном окружењу, што може бити тешко или непракрично.

Види још уреди

Литература уреди