Что вы всегда хотели узнать, но боялись спросить

Аватар пользователя
Swetlana
Сообщений: 2067
Зарегистрирован: 03 май 2012, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Swetlana » 15 янв 2013, 10:55

zykov писал(а):Source of the post
Swetlana писал(а):Source of the post
не ставится у меня "Сумма размеров" как оптимизационная задача ЦЛП

Минимизируйте абсолютную разность полученной суммы и целевой суммы.

спасибо за интерес к теме! и, раз уж разговор этого коснулся,
целый коллектив денег лишился, из-за меня этого критерия - минимизации абсолютной разности набранной суммы и целевой суммы
хоздоговор был заключен на размещение готовой листопрокатной продукции на складе, а следующий планировался на отгрузку готовой продукции со склада, но я сразу сделала в комплексе, и размещение, и отгрузку
провела эксперименты на реальных данных - алгоритм отгрузки чудо как хорош и сбалансирован! кому-то немного недогрузим, кому-то перегрузим, и к концу месяца по всем видам сортамента уходим в нули - и себе не в убыток, и, главное, склад не забивается неучтёнными остатками, которые по документам ушли
ответственный исполнитель поехал к заказчику (меня заказчикам не показывали, как неадекватушку ), приезжает, грит, что размещение приняли, и спрашивает:
- А можно вес набирать только с недостатком?
тут я сразу сообразила, что верхняя оценка погрешности моего приближённого алгоритма от этого станет в 2 раза больше, что мне главный показатель хотят испортить, и грю:
- Нет. Нельзя.
Изображение

в инете есть статья в pdf, когда доберусь до сверхбольшой размерности, поясню
Девятов Д.Х., Файнштейн С.И., Тутарова В.Д., Калитаев А.Н. Оперативное планирование отгрузки готовой продукции со складов металлургических предприятий // Мехатроника, автоматизация, управление. – 2008. – №4. – С. 36 - 40.


тут возник некий принципиальный вопрос, что есть истина задача оптимизации, в разных моделях и формализмах
...Гэри-Джонсон предо мною, его свято берегу, читаю с тайною тоскою и начитаться не могу...
не могу, потому что не понимаю - может ли задача оптимизации не иметь решения?
или предполагается, что множество допустимых решений не пусто?
определение задачи оптимизации по Гэри-Джонсону не даёт ответа

Определение. Комбинаторная оптимизационная задача $$Ï$$ есть либо задача минимизации, либо задача максимизации и состоит из трёх частей:
(1) множества $$D_Ï$$ индивидуальных задач;
(2) для каждой $$I \in D_Ï$$ имеется конечное множество $$S_Ï(I)$$ допустимых решений задачи $$I$$;
(3) функции $$m_Ï$$, сопоставляющей каждой задаче $$I \in D_Ï$$ и каждому допустимому решению
$$\sigma \in S_Ï(I)$$ некоторое положительное целое число $$m_Ï(I, \sigma )$$, называемое величиной решения.
Для обозначения величины оптимального решения будем использовать обозначение $$Opt(I)$$.

чтобы ответить, нельзя разговаривать на уровне задач и алгоритмов, нужно переходить на уровень языков, схем кодирования и формальных моделей вычислителя... тоска
имхо, Гэри-Джонсон сознательно уклоняются от обсуждения. Т.к., предлагая модель переборной задачи, для которой и задача распознавания, и задача оптимизации суть частные случаи, говорят, что "можно избежать дискуссии, принадлежит ли пустое слово языку"
Последний раз редактировалось Swetlana 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Swetlana
Сообщений: 2067
Зарегистрирован: 03 май 2012, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Swetlana » 16 янв 2013, 08:02

Итак, задача распознавания из $$NP$$ решалась $$ÍÄÌÒ$$, у которой были состояния $$q_y \ è \ q_n.$$
Задача оптимизации решалась на обычной ДМТ, причём на ленте записывалось закодированное входное слово перед началом работы, а после останова на ленте должно было быть записано закодированное выходное слово-ответ.
Теперь эти два типа задач объединяются в так называемую переборную задачу и для переборных задач затем строится целая теория $$NP$$ - трудных задач, на основе сводимости по Тьюрингу.
Интересно, что с задачами, дополнительными к $$NP$$ - трудным, всё в порядке - они тоже $$NP$$ - трудные.
Я сама всего этого не знаю, кто любит более меня, пусть пишет далее меня
Но определение переборной задачи нужно дать.

