Действие закона во времени, в пространстве и по кругу лиц.
Целочисленное программирование в задачах конструирования
Для многих оптимизационных задач конструирования элементы решения должны быть целыми числами, например число монтажных плат, блоков, модулей, поэтому методы линейного программирования, при решении которых может быть получен результат в виде дробей, не удовлетворяют конструктора. В этих случаях используют целочисленное программирование.
Постановка задачи целочисленного программирования отличается от линейного программирования тем, что в данном случае на элементы решения наложены условия целочислен-ности.
Существует несколько методов решения задач целочисленного "'программирования, однако наибольшее распространение получил метод ветвей и границ. Идея этого метода заключа-ется в том, что сначала решается задача линейного программирования Если получено целочисленное решение, то это и есть искомый результат, а если не получено целочисленное значение элементов решения, то полученный результат считается верхней границей искомого решения. Для достижения целочисленного решения производят ветвление области допустимых решений путем введения дополнительных условий задачи.
Постановку задачи целочисленного программирования рассмотрим на примере из конструкторской практики.
Требуется разработать аппаратуру на основе серийно выпускаемых модулей (микросхем) двух типов М1 и М2. Известно, что без учета резервирования в схеме аппаратуры должно содержаться модулей М1 не менее b1, а модулей М2 — не менее b2. Кроме того, известно, что выпускаются монтажные платы двух типов П1 и П2, которые предполагается использовать как конструктивные несущие элементы для разрабатываемой аппаратуры.
Известно также, что в монтажном пространстве платы П1 может разместиться На монтажной плате П2 может быть размещено
α12 — модулей М1; α22 — модулей М2.
Для каждого типа плат известен весовой коэффициент стоимости, установленный экспертным или каким-либо другим методом.
Для платы П1 он равен С1 а для платы П2—С2. Требуется определить необходимое количество плат для проектирования аппаратуры по типам с условием, чтобы аппаратура обладала максимальным качеством при минимальных затратах.
С учетом условий и требований задачи составим целевую функцию ,
где x1 — количество плат типа П1; x2 — количество плат П2.
Составим ограничительные уравнения:
x1 и x2 — целые числа.
Первое уравнение описывает распределение модулей M1 среди плат Пi и П2, а второе уравнение — распределение среди тех же плат, но уже модулей — М2.
Начнем решение с задачи линейного программирования, преследуя цель получить, если это удастся, целочисленное решение, а если нет, то — верхнюю границу задачи целочисленного программирования.
Предположим, что решение найдено с использованием одного из известных методов линейного программирования, но при этом целочисленных значений элементов решения не получено,
Наложим дополнительные условия
где х1ц — ближайшее целое число к х1*; x2ц—ближайшее целое число к x2.
Решаем задачу, разветвив ее на две по х1ц и x2ц. Вновь решаем задачу линейного программирования с учетом дополнительного условия. Получаем решения х1** и х2**. При этом целевая функция имеет значение K**. Если элементы решения являются целыми числами и ограничительные уравнения выполняются, то полученное решение дает оптимальное значение целевой функции.
Если x1 и x2 не целые числа, то ветвление продолжают до получения целых чисел или до тех пор, пока ветвление становится невозможным.
Пример. Решим рассмотренную выше задачу при следующих условиях: α11 = 5; α21 = 10; α12 = 10; а22 = 5; b1 ≥ 80; b2 ≥ 60; С1 = 15; С2 = 20; х1 ≥ 0, x2 > 0, x1x2 — целые числа.
Решим задачу линейного программирования без учета условий целочисленности х1 и х2.
Составим ограничительные уравнения
или
Решение найдем графическим методом. Построим прямые y1 = 0, у2 = 0(рис 3.4). Точка соответствует оптимальному решению. При этом x1 = 2,6; х2 = 6,6; K = С1x1 + С2x2 = 15*2f6 +20*6 6 = 171. Полученное решение не является целочисленным.
Очевидно, целочисленное решение лежит в окрестности точки в области допустимых решений. Вероятнее всего предположить, что оптимальному решениию соответствуют точки 1, 2 или 3.
Рис. 3.4. График, поясняющий решение задач методом целочисленного программирования
Задачу можно решить не прибегая к ее ветвлению. Найдем значения целевой функции для точек 1, 2, 3. То решение является искомым, для которого целевая функция минимальна, но не меньше целевой функции, полученной при линейном программировании:
Минимальное значение К(3) = 180. Следовательно х1 = 4; х2 = 6. При этом К(3) == Лmin = 180.
3.6. Нелинейное программирование в задачах конструирования
Конструкторские задачи, имеющие нелинейные целевые функции пли нелинейные ограничения, приводят к необходимости решения задач оптимизации методами нелинейного программирования.
Задача нелинейного программирования состоит в отыскании оптимального значения целевой функции
при ограничениях
где К —целевая функция (линейная или нелинейная); j = 1, . . ., n, fi(x1, ..., xm) — ограничительные уравнения (линейные или нелинейные); А—заданные условия задачи; X — элементы решения.
Задача является нелинейной, если целевая функция или любое из ограничений —нелинейны. В настоящее время не разработаны универсальные методы решения задач нелинейного программирования, поэтому, исходя из условий решаемой физической задачи, используют те или иные методы, например градиентные, случайного поиска, секущих плоскостей. Рассмотрим некоторые из них.
1. Градиентный метод. В основу метода положена идея последовательного улучшения некоторого начального решения, путем движения к оптимальному значению целевой функции, которое заранее неизвестно. Для успешного решения задач градиентным методом целесообразно все элементы решения, т. е. искомые хi, привести к единой шкале путем их нормирования, например
или
Рассмотрим процедуру решения задачи, если целевая функция имеет вид
К = K (х1, …, xm) → mах, или K = K (X) → mах.
Выберем начальное решение K(X0), т.е. исходную точку движения к экстремуму К (X0) = К (х10, . . ., хm0).
Выбор начального решения оказывает существенное влияние на ход решения задачи и на его успех. Необходимо использовать всю имеющуюся априорную информацию и физические условия задачи, чтобы как можно удачнее выбрать исходную точку для начала движения к экстремуму.
Найдем градиент функции К (X0), вычисленный для начальной точки решения
Движение к экстремуму производим с определенным шагом, т. е. с определенными приращениями переменных. Выбор шага является ответственным этапом в решении. Если выбрать шаг большим, то можно «перешагнуть» экстремум, а если выбрать шаг малым, то придется долго двигаться к экстремуму. Целесообразно организовать движение с переменным шагом, в начале движения применять большой, а затем, приближаясь К экстремуму, его уменьшать.
Определим приращение оптимизируемой функции при первом шаге
Значение оптимизируемой функции после первого шага составит К(1)(X1) = К(Х0) + ΔК(1).
Если К(1)(X1) > K(X0), до движение происходит в направлении экстремума.
Произведем второй шаг. При этом приращение оптимизируемой функции будет равняться величине
Если на все время движения значения производных не изменять, т. е. сохранять градиент начального шага, то такой метод поиска экстремума называют методом наискорейшего спуска.
Определим значение целевой функции после второго шага
К(2)(X2) = К(1)(Х1) + ΔК(2)
Если К(2)(Х2) > K(1)(X1), то движение происходит по направлению к экстремуму.
Продолжаем движение до выполнения условия К(m)(Хm) — К(m-1)(Хm-1) = 0, или К(m)(Хm) — К(m-1)(Хm-1) ≤ ξ, где ξ — некоторая окрестность экстремума, удовлетворяющая решение. В точке экстремума ξ = 0.
Рассмотренный алгоритм поиска оптимального значения целевой функции не учитывал ограничений. При решении задачи с учетом ограничений используют разновидность градиентного метода, называемую методом штрафных функций. Идея метода состоит в переходе к вспомогательной функции R(X), на которую не наложены ограничения R(X)=K(X)+H(X).
Дополнительное слагаемое H(X) отрицательно в задачах максимизации, его называют штрафной функцией. Штрафная функция равна нулю для тех (X), при которых ограничения не нарушаются. Если ограничения нарушаются, то Н(X) — отрицательна.
Штрафную функцию выбирают в виде суммы
Значение а выбирается достаточным для обеспечения необходимой чувствительности, когда наложенные ограничения не выполняются,
.
Таким образом, при любом нарушении ограничении результирующее приращение целевой функции будет отрицательным что указывает на выход решений за допустимую область При' этом «отслеживание» за соблюдением ограничений произвоизводится по всем переменным, т.е. по всем элементам решения от i = 1 до i = m.
Других отличий метод штрафных функций от рассматриваемого ранее градиентного метода не имеет
Следует заметить, что при достижении границы области допустимых решений целевая функция «отбрасывается» обратно в область, поэтому последующие шаги нужно уменьшать
Градиент функции вычисляется аналогично предыдущем" случаю, а приращения вычисляются по каждой переменной,т.е.
Кроме того, шаг выбирается для всех переменных один и же. Тогда алгоритм вычислений примет вид. При первом шаге
При втором шаге
И т. д.
После каждого шага проверяются условия. Если ограничения нарушены то появляется значение штрафной функции переменной, которая вышла из области допустимых решений.
Пример. В процессе изготовления изделия используются два вида оборудования с производительностями' x1 и х2 — соответственно. Производительность оборудования и показатели качества связаны зависимостями.
Для первого вида оборудования K1 = x1 —x12 для второго вида К2 = Зx2 — х22
Требуется найти те значения производительности оборудования, которые обеспечивают максимальное значение качества.
Полагая, что результирующий показатель качества является аддитивным, запишем целевую функцию
Известны ограничительные условия
Кроме того, известна допустимая погрешность в определении экстремума ξ = 0,3.
Р е ш е н и е.
Выберем за исходную точку движения x1 = 0, х2 = 0, шаг приращения функции h выбираем равным ;, т. е. h = 0,3.
Проверяем выполнимость ограничительных условий. Они выполняются, поэтому α1(0) = 0, и, α2(0) = 0.
Находим составляющие градиента
При x1 = 0, х2 = 0 имеем K(0) (x) = 0. Находим значения x1 и x2 после первого шага
.
Определяем значение целевой функции после первого шага
Следовательно, приращение составляет ΔK(1)(x) = 2,1. Замечаем, что ΔК(1)(х) > ξ поэтому, проверив выполнимость ограничений при x1(1) = 0,3 и x2(1)==0,9, продолжаем движение к экстремуму.
Ограничительные условия выполняются, поэтому а1(1)=0, а1(2)=0
Находим значения х1(2) и х2(2).
Определим значение целевой функции K(2)(x):
Находим ΔК(2)(х)=К(2)(х)-К(1)(х)=2,44—2,1=0,34.
Замечаем, что ΔК(2)(х)>ξ.
Проверяем выполнимость ограничительных уравнений. Они выполняются, т. е. а1(2)=0, а2(2)=0.
Делаем следующий шаг и определяем значения x1(3) и x2(1):
Определяем значение целевой функции после третьего шага cледовательно, ΔК(3)(х)=0,07, что меньше ξ = 0,3.
Остается проверить выполнимость условий при x1(3)=0,45 и x2(3)=1,4.
Первое ограничительное условие не выполняется.
Следовательно, α1(3)>0.
Для получения искомого решения целесообразно на третьем шаге уменьшить h. Допустим h=0,2, тогда
Находим К(3)(х) с учетом изменения шага. К(3)(х)=2,65.
Следовательно, К(3)(х)=0,21. Это меньше ξ=0,3 Снова проверяем ограничительные условия. Они выполняются. Таким образом, задача решена: х1=0,45, х2=36, К (х)=2,65.
2. Метод направленного перебора. Этот метод позволяет найти экстремум целевой функции для случая, когда она недифференцируема, или необходимо найти экстремум функции нескольких переменных.
Как и в предыдущем случае, известна целевая функция и ограничения
Выберем из физических или экономических соображений некоторую исходную точку К(х0), удовлетворяющую ограничительным уравнениям fj(xi), и шаг случайного' поиска h. Поскольку заранее неизвестно предпочтительное направление, в котором целесообразно организовать движение, выбираем одинаковые приращения переменных, каждый раз проверяя выполнение ограничительных уравнений и приращение функции, т. е.
Выбираем те xi, которые дали наибольшее приращение целевой функции, затем при втором шаге даем приращения наиболее предпочтительным переменным.
Может иметь место случай, когда некоторым переменным целесообразно давать отрицательные приращения. Такая ситуация складывается, когда исходная точка, вернее исходные координаты, выбраны неудачно. При каждом шаге определяется новое значение целевой функции. Оно должно быть больше предыдущего. Поиск продолжают до выполнения условия
После каждого шага проверяются условия
и т.д
3. Метод множителей Лагранжа. Метод является полезным при отыскании оптимальных решений, если целевая функция нелинейна, например, задана некоторым полиномом а ограничения заданы в форме равенств.
Требуется найти максимум целевой функции K=K(x1,...,...,хm)→mах. Ограничения заданы в виде
Предполагается, что K(x1,...,хm) и fj(x1,...,хm) дифференцируемы.
Составим функцию Лагранжа
где αj— неопределенные множители Лагранжа. Количество неизвестных прибавилось, но если мы их найдем и подставим в L то это даст оптимальное решение. Перешли от К к некоторой новой функции L.
Необходимым условием существования экстремума является
В этой системе столько неизвестных, сколько уравнений. Следовательно, можно найти x1,...,хm, α1,...,αm и, подставив их в функцию Лагранжа, получим оптимальное решение, т. е. Lmax.
Пример. Разрабатываемая аппаратура состоит из двух блоков Б1 и Б2. Заданная стоимость этих блоков равна соответственно A1 и А2. Известен период эксплуатации t и результирующая интенсивность отказов .
Требуется найти интенсивности отказов блоков, т. с. λ1 и λ2, при которой результирующая стоимость использования аппаратуры за время t минимальна, а интенсивность отказов равна заданной, т. е. λ, тогда
Выразим стоимость использования блоков через их надежность
Запишем целевую функцию в форме Лагранжа
(3.6)
Вычислим производные и приравняем их нулю:
Имеем систему трех уравнений с тремя неизвестными, решив ее, находим λ1, λ2, α, подставив их в (3.6), получим оптимальное решение.
В пространстве à пространство, на которое распространяется действие УПЗ, определено в ст.2 УПК à нормы УПК действуют на всей территории РФ, если иное не установлено международными договорами. Понятие территории РФ определяет ст. 67 КРФ. Международным договором может быть установлено правило, в соответствии с которым на территории РФ применяются нормы иностранного права, если к РФ обращается запрос о правовой помощи (в частности, просьба произвести какое-либо следственное действие); и в соответствующем запросе указывается просьба применить нормы иностранного государства. Возможность применения норм иностранного права обычно специально оговаривается в двустороннем договоре. По кругу лиц à производство по уголовным делам о преступлениях, которые совершены на территории РФ иностранцами и лицами б/г, а также бипатридами, регламентируется нормами УПК. Следует помнить о группе субъектов, которые пользуются иммунитетом. В первую очередь – это дипломатический иммунитет. В отношении лиц, которые пользуются дипломатическим иммунитетом проводить следственные действия с их участием можно только по их просьбе и с их согласия, которое запрашивается через министерство иностранных дел. Новые изменения от 04.03.2008 года. На кого распространяются принципы дипломатического иммунитета, в первую очередь определено в Венской конвенции о дипломатических сношениях; конвенцией о консульских сношениях. Лица, которые обладают дипломатическим иммунитетом и консульским иммунитетом – консулы, послы. Во времени à ст. 4 УПК определяет, как применяется УПЗ во времени. Применяется УПЗ, который действует во время производства соответствующего процессуального действия или принятия процессуального решения, если иное не установлено законом. Относительно действия УПЗ во времени установлено, что применяется закон, который действовал во время производства соответствующего процессуального действия или принятия соответствующего процессуального решения, если иное не установлено законом. Прекращение действия закона:
- может быть отменен;
- может прекратить действие;
- может быть признан несоответствующим КРФ.