breadthfirstbranchandboundsolver.cs

来自「Data Structures and Algorithms with Obj」· CS 代码 · 共 39 行

CS
39
字号
namespace Opus6
{
    using System;

    [Copyright("Copyright (c) 2001 by Bruno R. Preiss, P.Eng."), Version("$Id: BreadthFirstBranchAndBoundSolver.cs,v 1.4 2001/10/28 19:50:09 brpreiss Exp $")]
    public class BreadthFirstBranchAndBoundSolver : AbstractSolver
    {
        protected override void Search(Solution initial)
        {
            Queue queue1 = new QueueAsLinkedList();
            if (initial.IsFeasible)
            {
                queue1.Enqueue(initial);
            }
            while (!queue1.IsEmpty)
            {
                Solution solution1 = (Solution) queue1.Dequeue();
                if (solution1.IsComplete)
                {
                    this.UpdateBest(solution1);
                }
                else
                {
                    foreach (Solution solution2 in solution1.Successors)
                    {
                        if (solution2.IsFeasible && (solution2.Bound < base.bestObjective))
                        {
                            queue1.Enqueue(solution2);
                        }
                    }
                    continue;
                }
            }
        }

    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?