public void FindBestHlaAssignment()
        {
            int iDelegate = 0;

            while (true)
            {
                HlaAssignmentsToConsider hlaAssignmentsToConsider = HlaAssignmentsToConsiderCollection[iDelegate];
                int previousChangeCount = BestHlaAssignmentSoFar.ChangeCount;
                ScoreAssignments(hlaAssignmentsToConsider);

                if (Improvement(previousChangeCount))
                {
                    iDelegate = 0;
                }
                else
                {
                    if (LastDelegate(iDelegate))
                    {
                        break;
                    }
                    else
                    {
                        ++iDelegate;
                    }
                }
            }
        }
        //public void FindBestHlaAssignment()
        //{
        //    while (true)
        //    {
        //        int previousChangeCount = BestHlaAssignmentSoFar.ChangeCount;
        //        foreach(HlaAssignmentsToConsiderDelegate hlaAssignmentsToConsider in HlaAssignmentsToConsiderCollection)
        //        {
        //            RepeatUntilToImprovement(hlaAssignmentsToConsider);
        //        }
        //        if (previousChangeCount == BestHlaAssignmentSoFar.ChangeCount)
        //        {
        //            break;
        //        }
        //    }

        //}

        //private void RepeatUntilToImprovement(HlaAssignmentsToConsiderDelegate hlaAssignmentsToConsider)
        //{
        //    while (true)
        //    {
        //        int previousChangeCount = BestHlaAssignmentSoFar.ChangeCount;
        //        ScoreAssignments(hlaAssignmentsToConsider);
        //        if (previousChangeCount == BestHlaAssignmentSoFar.ChangeCount)
        //        {
        //            break;
        //        }
        //    }
        //}

        private void ScoreAssignments(HlaAssignmentsToConsider hlaAssignmentsToConsider)
        {
            foreach (TrueCollection hlaAssignment in hlaAssignmentsToConsider.Collection())
            {
                double score = QmrrModelMissingAssignment.LogLikelihoodOfCompleteModelConditionedOnKnownHlas(hlaAssignment);
                BestHlaAssignmentSoFar.Compare(score, hlaAssignment);
            }
        }