Определение. Переборная задача $$Ï$$ это множество её индивидуальных задач $$D_Ï.$$
Для каждой индивидуальной задачи $$I \in D_Ï$$ известно множество $$S_Ï(I)$$ конечных объектов, называемых решениями задачи $$I$$. Будем говорить, что алгоритм решает переборную задачу $$Ï$$ , если, получив в качестве входа произвольную задачу $$I \in D_Ï$$, этот алгоритм выдаёт ответ "нет", если $$S_Ï(I)$$ пусто, и вырабатывает некоторое решение $$s \in S_Ï(I)$$ в противном случае.

Например, для задачи ГЦ пишем "нет", если гамильтонова цикла в графе не существует. Если таких циклов не один, то записываем в качестве ответа любой.

...а теперь переходим к практическим аспектам
Последний раз редактировалось Swetlana 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Swetlana
Сообщений: 2067
Зарегистрирован: 03 май 2012, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Swetlana » 16 янв 2013, 11:40

то ли сумму набирать, то ли вначале несколько слов про ДП (дин. прогр.) сказать
все слова забыла
щас в одном месте подсмотрю
Беллман Р., Калаба Р. Динамическое программирование и современная теория управления // М.: Наука, 1969, 118 стр.

Многошаговые процессы принятия решения. Принцип оптимальности Беллмана. Основное функциональное уравнение Беллмана.

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

Пусть $$R$$ – пространство состояний системы (у физиков - фазовое пространство), функция $$T(p)$$ – преобразование, переводящее систему из состояния $$p$$ в состояние $$p_1:$$ $$p_1 = T(p),$$ где $$p, \ p_1 \in R.$$

Определение 1. Бесконечная последовательность состояний системы $$\[p_0, \ p_1, \dots, \ p_n, \dots \] \ ãäå \ p_0 = p \ è \ p_{n+1} = T(p_n), \ n = 0, \ 1, \ 2, \dots $$ есть история системы, наблюдаемая в дискретные моменты времени, или многошаговый процесс.

Расширим понятие многошагового процесса, предположив, что на каждом шаге мы можем управлять переходами системы из состояния $$p$$ в состояние $$p_1$$ с помощью вектора $$q: \ p_1 = T(p, \ q)$$, где значения вектора $$q$$ выбираются из набора допустимых векторов $$S(q)$$. Вектор $$q$$ называется вектором решения, и выбор вектора $$q$$ называется решением или шаговым управлением.
Простейший $$N$$ - шаговый процесс принятия решений есть последовательность векторов состояния и векторов управления $$\[ (p, \ q), \ ( p_1, \ q_1), \dots, \ (p_n, q_n)\]$$, где $$p_{n+1} = T(p_n, q_n)$$ для всех $$n$$.

Пусть, помимо функции $$T$$ переходов системы из состояния в состояние, у нас также задана скалярная функция критерия или функция дохода, которая зависит от всех состояний процесса $$\[p, \ p_1, \dots, \ p_n \]$$ и всех выбранных пошаговых управлений $$\[q, \ q_1, \dots, \ q_n\]$$.

Определение 2. Назовем последовательность пошаговых управлений $$\[q, \ q_1, \dots, \ q_n\]$$ стратегией. Стратегия, максимизирующая функцию дохода, называется оптимальной стратегией или оптимальным управлением.

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

Принцип оптимальности Беллмана.
Оптимальная стратегия обладает тем свойством, что, каковы бы ни были первоначальное состояние и первоначальное решение (управление), последующее решение должно определять оптимальную стратегию относительно состояния, полученного в результате первоначального решения.
разъясняем
начальное состояние $$p$$ и начальное управление $$q$$ - любые, они перевели систему в новое состояние $$p_1$$. Забываем историю процесса, раз наше текущее состояние $$p_1$$, значит, выстраиваем оптимальную стратегию относительно начального состояния $$p_1$$
надеюсь, теперь понятно

