Кіріспе

Әртүрлі есептеулерді біріктіретін техника. Доветейлинг – алгоритмдік жобалауда қолданылатын, әртүрлі есептеулерді бірдей уақытта орындауға мүмкіндік беретін техника. Доветейлинг қолданатын алгоритмдер кейде доветайлер деп аталады.

Мысалдар

Мүмкін, шексіз ұзындықтағы жолды қамтитын ағаш туралы ойланыңыз (бірақ әрбір түйіннің тек шекті саны бар балалары бар): егер осы ортада тереңдікке бірінші іздеу жүргізілсе, іздеу шексіз жолмен төмен қарай жылжып, ешқашан қайтып келмеуі мүмкін, нәтижесінде ағаштың бір бөлігі зерттелмей қалуы мүмкін. Дегенмен, егер ендікке бірінші іздеу қолданылса, шексіз жолдың болуы енді проблема емес: әрбір түйін тамырданғы қашықтығына сәйкес тармақталады, сондықтан шексіз жол тек сол жолмен іздеу жүргізілетін бөлікке ғана әсер етеді. Біз бұл ағашты бағдарламалар жиынтығына теңестіре аламыз; бұл жағдайда тереңдікке бірінші тәсіл бір уақытта бір бағдарламаны іске қосуға сәйкес келеді, келесі бағдарламаға тек ағымдағы бағдарламаның орындалуы аяқталғаннан кейін ғана көшесіз. Егер бағдарламалардың бірі шексіз уақыт бойы жұмыс істесе, онда бұл көшу ешқашан болмайды. Ағаштың бір деңгейіндегі әрбір балаға өтудің ендікке бірінші тәсілі – бұл доппен үйлестірудің бір мысалы, онда келесі бағдарламаға өтуден бұрын әрбір бағдарлама үшін бір қадам жасалады. Осылайша, аяқталмайтын бағдарламаның болуы мүмкін болса да, әрбір бағдарламада прогресс жасалады. Тағы бір мысал – детерминистік емес Тьюринг машинасы M-ді детерминистік машинамен (мысалы, әмбебап Тьюринг машинасымен) модельдеу. Мұндай жағдайда, M-нің есептеу тармақтарының бірінде шексіз цикл болған жағдайда, біз доппен үйлестіруді пайдалануымыз керек.

Бір мезгілде шексіз көп есептеулер

Барлығы мүмкін шексіз ұзын бағдарламалардың шексіз саны болған жағдайда, ендік іздеу де, тереңдік іздеу де барлық бағдарламалар бойынша прогресске қол жеткізу үшін жеткіліксіз. Оның орнына, келесі техниканы қолдануға болады: бірінші бағдарламаның бірінші қадамын орындаңыз; содан кейін бірінші бағдарламаның екінші қадамын және екінші бағдарламаның бірінші қадамын орындаңыз; содан кейін бірінші бағдарламаның үшінші қадамын, екінші бағдарламаның екінші қадамын және үшінші бағдарламаның бірінші қадамын орындаңыз; және т.с.с. Осылайша, бұл әдіс диагональдау деп те аталады (мысалы, Хаскеллдің "universe" пакеті немесе "Omega" монадасында қолданылатын).

Этимология

Ағаш өңдеудегі құйрықша тігісінің өрілген ұштарымен салыстыру.