Look-ahead (backtracking)
બેકટ્રેકિંગ અલ્ગોરિધમ્સમાં, આગળ જુઓ એ પેટા પ્રક્રિયા માટેનો સામાન્ય શબ્દ છે જે તેના મૂલ્યોમાંથી એકનું મૂલ્યાંકન કરવા માટે શાખા ચલ પસંદ કરવાની અસરોની આગાહી કરવાનો પ્રયાસ કરે છે. આગળ જોવાના બે મુખ્ય ઉદ્દેશો એ છે કે આગળનું મૂલ્યાંકન કરવા માટે ચલ પસંદ કરવું અને તેને સોંપવા માટે મૂલ્યોનો ક્રમ પસંદ કરવો. અવરોધ સંતોષ સામાન્ય અવરોધ સંતોષ સમસ્યામાં, દરેક ચલ એક ક્ષેત્રમાં મૂલ્ય લઈ શકે છે. બેકટ્રેકિંગ અલ્ગોરિધમ તેથી પુનરાવર્તિત રીતે ચલ પસંદ કરે છે અને તેના દરેક સંભવિત મૂલ્યોનું પરીક્ષણ કરે છે; દરેક મૂલ્ય માટે અલ્ગોરિધમ પુનરાવર્તિત રીતે ચલાવવામાં આવે છે. આગળ જુઓ નો ઉપયોગ મૂલ્યાંકન કરવા માટે આપેલ ચલ પસંદ કરવાની અસરોને તપાસવા અથવા તેને આપવા માટેના મૂલ્યોનો ક્રમ નક્કી કરવા માટે થાય છે. આગળ જુઓ તકનીકો ચલ પર ચોક્કસ સોંપણીની અસરનું મૂલ્યાંકન કરવાની સરળ તકનીકને ફોરવર્ડ ચેકિંગ કહેવામાં આવે છે. વર્તમાન આંશિક ઉકેલ અને મૂલ્યાંકન કરવા માટે ઉમેદવારની સોંપણીને જોતાં, તે તપાસે છે કે અન્ય ચલ સુસંગત મૂલ્ય લઈ શકે છે કે કેમ. બીજા શબ્દોમાં કહીએ તો, તે પહેલા વર્તમાન આંશિક ઉકેલને માનવામાં આવતા ચલ માટે કામચલાઉ મૂલ્ય સાથે વિસ્તરે છે; તે પછી તે દરેક અન્ય ચલને ધ્યાનમાં લે છે જે હજુ પણ અસાઇન થયેલ છે, અને તપાસે છે કે તેનું મૂલ્યાંકન અસ્તિત્વમાં છે કે કેમ તે વિસ્તૃત આંશિક ઉકેલ સાથે સુસંગત છે કે કેમ. વધુ સામાન્ય રીતે, ફોરવર્ડ ચેકિંગ તે મૂલ્યો નક્કી કરે છે જે વિસ્તૃત સોંપણી સાથે સુસંગત છે. એક આગળ જુઓ તકનીક કે જે વધુ સમય માંગી શકે છે પરંતુ વધુ સારા પરિણામો આપી શકે છે તે ચાપ સુસંગતતા પર આધારિત છે. એટલે કે, નવા ચલ માટે મૂલ્ય સાથે વિસ્તૃત આંશિક ઉકેલ આપવામાં આવે તો, તે તમામ અસાઇન કરેલા ચલ માટે ચાપ સુસંગતતા લાગુ કરે છે. બીજા શબ્દોમાં કહીએ તો, કોઈપણ અસાઇન કરેલા ચલ માટે, જે મૂલ્યો સતત અન્ય ચલ સુધી વિસ્તૃત કરી શકાતા નથી તે દૂર કરવામાં આવે છે. ફોરવર્ડ ચેકિંગ અને આર્ક સુસંગતતા વચ્ચેનો તફાવત એ છે કે પહેલું સુસંગતતા માટે સમયે માત્ર એક જ અસાઇન કરેલા ચલની તપાસ કરે છે, જ્યારે બીજું પરસ્પર સુસંગતતા માટે અસાઇન કરેલા ચલની જોડીની પણ તપાસ કરે છે. અવરોધ સંતોષ સમસ્યાઓને ઉકેલવા માટે લુક-ફોરવર્ડનો ઉપયોગ કરવાની સૌથી સામાન્ય રીત એ આર્ક-સુસંગતતા જાળવવાનું (MAC) અલ્ગોરિધમ છે. ચાપ સુસંગતતા ધરાવતી અન્ય બે પદ્ધતિઓ પૂર્ણ અને આંશિક આગળ જુઓ છે. તેઓ ચાપ સુસંગતતા લાગુ કરે છે, પરંતુ ચલની દરેક જોડી માટે નહીં. ખાસ કરીને, સંપૂર્ણ દેખાવ અસાઇન કરેલા ચલોની દરેક જોડીને ધ્યાનમાં લે છે, અને તેમની વચ્ચે ચાપ સુસંગતતા લાગુ કરે છે. આ વૈશ્વિક ચાપ સુસંગતતાને લાગુ કરવા કરતાં અલગ છે, જેના માટે સંભવતઃ ચલની જોડી પર એકથી વધુ વખત પુનર્વિચાર કરવાની જરૂર પડી શકે છે. તેના બદલે, એકવાર આગળ સંપૂર્ણ નજરથી ચલની જોડી વચ્ચે ચાપ સુસંગતતા લાગુ થઈ જાય, તો જોડી હવે ગણવામાં આવતી નથી. આગળ આંશિક દેખાવ સમાન છે, પરંતુ ચલોનો આપેલ ક્રમ ગણવામાં આવે છે, અને ચાપ સુસંગતતા દરેક જોડી માટે માત્ર એક જ વાર લાગુ કરવામાં આવે છે. ચાપ સુસંગતતાના આધારે આગળ જુઓ માર્ગ સુસંગતતા અને સામાન્ય i-સુસંગતતા અથવા સંબંધિત ચાપ સુસંગતતા સાથે કામ કરવા માટે પણ વિસ્તૃત કરી શકાય છે. આગળ જુઓ પરિણામોનો ઉપયોગ મૂલ્યાંકન કરવા માટે આગામી ચલ અને આ ચલને આપવા માટે મૂલ્યોનો ક્રમ નક્કી કરવા માટે થાય છે. ખાસ કરીને, કોઈપણ અસાઇન કરેલ ચલ અને મૂલ્ય માટે, આગળ જુઓ તે ચલને તે મૂલ્ય પર સેટ કરવાની અસરોનો અંદાજ કાઢે છે. આગામી ચલની પસંદગી અને તેને આપવા માટે આગામી મૂલ્યની પસંદગી પૂરક છે, જેમાં મૂલ્ય સામાન્ય રીતે એવી રીતે પસંદ કરવામાં આવે છે કે ઉકેલ (જો કોઈ હોય તો) શક્ય તેટલી ઝડપથી મળી આવે, જ્યારે આગામી ચલ સામાન્ય રીતે એવી રીતે પસંદ કરવામાં આવે છે કે અસંતોષ (જો વર્તમાન આંશિક ઉકેલ અસંતોષકારક હોય તો) શક્ય તેટલી ઝડપથી સાબિત થાય. મૂલ્યાંકન કરવા માટે આગામી ચલની પસંદગી ખાસ કરીને મહત્વપૂર્ણ છે, કારણ કે તે ચાલતા સમયમાં ઘાતાંકીય તફાવતો પેદા કરી શકે છે. શક્ય તેટલી વહેલી તકે અસંતોષકારક સાબિત કરવા માટે, સોંપવામાં આવ્યા પછી થોડા વિકલ્પો છોડનારા ચલ પસંદગીના છે. આ વિચારને ચલ/મૂલ્ય જોડીની માત્ર સંતોષકારક અથવા અસંતોષકારકતાની તપાસ કરીને અમલમાં મૂકી શકાય છે. ખાસ કરીને, આગામી ચલ જે પસંદ કરવામાં આવે છે તે તે છે જે વર્તમાન આંશિક ઉકેલ સાથે સુસંગત હોય તેવા મૂલ્યોની ન્યૂનતમ સંખ્યા ધરાવે છે. બદલામાં, સુસંગતતાનું મૂલ્યાંકન ફક્ત આંશિક સુસંગતતા ચકાસીને અથવા ઉપર ચર્ચા કરવામાં આવેલી કોઈપણ માનવામાં આવતી આગળ જુઓ તકનીકોનો ઉપયોગ કરીને કરી શકાય છે. ચલને કામચલાઉ રીતે અસાઇન કરવા માટે મૂલ્યોને ક્રમ આપવા માટે નીચેની ત્રણ પદ્ધતિઓ છેઃ લઘુતમ-વિરોધાભાસઃ પસંદગીના મૂલ્યો એ છે કે જે આગળ જુઓ દ્વારા મૂલ્યાંકન કરાયેલ અસાઇન કરેલા ચલોના ડોમેનમાંથી ઓછામાં ઓછા કુલ મૂલ્યોને દૂર કરે છે; મહત્તમ-ડોમેન-કદઃ પસંદગીના મૂલ્યો તે છે જે અસાઇન કરેલા ચલો માટે તેઓ ઉત્પન્ન કરેલા સૌથી નાના ડોમેનમાં મૂલ્યોની સંખ્યાને મહત્તમ કરે છે, જેમ કે આગળ જુઓ દ્વારા મૂલ્યાંકન કરવામાં આવે છે; અંદાજ ઉકેલોઃ પસંદગીના મૂલ્યો તે છે જે મહત્તમ સંખ્યામાં ઉકેલો ઉત્પન્ન કરે છે, જેમ કે મૂલ્યાંકન આગળ જુઓ એવી ધારણા કરીને કરવામાં આવે છે કે અસાઇન કરેલા ચલોના ડોમેન્સમાં બાકી રહેલા તમામ મૂલ્યો એકબીજા સાથે સુસંગત છે; બીજા શબ્દોમાં કહીએ તો, મૂલ્ય માટેની પસંદગી આગળ જુઓ પરિણામે તમામ ડોમેન્સના કદને ગુણાકાર કરીને મેળવવામાં આવે છે. પ્રયોગોએ સાબિત કર્યું કે આ તકનીકો મોટી સમસ્યાઓ માટે ઉપયોગી છે, ખાસ કરીને નાના-નાના સંઘર્ષો માટે. રેન્ડમાઇઝેશનનો ઉપયોગ કેટલીકવાર ચલ અથવા મૂલ્ય પસંદ કરવા માટે પણ થાય છે. ઉદાહરણ તરીકે, જો કોઈ માપ અનુસાર બે ચલને સમાન રીતે પસંદ કરવામાં આવે, તો પસંદગી અવ્યવસ્થિત રીતે કરી શકાય છે. સંદર્ભો અવરોધ પ્રોગ્રામિંગ શોધ અલ્ગોરિધમ્સ