Если в качестве функции дохода использовать аддитивную функцию, где общий выигрыш складывается из суммы выигрышей по всем шагам, то принцип выбора оптимальных пошаговых управлений формулируется так:
«Каково бы ни было состояние системы перед очередным шагом, надо выбрать управление на этом шаге так, чтобы выигрыш на данном шаге плюс оптимальный выигрыш на всех последующих шагах был максимальным».
Используя это соображение, можно записать основное рекуррентное соотношение динамического программирования (функциональное уравнение Беллмана), позволяющее получить как аналитически, так и численно оптимальную стратегию и максимальный доход.

Перечислим еще раз
требования к задаче, позволяющие применить метод динамического программирования.
1. Объектом исследования должна служить управляемая система с заданными допустимыми состояниями и допустимыми управлениями.
2. Задача должна позволять интерпретацию как многошаговый процесс, каждый шаг которого состоит из принятия решения о выборе одного из допустимых управлений, приводящих к изменению состояния системы.
3. Состояния системы на каждом шаге должны описываться одинаковым набором параметров.
4. Задача не должна зависеть от количества шагов.
5. Состояние, в котором оказывается система после выбора решения (управления) на $$k$$-м шаге, зависит только от данного управления и состояния системы перед $$k$$-м шагом (отсутствие последействия, будущее зависит только от настоящего и не зависит от прошлого).
6. Для каждых двух последовательных состояний системы $$p_i$$ и $$p_{i+1}$$ существует известная функциональная зависимость, зависящая от выбранного управления $$q$$: $$p_{i+1} = T(p_i, \ q)$$.
Последний раз редактировалось Swetlana 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Swetlana
Сообщений: 2067
Зарегистрирован: 03 май 2012, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Swetlana » 16 янв 2013, 13:56

Основное функциональное уравнение Беллмана

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

Например, требуемым свойством "сепарабельности", т.е. отделимости прошлого от будущего, обладают следующие критерии (функции дохода):
1. $$\sum_{k=0}^{N}g(p_k, \ q_k)$$.
2. $$\prod_{k=0}^{N}g(p_k, \ q_k)$$.
3. $$g(p_N)$$ (терминальное управление).
4. $$max_{k \geq 0} \ \{g(p_k, \ q_k)\}$$ (для бесконечношаговых процессов).

Выведем функциональное уравнение для первой функции дохода, где общий доход равен суммарному доходу по всем шагам: $$\sum_{k=0}^{N}g(p_k, \ q_k)$$.

Обозначим $$f_N(p)$$ максимальный доход, который можно получить при начальном состоянии $$p$$ за $$N$$ шагов при оптимальной стратегии (при выборе на каждом шаге оптимального управления).

Из принципа оптимальности получаем, что при любом начальном управлении $$q_0$$ для $$N \geq 1$$ верно:
$$\sum_{k=0}^{N}g(p_k, \ q_k) = g(p, \ q_0)+ [ g(p_1, \ q_1)+ \dots + g(p_N, \ q_N) ]  =$$
$$g(p, \ q_0)+ f_{N-1}(p_1) = g(p, \ q_0)+ f_{N-1}(T(p, \ q_0)).$$
что мы тут сделали
начальное состояние системы $$p$$ и начальное решение (управление) $$q_0$$ были произвольные, они перевели систему в состояние $$p_1$$
все последующие решения-управления составили оптимальную стратегию относительно начального состояния $$p_1$$, поэтому сумму в квадратных скобках заменили максимальным доходом, полученным за $$N-1$$ шаг
Далее, чтобы получить максимальный доход $$f_N(p)$$ за все $$N$$ шагов, нужно найти максимум функции дохода по всем возможным управлениям $$q_0$$ на первом шаге.
Для этого либо этих возможных управлений должно быть конечное число, либо функции $$g(p, \ q) \ è \ T(p, \ q)$$ должны быть достаточно гладкими.
Так или иначе, но получаем

основное функциональное уравнение для аддитивной функции дохода:
$$f_N(p) = max_{q_0}\{ g(p, \ q_0)+  f_{N-1}(T(p, \ q_0))\}, \ N \geq 1,$$
где $$f_0(p) = max_{q_0}g(p, \ q_0)$$.
это уравнение является реккурентным, т.к. значение функции $$f_N$$ выражается через $$f_{N-1}$$
аналогично можно получить реккурентные соотношения для других функций дохода

