Правила ветвления

задача коммивояжер ветвь граница

В зависимости от особенностей задачи для организации ветвления обычно используется один из двух способов:

1. ветвление множества допустимых решений исходной задачи D;

2. ветвление множества D' получаемого из D путем снятия условия целочисленности на переменные.

Первый способ ветвления обычно применяется для задач целочисленного программирования и заключается в выделении подобластей возможных решений путем фиксации значений отдельных компонент целочисленных оптимизационных переменных (рис. 1). На рис. 1-а дана геометрическая интерпретация области допустимых решений задачи целочисленного программирования, определяемой двумя линейными ограничениями и условиями неотрицательности переменных, и образующихся при ветвлении подобластей, а на рис. 1-б показана соответствующая схема ветвления.

Второй способ ветвления – более универсальный, чем первый. Для осуществления ветвления некоторой области Di' этим способом на Di' решается оптимизационная задача с целевой функцией исходной задачи и действительными переменными.

Ветвление осуществляется, если в оптимальном решении значение хотя бы одной целочисленной по исходной постановке задача переменной не является целочисленным. Среди этих переменных выбирается одна, например j – я. Обозначим ее значение в найденном оптимальном решении x0[j]. Говорят, что ветвление осуществляется по переменной x[j]. Область Di' разделяется на две подобласти Di1' и Di2' следующим образом:

 

(1)

 

где [x0[j]] – целая часть значения x0[j]

На рис. 2 условно дана геометрическая интерпретация такого ветвления.

 


 

Рис. 2. Геометрическая интерпретация ветвления

 

Видно, что при этом из области Di' удаляется часть между плоскостями вновь введенных ограничений. Так как переменная x[j] по условиям области допустимых решений исходной задачи – целочисленная, то из подобласти допустимых решений исходной задачи. Di (Di Di') при таком изъятии не исключается ни одного решения.