CLRS似乎没有涉及回溯/分支限界算法。虽然我尝试了几个在线资源,但我无法编写代码来解决例如背包问题这样的问题,尽管我理解了它们的理念。因此,我想要一个东西,可能需要使用这三种方法之一解决问题,并至少给出伪代码。或者任何您认为有帮助的资源。
CLRS似乎没有涉及回溯/分支限界算法。虽然我尝试了几个在线资源,但我无法编写代码来解决例如背包问题这样的问题,尽管我理解了它们的理念。因此,我想要一个东西,可能需要使用这三种方法之一解决问题,并至少给出伪代码。或者任何您认为有帮助的资源。
StateStack.push(StartState)
loop{
curState = StateStack.top
nextState = calculateNextState(curState)
StateStack.push(nextState)
if(reachedFinalGoal(nextState)){
break;
}
if(needToBackTrack(StateStack)){
curState = nextState
stateToBackTrackTo = calculateStateToBackTrackTo(stateStack)
while(curState != stateToBackTrackTo){
stateToGoBackTo = stateStack.pop
curState = RollBackToState(stateToGoBackTo)
}
}