Литература
Беллман Р., Калаба Р. Динамическое программирование и современная теория управления // М.: Наука, 1969.
тоненькая книжечка,
а чего там только нет - и непрерывные многошаговые процессы, и стохастические процессы, и даже процессы с адаптацией
что поняла, то и рассказала
Последний раз редактировалось Swetlana 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Swetlana
Сообщений: 2067
Зарегистрирован: 03 май 2012, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Swetlana » 17 янв 2013, 08:55

Лекции Котова по динамическому программированию

Псевдополиномиальные алгоритмы это динамическое программирование, другие псевдополиномиальные алгоритмы науке пока неизвестны
я училась решать задачи по ДП с помощью лекций Котова для школьников, учащихся старших классов

вот они


[img]/modules/file/icons/application-octet-stream.png[/img] ___________________.rar
Последний раз редактировалось Swetlana 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Swetlana
Сообщений: 2067
Зарегистрирован: 03 май 2012, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Swetlana » 17 янв 2013, 09:56

Решаем задачу "Сумма размеров" с помощью ДП

Открываем лекции Котова на стр. 17
Пример 1.
Имеется 5 неделимых предметов. Для каждого предмета известна его масса (в кг). Величины массы являются натуральными числами. Ваша цель состоит в том, чтобы определить, существует ли среди 4кг, 5кг, 3кг, 7кг, 6кг несколько предметов, суммарная масса которых равна 16 кг. Если такой набор существует, то требуется определить список предметов в наборе.
Решение.
Пусть массы всех предметов хранятся в массиве $$M$$, где $$M[i]$$ - масса $$i$$-го предмета.

Стоп.
Задача о наборе веса 16кг - задача распознавания.
Динамическое программирование (динамическая оптимизация) решает задачи оптимизации.
Основное реккурентное соотношение Беллмана, которое мы вывели, максимизирует функцию дохода.
Как же так???
Спокойствие, ув. коллеги. Читаем учебник для старших школьников дальше

Через $$Ò$$ обозначим функцию, значение которой равно $$1$$, если искомый набор имеется, и равно $$0$$, если такого набора нет. Аргументами у этой функции будут количество предметов $$i$$ и требуемая суммарная масса набора $$j$$.
То есть нам надо определить значение функции $$Ò(5,16)$$. Если оно равно $$1$$, то вес можно набрать, если $$0$$ - нельзя. Поскольку $$1 \geq 0$$, будем максимизировать значение функции $$T$$ согласно функциональному уравнению Беллмана.

Определим значения функции дохода $$T$$ при всех возможных значениях аргументов.
$$T(0,j) = 0 \ ïðè \ j \geq 1$$ //нельзя без предметов набрать массу $$j > 0$$.
$$T(i,0) = 1 \ ïðè \ i \geq 0$$ //всегда можно набрать нулевую массу.

Определим возможные значения функции $$T(i,j)$$ при ненулевых значениях аргументов.
Решение задачи, соответствующей функции $$T(i,j)$$ может быть сведено к двум возможностям:
брать предмет с номером $$i$$ в набор или нет. Из этих двух возможностей выбираем ту, которая максимизирует значение функции дохода $$T$$.

Если $$i$$-й предмет не берется, то решение задачи с $$i$$ предметами сводится к решению подзадачи с $$i-1$$ предметом, т.е. $$T(i,j) = T(i-1,j)$$.
Если $$i$$-й предмет берется, то это уменьшает суммарную массу, которую нужно набрать предыдущими $$i-1$$ первыми предметами на величину $$M[i]$$, т.е. $$T(i,j) = T(i-1,j-M[i])$$.
Вторая ситуация возможна только тогда, когда масса $$i$$-го предмета не больше значения $$j$$.

Теперь нам необходимо выбрать лучшую из этих двух возможностей. Поэтому рекуррентное соотношение при $$i \geq 1 \ è \ j \geq 1$$ имеет вид:
$$T(i,j) = T(i-1,j) \ ïðè \ j < M[i];$$</span> //<span class=$$" title="$$ //$$" align="middle" style="border: 0; vertical-align: middle">i$$-й предмет не берётся, т.к. не проходит по весу
$$T(i,j) = max (T(i-1,j),T(i-1,j-M[i])) \ ïðè \ j \geq M[i].$$

