Труды КНЦ (Технические науки вып.3/2025(16))
В рамках работы было разработано четыре вида ограничений: 1) ограничение GDConstraint, согласно которому в одной клетке пространства не может располагаться два объекта одновременно. Данное ограничение обязательное и является глобальным, т. е. затрагивает все переменные задачи; 2) ограничение CornerCosntraint — унарное ограничение, согласно которому объект должен располагаться в углу (т. е. с двух сторон от объекта должны быть недоступные клетки); 3) ограничение DistanceToWall — унарное ограничение, согласно которому объект должен располагаться на заданном расстоянии от заданной стены (стеной считается граница пространства или набор недоступных клеток внутри пространства). Расстояние считается в клетках пространства; 4) ограничение NearConstraint — бинарное ограничение, связывающее два объекта правилом, что они должны располагаться рядом друг с другом на расстоянии, не превышающем заданное (в клетках пространства). Все ограничения, кроме первого вида, задаются пользователем факультативно для некоторых из размещаемых объектов. Для каждого из ограничений был разработан свой алгоритм распространения. Данные алгоритмы подробно описываются далее. Описание разработанных алгоритмов удовлетворения ограничений Глобальное ограничение GDConstraint После того, как у одной из переменных задачи определяется значение (т. е. объект окажется «привязан» к некоторой клетке пространства, расположен в пространстве), необходимо для всех нерасставленных объектов определить недопустимые клетки, чтобы исключить ситуацию, когда несколько объектов занимают одну область пространства Для этого необходимо из доменов переменных, соответствующих нерасставленным объектам, удалить четыре типа клеток: клетки, занимаемые поставленным объектом : p + i + widthg х j , при i е [0, widthi), j e [0, heighti); (1) клетки выше поставленного объекта: p + i - widthg х j , при i е [0, width!), j e [1, height 2 ); (2) клетки левее поставленного объекта : p - i + widthg х j , при i e [1, w i d h ) , j e [0, height^; (3) клетки выше и левее поставленного объекта : p - I - widthg х j , при I e [1, w i d h ) , j e [1, height 2 ). (4) В формулах используются следующие обозначения: width 1 , height 1 — ширина и высота поставленного объекта; width 2 , height 2 — ширина и высота объекта, у которого пересчитывается домен; widthg — ширина пространства; р - ячейка, где расположена верхняя левая клетка объекта. Пример: есть два объекта Y и Z (рис. 2), которые необходимо расставить в пространстве (рис. 3). Пусть объект Y поставили в клетку 55. Необходимо удалить из домена переменной Z номера тех клеток, при постановке в которые объекта Z будет пересечение с объектом Y. Согласно формуле 1 рассчитываются клетки, которые занимает объект Y : Deh = {55, 56, 57, 58, 65, 66, 67, 68, 75, 76, 77, 78, 85, 86, 87, 88}. Новым доменом переменной Y будет разность множества домена Z и множества Deh D y = D y \ Deh. В результате из домена удалятся клетки {55,56,65,66}. Аналогично, согласно формулам 2-4 рассчитываются недопустимые клетки вокруг Y : Del 2 = {35, 36, 37, 38, 45, 46, 47, 48}; Deh = {53, 54, 63, 64, 73, 74, 83, 84}; Deh = {33, 34, 43, 44}. В результате разности домена переменной Y с множествами Deh, Deh, Deh получится домен Dy = {11, 12, 14, 15, 16, 21, 22, 23, 24, 25, 26, 31, 32, 41, 42, 51, 52, 61, 62} (рис. 4). Труды Кольского научного центра РАН. Серия: Технические науки. 2025. Т. 16, № 3. С. 117-130. Transactions of the Kola Science Centre of r A s . Series: Engineering Sciences. 2025. Vol. 16, No. 3. P. 117-130. © Таран П. В., Зуенко А. А., 2025 120
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz