УДК 519.854.3
ЗАДАЧА ОПРЕДЕЛЕНИЯ МИНИМАЛЬНОГО ЧИСЛА СТАНЦИЙ ДЛЯ ПОДКЛЮЧЕНИЯ ТЕРМИНАЛЬНЫХ ТОЧЕК ОБЪЕКТА УПРАВЛЕНИЯ
Ал.В. Погребной
Томский политехнический университет E-mail: [email protected]
Актуальность исследования обусловлена широким распространением распределенных систем реального времени и необходимостью разработки методов автоматизированного проектирования таких систем.
Целью работы является разработка метода определения минимального числа станций компьютерной сети, способных подключить заданное множество терминальных точек объекта управления.
Методы исследования используют достижения в области линейного программирования с целочисленными и булевыми переменными.
Результаты исследования. Задача выбора минимального числа станций, способных подключить заданную совокупность терминальных точек объекта управления, сформулирована как задача целочисленного линейного программирования. Выделены особенности, которыми обладает данная задача для рассматриваемой области применения. Учитывая эти особенности, разработан метод, который является более эффективным в сравнении с существующими методами решения задач целочисленного программирования. Метод позволяет локализовать поиск оптимального решения среди вершин единичного гиперкуба, используя для этой цели процедуру симплекс-метода.
Ключевые слова:
Задача целочисленного линейного программирования, задача целочисленного покрытия, задача булевского покрытия, симплекс-метод.
Исходные пояснения к задаче
Рассматривается одна из задач, возникающих при проектировании систем управления объектами с территориально распределенным оборудованием. В этих условиях современные вычислительные системы, выполняющие системные и прикладные функции управления, как правило, реализуются на основе типовых станций (контроллеров), объединенных в локальную сеть. План территории, на которой располагается оборудование объекта и системы управления, именуется топологическим полем [1]. Система управления связана с объектом через датчики, исполнительные механизмы и другие источники и приемники информации. Это могут быть и любые другие устройства для приема и передачи данных от операторов, других систем, приборов наблюдения и сигнализации и т. п. Все такие источники и потребители информации будем именовать терминальными точками.
Таким образом, система управления в конечном итоге связывается с объектом через терминальные точки. На рис. 1 приведена схема связи между терминальными точками (ТТ) и входами (выходами) системных и прикладных функций через станцию вычислительной системы. Совокупность терминальных точек на рис. 1 выделена пунктирной линией. Станция (С) представлена совокупностью мест для подключения точек, аналого-цифровым преобразователем (АЦП) и цифроаналоговым преобразователем (ЦАП). Системные и прикладные функции представлены в станции условно одним модулем, обозначенным как ПФ, с одним входом (Вх) и одним выходом (Вых).
Приведенное на рис. 1 изображение схемы связи во многом является условным. В частности, модули и данные ПФ могут быть размещены на раз-
ные станции. Например, вход ПФ размещен в станции С, а выход оказался в другой станции С^ В этом случае связь между выходом ПФ и ЦАП осуществляется по сети, т. е. через адаптер подключения станции С1 к магистрали и далее по одной или нескольким магистралям сети к адаптеру подключения станции С. На рис. 1 не отображено и то, что ТТ могут подключаться к станциям через коммутаторы устройств связи с объектом. Все эти уточнения здесь опущены, т. к. они не оказывают влияния на разработку метода решения рассматриваемой задачи.
Рис. 1. Схема связи терминальных точек с входами и выходами системных и прикладных функций
При решении задачи определения минимального числа станций, способных подключить терминальные точки системы управления, необходимо различать их по типам. Так, принадлежность точек к группам источников и приемников информации уже делит их на два типа. Кроме того, точки различаются между собой и по другим основаниям, связанным, например, с разнообразием физических параметров входных и выходных сигналов и данных.
В свою очередь станции также различаются по видам. Для решения рассматриваемой задачи важным является то, что каждая станция способна
подключить ограниченное количество точек определенного типа. Совокупность типов точек и места (порты) их подключения в станциях стандартизованы. Взаимозаменяемость между портами разных типов не допускается, поэтому точка определенного типа может быть подключена к станции только через порт соответствующего типа. Принимается также, что к одному порту может быть подключена только одна точка. Подключение точек к станциям через коммутаторы здесь не рассматривается.
Предполагается также, что номенклатура видов станций, которые могут быть использованы при проектировании системы управления, задана. Для нашей задачи в этой номенклатуре одна станция отличается от другой лишь числом портов каждого типа. Очевидно, что такое допущение является достаточно грубым и может быть оправдано для станций технологического назначения, к которым непосредственно подключаются терминальные точки объекта управления.
Операторские и системные станции по составу оборудования и стоимости могут существенно отличаться от технологических. Включение таких станций в вычислительную систему часто осуществляется независимо от решения задачи выбора числа станций. Размещение операторских станций на топологическом поле, как правило, предопределено техническим заданием. Подключаемые к ним точки также во многом предопределены. На топологическом поле такие точки не указываются и при решении задачи не учитываются.
Постановка задачи определения числа станций
На содержательном уровне задача формулируется очень просто. Имеется совокупность точек топологического поля и задана номенклатура видов станций, которые можно использовать при проектировании системы управления. Для каждой станции известна совокупность типов портов для подключения точек. Требуется выбрать минимальное число станций из этой номенклатуры, которое обеспечивает возможность подключения всех точек.
Данная формулировка задачи иллюстрируется на рис. 2. Топологическое поле представлено множеством из 25 точек 4-х типов. Множество точек показано кружками, внутри которых представлены типы: первые 6 точек 1-го типа, далее 8 точек 2-го типа, 5 точек 3-го типа и 6 точек 4-го типа.
В верхней части рис. 2 приведен набор из 5 видов станций С1,^,С5, отличающихся совокупностями типов портов. Данные виды представляют всю номенклатуру станций, доступных разработчику проекта при выборе станций для подключения точек. Ниже на рис. 2 приведен один из допустимых вариантов выбора станций. В этом варианте для подключения точек используется 7 станций: 2 станции С2, 3 станции С4 и 2 станции С5. Станции С1 и С3 в этом варианте оказались невостребованными. Подключение точек к соответствующим типам портов выбранных станций показано линиями связи. При этом избыточными (невостребованными) в данном варианте оказались 5 портов. На рис. 2 они отмечены штриховкой.
В нижней части рис. 2 приведен второй допустимый вариант выбора станций и также линиями связи показано подключение точек к портам этих станций. Данный вариант содержит 6 станций: 2 станции С1, 1 станция С3, 3 станции С5. Избыточными в этом варианте оказались 2 порта 3-го типа в станциях С5. Оба варианта являются допустимыми, т. к. подключаются все точки и в то же время ни одна из станций не может быть исключена. Это означает, что как бы мы не пытались перераспределить подключение точек к станциям варианта, ни одна из них не окажется избыточной по всем портам.
Заметим, что второй вариант, содержащий 6 станций, является оптимальным решением для данной задачи, т. к. содержит всего 2 избыточных порта, а любая станция набора включает не менее 4-х портов. В частности, первый вариант содержал 5 избыточных портов, что свидетельствовало о потенциальной возможности использовать для подключения точек на одну станцию меньше. Из этого не следует, что такая возможность обязательно бу-
3 3 4 4
/
1 2 3 3 | 1 2 3 3
С1 С1 Сз
Рис. 2. Иллюстрация к формулировке задачи
дет найдена, но в данном случае второй вариант подтвердил наличие такой возможности.
Представим рассматриваемый пример задачи в другом виде. Составим матрицу, которая описывает набор станций. Строки матрицы соответствуют типам портов, а столбцы - станциям С^.С набора. Для нашего примера матрица имеет вид, приведенный на рис. 3.
С1 С2 Сз С4 С,
1
Типы 2
портов 3 4
Вариант 1 |___I 2 |___| 3 | 2 |
Вариант 2 | 2 | I 1 I I 3 ~|
Рис. 3. Пример матричного представления задачи
Элементы столбца матрицы равны числу портов соответствующего типа в станции. Элементы строк матрицы указывают на число портов данного типа в станциях набора. Пустые клетки матрицы соответствуют нулевым элементам. Справа от матрицы приведен вектор числа точек топологического поля. В нижней части рис. 3 показаны векторы выбранных ранее вариантов решений, содержащих по 7 и 6 станций.
По рис. 3 легко установить, что оба варианта являются решениями задачи. Для проверки этого достаточно просуммировать перемножение элементов вектора варианта и векторов строк матрицы и убедиться, что полученные суммы по каждой строке равны или превышают число точек топологического поля соответствующего типа. Например, если вектор 1-го варианта перемножить на вторую строку, то получим сумму 2-1+3-1+2-2=9, которая превышает число точек 2-го типа, равное 8.
От матричного представления задачи, приведенного на рис. 3, легко перейти к формализованной постановке задачи. Общую совокупность терминальных точек топологического поля обозначим множеством Е,
Е = и Ег, П Ег = 0, \ЕГ\ = Ьг, В = {Ьг}, г = 1,2,..., Я,
где Ег - подмножество точек г-го типа в множестве Е; Я - число типов точек на топологическом поле; Ьг - число точек г-го типа в множестве Е; В - вектор числа точек топологического поля.
Для нашего примера |£|=25, Д=4, а вектор В=(6,8,5,6).
Число видов станций в заданном наборе обозначим величиной V. Для каждой станции С„, и=1,2,...,7, из набора введем вектор подключения точек
д, = {аг„}, г = 1,2,...,Я,V = 1,2,..., V,
где аги - число портов г-го типа в станции и-го вида Си. В примере V=5, а вектор А1=(0,0,2,2), А2=(1,1,2,0),..., А=(2,2,1,0).
Способность станций набора подключать терминальные точки согласно векторам Аи представим матрицей А, А^аЛд^. Для нашего примера
2
2 2
2 2 1
2 2 2
Число
точек
поля
матрица А соответствует матрице описания набора станций, представленной на рис. 3.
Введем переменную xv, v=1,2,...,F, которая определяет число станций v-го вида, выбранных из набора, для подключения точек множества Е. Тогда задачу определения минимального суммарного числа станций, необходимых для подключения всех точек множества Е, можно записать в виде:
V
Е xv ^ “in; (1)
v=1
Еarvxv > br, r = 1,2,...,R; (2)
v= 1
xv - целое положительное число для всех v=1,2,...,V. (3)
Задача (1)-(3) относится к классу задач целочисленного линейного программирования [2]. Известно, что методы решения задач данного класса требуют больших объемов вычислений. Для рассматриваемого применения задача имеет ряд специфических особенностей. Все станции набора принимаются равноценными, поэтому целевая функция имеет вид (1), т. е. располагается симметрично относительно начала координат. Если станции требуется различать, например, по стоимости, тогда с учетом цены (веса) gv станции Cv, целевая функция (1) будет иметь вид:
V
ЕgvXv ^ min. (4)
v= 1
Другая специфика заключается в том, что в ограничении (2) величины arv и br для нашей задачи всегда целые положительные числа. Это не является дополнительным ограничением, а вытекает автоматически из смыслового содержания данных величин. Действительно, дробное или отрицательное число портов и точек не имеет смысла. В этих условиях все гиперплоскости, соответствующие ограничениям (2), имеют положительный наклон, а область допустимых решений расположена в положительной части пространства, определяемого переменными xv.
Благодаря этой специфике данную задачу будем именовать задачей целочисленного покрытия. Заметим, что независимо от используемой целевой функции в виде (1) или (4) задача остается задачей покрытия. Термин «целочисленное покрытие» отражает сущность задачи, в которой некоторое множество элементов разного типа нужно получить в виде композиции подмножеств этих элементов из заранее заданной совокупности. Для нашего примера задачу можно представить как задачу покрытия множества терминальных точек Е, заданного вектором B={br}, совокупностью векторов подключения станций А„={а„,}. Как будет показано в следующем разделе, названные особенности задачи дают возможность разработать более эффективный метод ее решения.
В результате решения задачи (1)-(3) получим вектор X'={xv'}, v=1,2,.,V, компоненты xv* которого определяют минимальное число станций v-го
вида, необходимых для подключения терминальных точек множества Е. Вектор X* является оптимальным решением, т. е. соответствует минимальному суммарному числу станций. Приведенные на рис. 3 варианты соответствуют решениям Х1=(0,2,0,3,2) и Х2=(2,0,1,0,3). При этом решение Х2=Х*, содержащее 6 станций, является оптимальным, т. к. с помощью 5 станций в данном примере нет возможности покрыть 25 точек (6+8+5+6=25). Легко видеть, что 25 портов содержит только совокупность из 5 станций С5, но эта совокупность не покрывает 6 точек 4-го типа (элемент Ь4=6 в векторе В). Любая другая совокупность из 5 станций не содержит в сумме 25 портов и не может покрыть все терминальные точки.
Метод решения задачи целочисленного покрытия
Поиск оптимального решения задачи (1)-(3) с помощью известных методов решения задач целочисленного линейного программирования требует больших объемов вычислений [3], поэтому вполне естественным является стремление сократить объем вычислений за счет использования специфики задачи покрытия. Предварительно отметим, что попытка решить задачу покрытия без учета условия целочисленности с последующим округлением полученных значений переменных в данном случае не проходит. Действительно, решение задачи (1), (2) с помощью алгоритмов симплекс-метода не вызывает затруднений, но округление можно использовать при больших значениях переменных (десятки и сотни), иначе будет большая погрешность. В нашем случае число станций невелико и использовать округление не представляется возможным, т. к. решение, полученное после округления, может быть далеко от оптимального.
Рассмотрим на примере задачи с двумя переменными специфику, порождаемую тем, что величины аги и Ьг в ограничении (2) - положительные числа, а целевая функция (1) располагается симме-
трично относительно начала координат. На рис. 4 представлен пример такой задачи и дана ее геометрическая интерпретация.
Штриховкой на рис. 4 выделена область допустимых решений, сформированная ограничениями задачи. Координаты любой целочисленной точки этой области удовлетворяют всем ограничениям задачи. Из рис. 4 видно, что решением задачи без учета условия целочисленности является точка Х с координатами х1=1,1 и х2=1,7. Значение целевой функции в точке Х равно Х!+х2=1,1+1,7=2,8. Целевая функция, проходящая через точку Х и равная 2,8, показана на рис. 4. Решение в точке Х является оптимальным, т. к. нет другой точки в области допустимых решений, которая соответствует значению целевой функции меньшему 2,8.
Основная специфика области допустимых решений задачи целочисленного покрытия заключается в том, что, округлив значения координат в точке Х в большую сторону, мы получим целочисленную точку , которая гарантировано располагается в этой области. Заметим, что при округлении в большую сторону нулевые значения координат точки Х воспринимаются как дробные и преобразуются («округляются») в 1. Так, например, точка Х с координатами (1,3; 0; 2,8) после округления преобразуется в точку Х'=(2,1,3).
Такая гарантия обусловлена тем, что гиперплоскости (в данном случае линии), представленные ограничениями (2) с положительными значениями величин аги и Ьг, имеют положительный наклон. Это означает, что гиперплоскость пересекает оси координат в положительной части. При повороте линии х1+4х2=8 вокруг точки Х против часовой стрелки она сохраняет положительный наклон до тех пор, пока не станет параллельной оси х1. Если продолжить поворот дальше, то линия будет пересекать ось х1 в отрицательной части. Нетрудно видеть, что при отрицательном наклоне линии точка X' может быть отсечена и оказаться за пределами
х1 + х2 ^ Ш1и; 10 х1 + 6 х2 > 21; X + 4 х2 > 8 ;
х1 > 0; х2 > 0;
х1, х2 - целые.
Рис. 4. Геометрическая интерпретация специфики задачи покрытия
области допустимых решений. Из этого следует, что наличие отрицательных величин arv и br (отрицательных наклонов гиперплоскостей) не гарантирует попадание точки X', полученной после округления в большую сторону, в область допустимых решений.
Второе важное свойство, которое вытекает из положительного наклона гиперплоскостей, формирующих область, заключается в том, что оптимальное целочисленное решение задачи располагается в подобласти, которая формируется ограничениями относительно новой системы координат x" и x" с началом в точке X'. Из рис. 4 видно, что новые оси координат относительно исходных направлены в противоположную сторону. Перенос начала координат в точку X' и смена ориентации осей координат соответствует следующему формальному преобразованию ограничений (2):
V V
Z arvxv < Z avXV - Ьг < Ь'- (5)
v=1 v=1
Для нашего примера с учетом того, что точке X' соответствуют координаты xj=2 и x2'=2, имеем:
10 x + 6 х2 < 10 • 2 + 6 • 2 - 21 < 11; х1 + 4х2 < 1 • 2 + 4 • 2 - 8 < 2.
На рис. 4 видно, что подобласть, сформированная данными ограничениями и новыми осями координат, содержит точку X*, которая соответствует оптимальному решению исходной задачи (1)-(3). Более того, в новой подобласти оптимальное целочисленное решение следует искать среди неотсеченных гиперплоскостями вершин единичного гиперкуба (в нашем случае квадрата), выделенных новыми осями координат с началом в точке X'. Для поиска такой вершины необходимо решить задачу линейного программирования с булевыми переменными:
х[ + х2 ^ max; 10х[ + 6х2 < 11; х[ + 4х2 < 2.
Решением данной задачи является точка (булевский вектор) X'*=(1;0), т. е. xj*=1, x2*=0. Для получения оптимального (минимального) решения задачи в исходных координатах нужно из вектора точки X' вычесть вектор точки X'*, т. е. X*=X'-X'*=(2,,2)-(1,,0)=(1;2). Действие вычитания объясняется тем, что при округлении в большую сторону мы сместили точку (решение) в глубь области, а при вычитании найденного булевского вектора мы вернулись в точку на максимально возможную величину к поверхности области. Решение X*=(1;2) соответствует значению целевой функции xj+x2=3, которая на рис. 4 показана пунктирной линией.
Для решения задачи (1)-(3) можно использовать округление в меньшую сторону и перенос начала координат в точку X", как это показано на рис. 4. В этом случае также решается задача линейного программирования с булевыми перемен-
ными. Ограничения (2) относительно точки X" преобразуются согласно следующему выражению:
Xavxv > b - XavX'> b'• (6)
v= 1 v = 1
В примере, учитывая, что в точке X" имеем координаты х"=1, x2"=1, ограничения преобразуются в следующий вид:
10 x + 6 x2 > 21 -10-1 - 6-1 > 5;
x1 + 4x2 > 8 -1-1 - 4 -1 > 3.
Таким образом, задача покрытия с булевыми переменными в этом случае запишется в виде:
x" + x" ^ min; 10 x"+ 6 x’2 > 5; ax"+ 4 x’2 > 3.
Решением данной задачи является булевский вектор X"*=(0;1). Для получения оптимального решения относительно исходных координат нужно к вектору точки X" прибавить вектор точки X"*, т. е. X*=X"+X"*=(1;1)+(0;1)=(1;2).
Для решения задачи линейного программирования с булевыми переменными в постановке (4), (5) или (4), (6) имеются специальные алгоритмы, например, использующие схему метода ветвей и границ [4]. Заметим также, что для задачи в постановке (1), (5) или (1), (6) специфика целевой функции (1), а именно симметричность её расположения относительно начала координат, обуславливает возможность разработки алгоритма, основанного на учёте указанной специфики. Разработка такого алгоритма является предметом отдельного исследования.
Заключение
Задача выбора минимального числа станций вычислительной системы при проектировании распределенной системы управления сформулирована как задача целочисленного линейного программирования. Для рассматриваемой области применения задача имеет две важные особенности: первая - все величины в ограничениях являются положительными числами, что соответствует положительному наклону гиперплоскостей, формирующих область допустимых решений, вторая -коэффициенты при переменных в целевой функции равны, что означает симметричность расположения ее относительно координат. Задачи с указанными особенностями выделены в отдельный подкласс, названный задачами целочисленного покрытия. Эти особенности обусловили возможность разбиения данной задачи на две более простых - задачу линейного программирования и задачу булевского покрытия. Таким образом, предложенный метод решения рассматриваемой задачи целочисленного покрытия по сложности оказался сопоставим со сложностью задач линейного программирования.
Работа выполнена в рамках государственного задания «Наука».
СПИСОК ЛИТЕРАТУРЫ
1. Погребной Ал.В. Определение числа и топологии размещения станций многопроцессорной вычислительной системы // Известия Томского политехнического университета. - 2006. -Т. 309. - №7. - С. 160-164.
2. Схрейвер А. Теория линейного и целочисленного программирования: В 2-х т. Т. 1 / пер. с англ. - М.: Мир, 1991. - 360 с.
3. Корбут А.А., Финкельштейн Ю.Ю. Дискретное программирование. - М.: Наука. Гл. ред. Физ.-мат. Лит. 1969. - 368 с.
4. Пантелеев А.В., Летова Т.А. Методы оптимизации в примерах и задачах. - М.: Высшая школа, 2002. - 544 с.
Поступила 03.09.2013 г.
UDC 519.854.3
DETERMINATION OF MINIMUM NUMBER OF STATIONS FOR CONNECTING TERMINAL POINTS OF CONTROL OBJECT
Al.V. Pogrebnoy Tomsk Polytechnic University
The relevance of the research is caused by a wide spreading of real time systems and by the necessity to develop the computer-aided design techniques for such systems. The aim of the research is to develop the technique for determining minimum number of computer network stations which are capable of connecting the set of terminal points of a control object. The author has used the achievements in the field of linear programming with integer and Boolean variables. The task of selection of minimum number of stations connecting the given set of terminal points of the control object was stated as the integer linear programming. The author singled out this task features for the field of application under consideration. Taking into account these features the methods was developed. It is more efficient than the existing methods for solving the integer programming problems. The method allows locating the search for optimal solution among the vertices of unit hypercube using the Simplex Method.
Key words:
Integer linear programming, integer covering, Boolean covering, Simplex Method.
REFERENCES
1. Pogrebnoy Al.V. Opredelenie chisla i topologii razmeshcheniya stantsyy mnogoprotsessornoy vychislitelnoy sistemy [Determination of a number and topology of multiprocessor station position]. Bulletin of the Tomsk Polytechnic University, 2006, vol. 309, no. 7, pp. 160-164.
2. Skhreyver A. Teoriya lineynogo i tselochislennogo programmiro-vaniya [Theory of linear and integer programming]. Moscow, Mir, 1991, vol. 1, 360 p.
3. Korbut A.A., Finkelshteyn Yu.Yu. Diskretnoe programmirovanie [Discrete programming]. Moscow, Nauka. Gl.red.Fiz.-mat. Lit., 1969. 368 p.
4. Panteleev A.V., Letova T.A. Metody optimizatsyi v primerakh i zadachakh [Optimisation techniques in examples and problems]. Moscow, Vysshaya shkola, 2002. 544 p.