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); } }