Реккурентные соотношения составлены.
Вычислять значения функции $$T$$ удобно с помощью таблицы,
где строки - количество разрешённых к использованию предметов, $$i = 0 \dots 5$$;
столбцы - набранный вес, $$j = 0 \dots 16.$$
Далее смотрим у Котова, на табличку и на алгоритм определения предметов, которые вошли в набор.
Реально хороший учебник.
Вот моя первая прожка по ДП, списанная с котовой
Набираем сумму 90, но её набрать невозможно, и ДП даёт ближайшую сумму по недостатку - 89.

Если бы нам нужна была ближайшая сумма по модулю, то первым запуском определили бы отклонение $$D$$ по недостатку, а вторым набирали бы сумму $$B+D-1$$ и из двух наборов выбрали бы оптимальный.

Код: Выбрать все

const N=5;
 Ves=90;
 var
 M: array[1..N]of integer;
 T:array[0..N,0..Ves]of byte;
 sum,i,j:integer;
 begin
 M[1]:= 35; M[2]:= 30; M[3]:= 17; M[4]:= 13;
 M[5]:= 11;
 T[0,0] := 1;
 for j := 1 to Ves do T[0, j] := 0;
 for i := 1 to N do T[i, 0] := 1;

 for i := 1 to N do begin
 for j := 1 to Ves do begin
 if j >= M[i] then begin
 if T[i - 1, j]> T[i - 1, j - M[i]] then
 T[i,j]:= T[i - 1, j]
 else T[i, j]:= T[i - 1, j - M[i]];end
 else T[i, j]:= T[i - 1, j];
 end;
 end;

 for j:=Ves downto 1 do
 begin
 sum:=j;
 if T[N, j] = 1 then
 begin
 for i := N downto 1 do
 begin
 if T[i, sum] = T[i - 1, sum] then
 writeln (i, '---No')
 else begin writeln (i, '---Yes');
 sum := sum - M[i];
 end;
 end;
 break;
 end;
 end;

 readln;
 end.


