<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_2018</id>
	<title>Дискретная оптимизация 2018 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_2018"/>
	<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_2018&amp;action=history"/>
	<updated>2026-06-06T12:33:19Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.wikicshse.ru/index.php?title=%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_2018&amp;diff=2157&amp;oldid=prev</id>
		<title>imported&gt;Ignat: Ignat переименовал страницу Дискретная оптимизация в Дискретная оптимизация 2018</title>
		<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_2018&amp;diff=2157&amp;oldid=prev"/>
		<updated>2019-03-30T15:45:59Z</updated>

		<summary type="html">&lt;p&gt;Ignat переименовал страницу &lt;a href=&quot;/%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F&quot; class=&quot;mw-redirect&quot; title=&quot;Дискретная оптимизация&quot;&gt;Дискретная оптимизация&lt;/a&gt; в &lt;a href=&quot;/%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_2018&quot; title=&quot;Дискретная оптимизация 2018&quot;&gt;Дискретная оптимизация 2018&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Курс читается для студентов 3-го курса [https://cs.hse.ru/ami ПМИ ФКН ВШЭ] в 4 модуле. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лектор:&amp;#039;&amp;#039;&amp;#039; [http://wiki.cs.hse.ru/%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Ignat  Игнат Колесниченко]&lt;br /&gt;
&lt;br /&gt;
Лекции ПМИ проходят по вторникам, 13:40 - 15:00, ауд. 622.&lt;br /&gt;
&lt;br /&gt;
=== Полезные ссылки ===&lt;br /&gt;
&lt;br /&gt;
Канал в телеграм для объявлений: https://t.me/joinchat/AAAAAFD1-ZdchZS1FoOduA&lt;br /&gt;
&lt;br /&gt;
Таблица с оценками: TODO&lt;br /&gt;
&lt;br /&gt;
Оставить отзыв на курс: TODO&lt;br /&gt;
&lt;br /&gt;
== Семинары ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Преподаватель !! Связь !! Страница !! Расписание&lt;br /&gt;
|-&lt;br /&gt;
| МОП 151 || Лахтанов Иван || telegram: @ivan_lakhtanov  || ? || Пятница 15:10 - 16:30&lt;br /&gt;
|-&lt;br /&gt;
| МОП 152 || Колесниченко Игнат || ignat1990@gmail.com || http://wiki.cs.hse.ru/%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Ignat || Вторник 15.10-16.30&lt;br /&gt;
|-&lt;br /&gt;
| АПР 153  || Суханов Николай || - || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| АДИС 154 || Савченко Руслан || - || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| РС 155 || Ахмедов Максим || telegram: @max_akhmedov, http://t.me/discrete_opt_155 || ? || ?&lt;br /&gt;
|- &lt;br /&gt;
| ТИ 156 || Саакян Вильям || telegram: @wilwell  || ? || Вторник 10:30 - 11:50&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Консультации ===&lt;br /&gt;
&lt;br /&gt;
Консультации с преподавателями и учебными ассистентами (если иное не оговорено на странице семинаров конкретной группы) по курсу проводятся по предварительной договорённости ввиду невостребованности регулярных консультаций.&lt;br /&gt;
&lt;br /&gt;
=== Правила выставления оценок ===&lt;br /&gt;
&lt;br /&gt;
В курсе предусмотрено 3 домашних задания – 2 практических и 1 теоретическое. За каждое домашнее задание выставляется оценка по 10-бальной шкале, правила получения оценки будут оговариваться при публикации домашнего задания.&lt;br /&gt;
&lt;br /&gt;
Итоговая оценка вычисляется исходя из оценок за домашние задания&lt;br /&gt;
&lt;br /&gt;
O&amp;lt;sub&amp;gt;итоговая&amp;lt;/sub&amp;gt; = round(0.33 * O&amp;lt;sub&amp;gt;ДЗ1&amp;lt;/sub&amp;gt; + 0.33 * О&amp;lt;sub&amp;gt;ДЗ2&amp;lt;/sub&amp;gt; + 0.34 * О&amp;lt;sub&amp;gt;ДЗ3&amp;lt;/sub&amp;gt;), где round – это функция арифметического округления.&lt;br /&gt;
&lt;br /&gt;
Также на семинарах иногда будут выдаваться небольшие домашние задания. Их решение будет засчитываться как доп. баллы в домашних заданиях (доп. баллы к исходной оценке в ДЗ, а не к результирующей).&lt;br /&gt;
&lt;br /&gt;
=== Правила сдачи заданий ===&lt;br /&gt;
&lt;br /&gt;
Дедлайны по всем домашним заданиям являются жёсткими, то есть после срока работы не принимаются.&lt;br /&gt;
&lt;br /&gt;
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.&lt;br /&gt;
&lt;br /&gt;
При наличии уважительной причины дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лекция 1&amp;#039;&amp;#039;&amp;#039; (3 апреля). Метод Branch&amp;amp;Bound решения оптимизационных задач. Задача о рюкзаке: 2-приближение, динамическое программирование по весам и по стоимостям.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лекция 2&amp;#039;&amp;#039;&amp;#039; (10 апреля). Задача о рюкзаке: PTAS с временем работы (n^(1+1/eps)), FPTAS с временем работы O(n^3 * 1 /eps). Напоминание об переменных нежесткости и условиях дополняющей нежесткости.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лекция 3&amp;#039;&amp;#039;&amp;#039; (17 апреля). Методика Primal-Dual построения решений для комбинаторных задач. Применение Primal-Dual к задаче о поиске кратчайших путей.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лекция 4&amp;#039;&amp;#039;&amp;#039; (24 апреля). Задача о взвешенном паросочетании в двудольном графе, применение Primal-Dual для её решения.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лекция 5&amp;#039;&amp;#039;&amp;#039; (15 мая). Поиск паросочетаний в недвудольных графах. Алгоритм Эдмонса. Минимаксная формула для размера паросочетания в произвольном графе (формула Татта-Бержа).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лекция 6&amp;#039;&amp;#039;&amp;#039; (22 мая). Симплекс-метод, геометрическая интерпретация, базисные перменные и эффективная реализация (табличный симплекс-метод).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лекция 7&amp;#039;&amp;#039;&amp;#039; (29 мая). Метод эллипсоидов, решение выпуклых задач оптимизации с помощью метода отделяющей плоскости. Задача о разрезе максимального веса, 0.5-приближение с помощью дерандомизации. Построение 0.878-приближения с помощью сведения к задаче полуопределенного программирования.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Лекция 8&amp;#039;&amp;#039;&amp;#039; (5 июня). Метод локального поиска. Применение его к задаче о ферзях. Применение к задаче о раскраске графа. Алгоритм sqrt(n) раскраски 3-раскрашиваемого графа.&lt;br /&gt;
&lt;br /&gt;
== Семинары ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Семинар 1&amp;#039;&amp;#039;&amp;#039; (2-6 апреля). Напоминание о линейном и целочисленном программирование. Построение двойственных программ. Задача о поиске максимального паросочетания в двудольном графе.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Семинар 2&amp;#039;&amp;#039;&amp;#039; (9-13 апреля). &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Семинар 3&amp;#039;&amp;#039;&amp;#039; (16-20 апреля). &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Семинар 4&amp;#039;&amp;#039;&amp;#039; (23-24 апреля). Задача Set-Cover. Решение с помощью округления ЛП. Примерение Primal-Dual для построение f-приближения. Вероятностный способ округления для построения log(n)-приближения.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Семинар 5&amp;#039;&amp;#039;&amp;#039; (14-18 мая). Разложение Эдмонса-Галлаи, его полученеи из алгоритмы Эдмонса и его свойства. Задача о существовании совершенного паросочения в 3-регулярном графе без мостов. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Семинар 6&amp;#039;&amp;#039;&amp;#039; (21-25 мая). Задача о поиске упаковки вершинно-непересекающихся T-путей, минимаксная формула Галлаи. Связь с задачей о паросочетаниях.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Семинар 7&amp;#039;&amp;#039;&amp;#039; (28 мая - 1 июня). Программирование в ограничениях (CP), базовая концепция. Примеры решения задач с помощью CP: задача о ферзях, задача о магической последовательности, задача о сборке автомобилей.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Семинар 8&amp;#039;&amp;#039;&amp;#039; (4-8 июня). Задача коммивояжера. Алгоритмы для 2 и 1.5 приближений. Алгоритмы локального поиска в данной задаче: 2-OPT, 3-OPT, эвристика Ли-Кернигана.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Домашнее задание 1 (практика)===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Дедлайн: 14 мая 23:59&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В домашнем задании требуется решить три практических задачи, архив с условием: https://yadi.sk/d/t9yrhBy-3UiVgA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Контест для сдачи задач: https://contest.yandex.ru/contest/8104/&lt;br /&gt;
&lt;br /&gt;
Грейдер для задачи о рюкзаке: http://akhmedov.me:50010/knapsack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Задание следует отправлять на почту discret.opt.hse@gmail.com.&lt;br /&gt;
В заголовке письма с решением указывайте &amp;quot;[Название группы] ФИО Домашнее задание 1&amp;quot;.&lt;br /&gt;
В случае вопроса добавляйте в заголовок письма слово &amp;quot;вопрос&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Критерий оценки задачи о рюкзаке ====&lt;br /&gt;
Оценивание производилось на закрытых тестах. Оценка ставится в зависимости от отличия вашего решения и оптимального решения. Также в случае отсутствия отчета или плохо написанного отчета семинарист вправе снять еще до 1 балла.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Суммарная ошибка 0 – 6 баллов.&lt;br /&gt;
&lt;br /&gt;
Суммарная ошибка &amp;lt;200 – 5 баллов.&lt;br /&gt;
&lt;br /&gt;
Суммарная ошибка &amp;lt;1500 – 4 балла.&lt;br /&gt;
&lt;br /&gt;
Суммарная ошибка &amp;lt;5000 – 3 балла.&lt;br /&gt;
&lt;br /&gt;
Суммарная ошибка &amp;lt;15000 – 2 балла.&lt;br /&gt;
&lt;br /&gt;
Суммарная ошибка &amp;lt;21000 – 1 балл.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последняя граница выбрана исходя из того, что стандартное жадное решение имеет ошибку примерно 20800)&lt;br /&gt;
&lt;br /&gt;
Приватные тесты: https://yadi.sk/d/1n9vMPTi3XLFiM&lt;br /&gt;
&lt;br /&gt;
=== Домашнее задание 2 (теория)===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Дедлайн: 2 июня 23:59&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В домашнем задании требуется решить 5 теоретических задач, условия: https://yadi.sk/i/o4gtEhpA3VywLM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В качестве решения в каждой задачи должно быть подробное доказательство требуемого факта/описание работы алгоритма/структуры данных с оценкой времени его работы. При выполнении этого домашнего задания можно использовать все алгоритмы и теоремы, которые были разобраны и доказаны на лекциях и семинарах. Однако, следует подробно объяснить к чему и как они применяются.&lt;br /&gt;
&lt;br /&gt;
Решения настоятельно рекомендуется записывать в latex-е.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Оценка будет выставлять по формуле min(10, баллы за решение + баллы за семинар 1 + баллы за семинар 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Задание следует отправлять на почту discret.opt.hse@gmail.com.&lt;br /&gt;
В заголовке письма с решением указывайте &amp;quot;[Название группы] ФИО Домашнее задание 2&amp;quot;.&lt;br /&gt;
В случае вопроса добавляйте в заголовок письма слово &amp;quot;вопрос&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Домашнее задание 3 (практика)===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Дедлайн: 25 июня 23:59&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В домашнем задании требуется решить три практических задачи, архив с условием: https://yadi.sk/d/7fEE0CuN3Xk5bJ&lt;br /&gt;
&lt;br /&gt;
Контест для сдачи задач: https://contest.yandex.ru/contest/8422&lt;br /&gt;
&lt;br /&gt;
Оценка будет выставлять по формуле min(10, баллы за решение)&lt;br /&gt;
&lt;br /&gt;
Задание следует отправлять на почту discret.opt.hse@gmail.com.&lt;br /&gt;
В заголовке письма с решением указывайте &amp;quot;[Название группы] ФИО Домашнее задание 3&amp;quot;.&lt;br /&gt;
В случае вопроса добавляйте в заголовок письма слово &amp;quot;вопрос&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Пересдача ==&lt;br /&gt;
&lt;br /&gt;
Пересдачи будут проходить 4-го и 7-го сентября.&lt;br /&gt;
4-го сентября пересдача будет в аудитории Кэмбридж в ШАДе в 10.00 (с 09.55 до 10.05 мы будем ждать вас у проходной).&lt;br /&gt;
7-го сентября пересдача будет в аудитории 435 на Кончовском в 10.00.&lt;br /&gt;
&lt;br /&gt;
Правила проведения пересдачи и программа экзамена поступны тут: https://yadi.sk/d/P2NVdCGy3Zrkh9&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Практика&amp;#039;&amp;#039;&amp;#039;. Условие задачи и открытые тесты доступно по следующей ссылке: https://yadi.sk/d/E_h4glrb3acMWJ&lt;br /&gt;
&lt;br /&gt;
Контест доступен по следующей ссылке: https://contest.yandex.ru/contest/8801/problems/&lt;br /&gt;
&lt;br /&gt;
Решения принимаются до 23:59:59  2 сентября вне зависимости от даты пересдачи, на которую приходит студент. Несданное к дедлайну решение практическое части оценивается в 0 баллов.&lt;br /&gt;
&lt;br /&gt;
== Комиссия ==&lt;br /&gt;
&lt;br /&gt;
Состоится 27 сентября в 10.00 в аудитории  ауд.322. Формат аналогичен теоретической части на пересдаче.&lt;br /&gt;
&lt;br /&gt;
== Полезные материалы ==&lt;br /&gt;
===Рекомендуемая литература  ===&lt;br /&gt;
&lt;br /&gt;
  * &amp;quot;B.Korte, J.Vygen – Combinatorial optimization&amp;quot; – подробная книга по теории комбинаторной оптимизации (http://www.or.uni-bonn.de/~vygen/co.html).&lt;br /&gt;
  * &amp;quot;V. Vazirani – Approximation Algorithms&amp;quot; – одна из лучших книг по приближенным алгоритмам.&lt;br /&gt;
  * &amp;quot;H. Papadimitriou – Combinatorial Optimization: Algorithms and Complexity&amp;quot; – классический учебник по комбинаторной оптимизации. &lt;br /&gt;
  * &amp;quot;Where are the hard knapsack problems?&amp;quot; [David Pisinger] - интересные рассуждения по поводу того, как генерировать сложные тесты для задачи о рюкзаке.&lt;br /&gt;
  * [[https://web.tuke.sk/fei-cit/butka/hop/htsp.pdf &amp;quot;Heuristics for the Traveling Salesman Problem&amp;quot; [Christian Nilsson]]]  - краткое но насыщенное описание эвристик для задачи о коммивояжёре.&lt;br /&gt;
  * &amp;quot;Handbook of Constraint Programming&amp;quot; [F. Rossi, P. van Beek and T. Walsh] - справочник по программированию в ограничениях.&lt;br /&gt;
  * &amp;quot;Handbook of Metaheuristics&amp;quot; [Michel Gendreau, Jean-Yves Potvin] - справочник с описанием эвристических алгоритмов оптимизации.&lt;br /&gt;
&lt;br /&gt;
===Полезные ссылки  ===&lt;br /&gt;
&lt;br /&gt;
  * [[http://dopt.s3-website-us-east-1.amazonaws.com/003/viz/tsp/ Визуализатор маршрута коммивояжёра]] (вершины подаются в 0-индексации)&lt;br /&gt;
  * Курс по дискретной оптимизации на [[https://www.coursera.org/course/optimization Coursera]]. Содержит хорошие видео-лекции по Constraint Programming и Local Search.&lt;br /&gt;
&lt;br /&gt;
===Библиотеки для решения задач оптимизации===&lt;br /&gt;
  *  [[https://developers.google.com/optimization/ Google Optimization Tools]] (C++, Python, Java, C#) - фреймворк для решения задач дискретной оптимизаций. Позволяет программировать в парадигме Constraint Programming. Содержит инструменты для решения задач линейного программирования. ([[http://www.lia.disi.unibo.it/Staff/MicheleLombardi/or-tools-doc/documentation_hub.html Более полная документация]])&lt;br /&gt;
  * [[http://numberjack.ucc.ie/ Numberjack]] (Python)&lt;br /&gt;
  * [[http://choco-solver.org/ Choco]] (Java)&lt;br /&gt;
  * [[http://www.gecode.org/index.html Gecode]] (C++)&lt;br /&gt;
  * [[http://www.minizinc.org/ MiniZinc]] (MiniZinc) - Довольно выразительный язык для CP. Есть ((http://www.hakank.org/minizinc/ много примеров)).&lt;/div&gt;</summary>
		<author><name>imported&gt;Ignat</name></author>
	</entry>
</feed>