非确定性编程非确定性编程,是一种编程范型,它可以在程序的特定点(叫做选择点)上,指定各种可交替的程序流程。不像if…then语句,在这些交替者(alternative)的之间选择的方法,不能直接由编程者来指定;程序必须通过应用到所有选择点上的某种通用方法,在运行时间于这些交替者之间做出决定。编程者指定有限数目的交替者,而程序此后必须在它们之间做出选择,(事实上“Choose”是非确定性算子的典型名字)。可以形成选择点的一个层级,具有着高层选择引出的包含其中低层选择的诸分支。 概述选择的一种方法,体现为回溯系统(比如Amb[1],或Prolog中的合一),其中一些交替者可能“失败”,导致程序回溯并尝试其他交替者。如果所有交替者在一个特定选择点上都失败了,则整个分支失败,程序将进一步回溯到一个更早的选择。一种复杂的问题是,由于任何选择都是试探性的而可以被重做,系统必须能够通过撤销执行一个最终失败了的分支所导致的副作用,恢复早先的程序状态。 选择的另一种方法是强化学习,体现在系统如Alisp中[2]。在这种系统中,不做回溯,系统跟踪某种对成功的衡量,并学习在哪种条件下(可以影响选择的内部程序状态和环境输入二者),哪种选择经常导致成功。这些系统适合于应用到机器人和一些其他领域,其中回溯会涉及到,所尝试撤销的行动是在动态环境中进行的,而这将是困难或不实际的。 引用
|
Index:
pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve
Portal di Ensiklopedia Dunia