...а когда я немного освоилась с ДП, то решила написать прожку для набора заданной суммы минимальным числом слагаемых, на сорцах из всех профи душу вынула
[url=http://forum.sources.ru/index.php?showtopic=339382#]http://forum.sources.ru/index.php?showtopic=339382#[/url]
Последний раз редактировалось Swetlana 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Andrew58
Сообщений: 8961
Зарегистрирован: 20 янв 2009, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Andrew58 » 18 янв 2013, 16:11

Светлана,
Во-первых, огромное спасибо за ликбез. Я еще несколько раз перечитаю все с огромным удовольствием, ладно?
Дурацких же вопросов по дороге возникло много. Самый дурацкий - а есть в этой теории место понятиям количеству информации, неопределенности и прочему? Казалось бы, в экспоненте тут бы самое место, чтобы воткнуть...
Последний раз редактировалось Andrew58 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Swetlana
Сообщений: 2067
Зарегистрирован: 03 май 2012, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Swetlana » 19 янв 2013, 07:57

на доброе здоровьичко, только я ещё не закончила

неопределённости место всегда есть, практически любая теория из области системного анализа, дискретного математического моделирования, дискретной оптимизации, теории принятия решений обобщается на принятие в решений в условиях неопределенности и принятие решений в условиях риска.

То есть классическое ДП - это дискретные детерминированные процессы, принятие решений в условиях определённости. Это преподают, и это все знают. Но.
В уже упомянутой книжке Беллмана-Калабы ДП обощается на случай непрерывных и стохастических процессов. Я в этом не разбиралась, потому что моя фишка - выбор в условиях многокритериальности, когда исчезает граница между оптимизацией и распознаванием, потому что из-за многокритериальных ограничений нет допустимых решений. Об этом как-нибудь потом
Последний раз редактировалось Swetlana 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Swetlana
Сообщений: 2067
Зарегистрирован: 03 май 2012, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Swetlana » 20 янв 2013, 09:11

если размерность $$NP$$ - полной задачи такова, что вычисление с помощью точного алгоритма не укладывается в реальное время, а для большинства реальных задач именно так и бывает, то следует отказаться от попыток найти оптимальное решение и отправиться на поиски решения хорошего и устраивающего заказчика

Приближённые методы решения

Приближённые методы решения имеют смысл только для оптимизационных задач.
Определение 1. Комбинаторная оптимизационная задача $$Ï$$ есть либо задача минимизации, либо задача максимизации и состоит из трёх частей:
(1) множества $$D_Ï$$ индивидуальных задач;
(2) для каждой $$I \in D_Ï$$ имеется конечное множество $$S_Ï(I)$$ допустимых решений задачи $$I$$;
(3) функции $$m_Ï$$, сопоставляющей каждой задаче $$I \in D_Ï$$ и каждому допустимому решению
$$\sigma \in S_Ï(I)$$ некоторое положительное целое число $$m_Ï(I, \sigma )$$, называемое величиной решения.
Для обозначения величины оптимального решения будем использовать обозначение $$Opt(I)$$.

Определение 2. Алгоритм $$A$$ называется приближённым алгоритмом решения задачи $$Ï$$, если для любой индивидуальной задачи $$I \in D_Ï$$ алгоритм $$A$$ отыскивает некоторое допустимое решение $$\sigma \in S_Ï(I)$$.
Для обозначения величины приближённого решения будем использовать обозначение $$A(I)$$.

Случай, когда множество допустимых решений пусто, у Гэри-Джонсона не обсуждается. К слову, в многокритериальных задачах оптимизации, которые пришли из жизни, оно всегда пусто.
В такой ситуации я снимаю все ограничения, заменяю их штрафными функциями, где штрафы за нарушения ограничений суть настроечные константы, позволяющие адаптировать алгоритм к реальным данным, и решаю задачу на области недопустимых решений, т.е. получаю решение с небольшими нарушениями технологических ограничений, что на производстве происходит каждый день. Это жизнь.
Но сейчас мы решаем задачи, как положено, на множестве допустимых решений, и оно не пусто. Такие задачи тоже есть

Определение 3. Если $$A(I) = Opt(I)$$ для всех $$I \in D_Ï$$, то $$A$$ называется точным алгоритмом задачи $$Ï$$.
Последний раз редактировалось Swetlana 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Swetlana
Сообщений: 2067
Зарегистрирован: 03 май 2012, 21:00

Что вы всегда хотели узнать, но боялись спросить

Сообщение Swetlana » 20 янв 2013, 11:31

теперь нужно определиться , как мы будем мерять погрешность приближённых алгоритмов
возможно, терминология Гэри-Джонсона устарела, лучше смотреть в Кормене
но Кормена под рукой нет

Пусть $$Ï$$ - задача минимизации (максимизации), $$I \in D_Ï$$ - произвольная индивидуальная задача.
Тогда величину $$\left| \frac{A(I)-Opt(I)}{Opt(I)} \right|$$ ( и $$\left| \frac{Opt(I)-A(I)}{Opt(I)} \right|$$ для задачи максимизации)
назовём относительной погрешностью алгоритма решения индивидуальной задачи $$I \in D_Ï$$.

Теперь введём другую безразмерную величину, отношение $$\frac{A(I)}{Opt(I)}$$
$$\frac{Opt(I)}{A(I)}$$ для задачи максимизации соответственно)

Определение 4. Погрешностью приближённого алгоритма $$A$$ решения задачи $$Ï$$ назовём величину $$R_A$$:
$$R_A = inf \left\{ r \geq 1: \ R_A(I) \leq r \ äëÿ \ âñåõ \ I \in D_Ï \right \}$$.

Определение 5. Асимптотической погрешностью приближённого алгоритма $$A$$ назовём величину $$R_A^{\infty}$$:
$$R_A^{\infty} = inf \{ r \geq 1:íàéä¸òñÿ \ N \in Z^+,òàêîå, \ ÷òî \ R_A(I) \leq r \ äëÿ \ âñåõ $$</span> <span class=$$" title="$$ $$" align="middle" style="border: 0; vertical-align: middle">\ I \in D_Ï, \ äëÿ \ êîòîðûõ \ âûïîëíåíî \ ñîîòíîøåíèå \ Opt(I) \geq N \}$$.

Определённое таким образом отношение для задач на минимум обратно отношению для задач на максимум. Кроме того, всегда имеет место:
$$1 \leq R_A \leq \infty$$ и $$1 \leq R_A^{\infty} \leq \infty$$.
Заметим, что $$R_A$$ и $$R_A^{\infty}$$ могут быть не равны между собой.
Последний раз редактировалось Swetlana 28 ноя 2019, 15:08, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 15 гостей