Экономико-математические методы и модели - Библиотека ...

Экономико-математические методы и модели - Библиотека ... Экономико-математические методы и модели - Библиотека ...

12.07.2015 Views

рванным ветвям, с длиной полученного гамильтонова контура. Еслинижние границы подмножеств, соответствующих оборванным ветвям,окажутся меньше длины гамильтонова контура, то эти ветви разбиваютпо тому же правилу. Процесс продолжается до тех пор, пока нижниеграницы вновь полученных подмножеств меньше длины гамильтоноваконтура. В результате могут быть получены новые гамильтоновы контуры.В этом случае сравниваются длины всех гамильтоновых контурови среди них выбирается контур с наименьшей длиной. Решение задачисчитается законченным, если нижние границы оборванных ветвей неменьше длины гамильтонова контура. В качестве оптимального выбираетсягамильтонов контур с наименьшей длиной.Все рассмотренные действия для большей четкости сформулируем ввиде алгоритма.1. Приводим матрицу расстояний по строкам и столбцам. Находимнижнюю границу всего множества маршрутов:n∑ n∑ϕ (R) = γ = α i + β j .i=12. Каждый нуль в приведенной матрице условно заменяем на ∞ инаходим сумму констант приведения γ (i,j) = α i + β j . Значения γ (i,j) записываемв соответствующие клетки рядом с нулями.3. Априорно исключаем из гамильтонова контура ту дугу (i, j), длякоторой сумма констант приведения максимальна (исключение дуги (i, j)j=1174

достигается заменой элемента в a ij матрице расстояний на ∞. В результатеисключения дуги (i, j) будет образовано подмножество гамильтоновыхконтуров { (i, j) } .4. Приводим полученную матрицу расстояний и определяем нижнююграницу ϕ (i,j) подмножества гамильтоновых контуров { (i, j) } .5. Априорно включаем дугу (i, j) в гамильтонов контур, что ведетк исключению в матрице, полученной после выполнения пункта 2, i-йстроки j-го столбца. Заменяем один из элементов матрицы на ∞ (в простейшемслучае симметричный), чтобы не допустить образования негамильтоноваконтура.6. Приводим сокращенную матрицу и находим нижнюю границу ϕ (i,j)подмножества маршрутов {(i, j)}.7. Проверяем размерность сокращенной матрицы. Если сокращеннаяматрица размерности 2×2, то переходим к выполнению пункта 9; еслиже размерность матрицы больше, чем 2×2, то – к пункту 8.8. Сравниваем нижние границы подмножеств гамильтоновых контуровϕ (i,j) и ϕ (i,j) и переходим к выполнению пункта 2. При этом, еслиϕ (i,j) > ϕ (i,j) , то разбиению подлежит подмножество { (i, j) } (дальнейшемуанализу подвергается матрица, полученная в результате последнеговыполнения пункта 4). Если же ϕ (i,j) < ϕ (i,j) , разбиению подлежитподмножество {(i, j)} (дальнейшему анализу подвергается матрица, полученнаяпосле последнего выполнения пункта 6).175

достигается заменой элемента в a ij матрице расстояний на ∞. В результатеисключения дуги (i, j) будет образовано подмножество гамильтоновыхконтуров { (i, j) } .4. Приводим полученную матрицу расстояний и определяем нижнююграницу ϕ (i,j) подмножества гамильтоновых контуров { (i, j) } .5. Априорно включаем дугу (i, j) в гамильтонов контур, что ведетк исключению в матрице, полученной после выполнения пункта 2, i-йстроки j-го столбца. Заменяем один из элементов матрицы на ∞ (в простейшемслучае симметричный), чтобы не допустить образования негамильтоноваконтура.6. Приводим сокращенную матрицу и находим нижнюю границу ϕ (i,j)подмножества маршрутов {(i, j)}.7. Проверяем размерность сокращенной матрицы. Если сокращеннаяматрица размерности 2×2, то переходим к выполнению пункта 9; еслиже размерность матрицы больше, чем 2×2, то – к пункту 8.8. Сравниваем нижние границы подмножеств гамильтоновых контуровϕ (i,j) и ϕ (i,j) и переходим к выполнению пункта 2. При этом, еслиϕ (i,j) > ϕ (i,j) , то разбиению подлежит подмножество { (i, j) } (дальнейшемуанализу подвергается матрица, полученная в результате последнеговыполнения пункта 4). Если же ϕ (i,j) < ϕ (i,j) , разбиению подлежитподмножество {(i, j)} (дальнейшему анализу подвергается матрица, полученнаяпосле последнего выполнения пункта 6).175

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!