optChoice[i] = 0;
if (constraintFunc(optChoice) >= minDamage) {
double newMinValue = value - toolPrice[i];
if (newMinValue < minValue) {
minValue = newMinValue;
index = i;
}
}
optChoice[i] = 1;
}
}
// если точка была найдена, переходим на следующий шаг
if (index != -1) {
optChoice[index] = 0;
step(optChoice, minValue);
}
}
/**
* Получение значений переменных,
* вычисленные в результате работы алгоритма
*/
public int[] getOptChoice() {
return optChoice;
}
/**
* Получение времени работы алгоритма
*/
public long getTime() {
return time;
}
/**
* Получение числа шагов
*/
public int getStepCount() {
return stepCount;
}
/**
* Метод для вычисления целевой функции
*/
public double objectiveFunc(int[] choice) {
double result = 0;
for (int i = 0; i < toolPrice.length; i++) {
result += toolPrice[i] * choice[i];
}
return result;
}
80 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2008. № 2