Blog:Advanced Algorithms

Материал из DISCOPAL
Перейти к: навигация, поиск

Новости курса «Эффективные алгоритмы» для 6 курса ФУПМ МФТИ.

2023-05-17 Feedback

  • Времени осталось мало!

2023-05-17 Feedback 2023-05-19 15-28-29 image0.png 2023-05-17 Feedback 2023-05-19 15-29-48 image0.png


2023-04-22 Feedback

2023-03-22 Feedback 2023-04-25 01-18-11 image0.png


2023-03-22 Feedback 2023-04-25 12-08-01 image0.png
  • Голосовалка → Vote-week-2023-04-07
    • Очень неактивно
    • 2.5 человека на вторник-вечер и четверг-утро.
    • Ну попробуем сегодня и вторник вечер.
2023-04-22 Feedback 2023-04-25 13-42-20 image0.png
  • Но PULL/vs PUSH
2023-04-22 Feedback 2023-04-25 12-25-38 image0.png



2023-03-22 Feedback 2023-04-25 12-10-10 image0.png

  • В этом году достаточно «одной полной задачи» — Pyomo+NPC+Вероятностные тесты
2023-03-22 Feedback 2023-04-25 12-14-44 image0.png
  • +1 балл → т.е. минимум «хор», кто никак не проявлялся, либо «отл» если достаточно очков за тесты и классную активность.
  • чем быстрее начнете → тем быстрее освободитесь для сессии (и возможно более удобные задачи).


2023-03-04 Feedback


  • «Фактор A»

WTF, не надо так

Не делайте так. Посмотрите как оформлять.

https://vimeo.com/91590613 https://vimeo.com/803931121

Через некоторое время просто удалю здесь все. Вернее верну исходную версию, ибо вы просто стерли решением постановку.

Кто-то неверно делает ссылку на задачу →


  • Кто-то вырвался вперед… 
    • Участник:DmitryTeterin/rungs — ну просто же (первые расхватают все легкое!).
    • Но очень хотелось бы увидеть хотя бы 2/3 успешно начавших
  • «Официальные видеоразборы» подшиваю к решенным задачам.
    • Ну можно смотреть из альбома (начинайте с самых коротких? увы, не получилось отсортировать).
  • «Как зайти на Spoj»
  • Кончилась «легкая сортировка с литкода» — насыпал много новых и легких.

2023-03-01 Feedback

2023-03-01 Feedback 2023-03-01 21-50-17 image0.png
2023-03-01 Feedback 2023-03-01 21-53-52 image0.png
  • Ответы на ваши вопросы.
    • Как оформлять задачи и особенно, как заводить личные подстраницы → https://vimeo.com/803931121

Жадные алгоритмы, Python, Leetcode, система визуализации алгоритмов — начинаем «в алгоритмы»

Всяко лучше чем Rust/C++
      • Если уж совсем дремучие люди → им может помочь Udaff.
  • Если нет, ничего страшного → идем на http://pythontutor.ru/, https://exercism.org/tracks/python
  • После основ, попробуем жадные алгоритмы на Python и Leetcode.
Жадные алгоритмы, Python, Leetcode, система визуализации алгоритмов — начинаем «в алгоритмы» 2023-02-20 01-24-46 image0.png

и поиграйте с ними и их визуализацией живьем, для полного понимания.

  • Lab17 — как регистрироваться и присоединится к вашему проекту.
  • Запускаем VS Code Server в вашем проекте папке «algo-visual».
    • Теоретически, может сработать ссылка, но может нет[1], тогда смотрите видео как.
    • Открываем Python-файл и PNG-картинку визуализации в соседних вкладках VS Code, смотрим видео с объяснениями, играем, понимаем.
    • Не обязательно все смотреть, можно только непонятное, ролики минимальны 5-10 минут.

Немного теории по жадным алгоритмам, наши темы:

И начинаем процесс, см. ↓↓↓↓


2021-10-15 Practical Block 2021-11-03 14-27-56 image0.png

Концептуально:

2021-10-15 Practical Block 2021-11-03 15-02-30 image0.png

2021-10-15 Practical Block 2021-11-03 14-24-09 image0.png

(Их там 175)

    • Не нужно брать десятки задач на себя сразу, и освобождайте то, что не получается.
  • Решенное
    • Ну смотрите, как оформлено в прошлые годы
    • Решение на подстранице вашей личной страницы
      • Вики-ссылка на задачу
      • Python-код в «<source lang="python"></source>»
      • Метка «{{checkme}}», когда решите.
2021-10-15 Practical Block 2021-11-03 14-22-47 image0.png

(Их там 81)


  • Как легче решать Python
    • Загрузка данных
    • Выбирайте более свежий CPython или PyPy.

Давайте каждый попробует за неделю сделать хотя бы одну задачу на жадные алгоритмы!

  1. На lab17 новая версия, незапатченная, работаю над.

2023-02-09 Вводное знакомство

Знаете ли вы Python?

  1. Да
  2. Нет

Вы должны войти в систему, чтобы участвовать в этом голосовании.

Проверим?

Знаете ли вы Jupyter-ноутбуки?

  1. Да
  2. Нет

Вы должны войти в систему, чтобы участвовать в этом голосовании.

Знаете ли вы теорию сложности с вероятностными классами (RP-BPP…)?

  1. Да
  2. Нет

Вы должны войти в систему, чтобы участвовать в этом голосовании.

Проверим?

Решали ли вы задачи на Leetcode/Codechef/Spoj… ?

  1. Да
  2. Нет

Вы должны войти в систему, чтобы участвовать в этом голосовании.

  • Если нет, ничего страшного разберемся в этом курсе.

Хорошие практики компактных Pyomo-формулировок на примере решения «Производство подразделяемых задач»

2022-12-19 Разбор задачи «Хранилище артефактов»

2022-12-09 Feedback

Course-2022-balls.drawio.svg

2022-12-09 Feedback 2022-12-09 16-58-43 image0.png


2022-12-06 «Воспроизведение статей» — на отл.

Для тех, кому не хватило баллов, обязательная программа (алгоритмические задачи и бизнес-задачи) выполнена, и готовы идти на «отлично».

Концептуально:

  • Это на «отл»
  • Win-Win!
  • Подготовка к защите дипломов-курсовых-кандидатских — моделирование диплома-научной работы и ее защиты.
  • Анализ научной статьи про алгоритмы, с переложением ключевой части в Jupyter-ноутбук.
    • Полностью «переписывать статью не надо» — не надо переводить-копировать все содержание.
      • Доказательства не нужны.
    • Разобраться в введении
    • Моделировать постановку задачи (обычно это ЦЛП)
      • Возможно придумать тестовые данные, если их там нет или не прилагались к статье.
    • Воспроизвести максимально декомпозировав, основной алгоритм — попробовать смоделировать и воспроизвести алгоритм для решения.
    • Некоторые примеры работ в папке articles2jupyter-examples
    • глобальная проблема воспроизводимости + https://paperswithcode.com/ → мы помогаем решать.
    • Если что не получается — пингуйте.
    • Запишите к ним видеоролик, как в Blog:Advanced Algorithms/2022-12-01 Кто решил бизнес-задачи, запишите по ним видеоролики
    • Научитесь пользоваться OBS — (см. также [1]), попробуйте использовать экранное рисование ([2]) и сделать это живым и доступным.
    • Запишите видео-презентацию и забросьте мне (unlisted youtube, файлохранилища…)


  • Если предлагаемые статьи не понравились, а есть что-то про алгоритмы по теме вашей работы-диплома → можете работать над этим.
    • Может прямо это и будет драфтом дипломной работы
    • Презентацию можно сделать прямо из Jupyter-ноутбука, см RISE.
  • Идем на Lab
  • Оформляем свои ноутбуки в папке «advalg-2022-homeworks»
  • Учимся на готовых решениях коллег в соседних папках и решениях прошлых лет → articles2jupyter-examples

Разбор оптимизационной задачи «Группировка людей»

Несколько сумбурный разбор этой задачи сходу (но может это и хорошо, ошибка и поиск ошибок — полезно показать).

Студенту — не забыть доделать визуализацию результатата покрасивей (граф, кластеры, связи там). Например, как-то так → [1], [2]


Хорошие практики компактных Pyomo-формулировок на примере решения «Задачи о станках»

  • Старайтесь делать компактные и читаемые Pyomo-формулировки
    • тогда даже не понадобится куча плохочитаемых латех-пояснений.
  • Посмотрите — как индексировать переменные и ограничения, как использовать слайсы в суммах, поменьше лишнего кода (особенно всяких скобок).
  • Задача Optprob/Покупка станков

Задача о двух кучах камней и примеры использования различных ЦЛП-солверов

«Задача о двух кучах камней и примеры использования различных ЦЛП-солверов»

  • компактная задача и постановка, однако на которой зафейлился CBC — наш солвер «по умолчанию», и возник повод попробовать другие ЦЛП-солверы, и повод пошевелить постановку.

2022-12-02 Feeback

2022-12-01 Кто решил бизнес-задачи, запишите по ним видеоролики

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


Ох, понял, что никто не пошел смотреть ссылки, поэтому полезное тут повторю рядом

  • Не экономьте битрейт при записи OBS — ставьте при записи 3 Mbit, потом видеохостинги сами ужмут. Или перепакуете. Главное, не потратить время, получив замыленный и нечитаемый текст юпитер-ноутбуков, очень обидно. Почти как не записать звук.
  • Сначала запишите минутку видео со звуком и послушайте — например, выяснится, что звука вообще нет, или он ужасный (что-то с уровнем например — можно поиграть настройками OBS), а то и вовсе надо сменить микрофон. Для общажных условий, любой микрофон прищепка (стоит копейки, пригодится вам обязательно — сейчас все айти удаленное, непрерывные созвоны — и возможно вас еле терпят и ненавидят за бубнящий микрофон, но почему-то не говорят) может оказаться лучше обычного встроенного в ноутбук микрофона, который может поймать электрошумы из собственной схемы, эхо плохомеблированной комнаты общежития, и т.п.
2022-12-01 Кто решил бизнес-задачи, запишите по ним видеоролики 2022-12-23 03-08-31 image0.png
  • Сделайте полноэкранный режим броузера — больше места для полезной информации.
  • Лучше в discopal-lab понажимать на кнопочку с плюсиком → это лучше, чем просто увеличивать шрифты во всем броузере, хотя и можно и так.
    • Особенно это важно, когда у вас слабое разрешение — 720 например.
  • Полезно сделать курсор большим — в виндах, KDE и GNOME это настраивается по разному, но настраивается.

Потом можно либо мне файл прислать, либо сами на любой видеохостинг (ну хоть на ютуб в unlisted mode) можете загрузить — подошью ваше обьяснение, и это будет работать как обучающий материал для ваших коллег! Ну или поместите «На проверку» решение, написав, что дописали ролик. Просто если вы это сделаете «тихо», где-то добавив ссылку в ноутбук, я это просто не замечу....


2022-11-27 Разбор задачи «Капитальные инвестиции» и решения студента

Задача Optprob/Капитальные инвестиции

Ключевой вывод:

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


2022-11-03 Feedback

2022-11-03 Feedback 2022-11-18 12-02-47 image0.png

Переходим к «Курс лекций «Эффективные алгоритмы»#Блок 2» (уже несколько недель его делают те, кто приходил на созвоны, несколько задержался придумывая задачи).

2022-10-14 Feedback

  • Не забывайте добавлять ссылки на задачи → [1], [2] … теряю время.
  • «Насыпано» несколько сотен задач из литкода (чтобы полегче), по темам, где стало маловато задач
  • возможно с «ошибками» классификации,
  • возможно слабенькие («сложение двух целых»)
  • но это неважно.
  • Многие пришли к финишу →
2022-10-14 Feedback 2022-10-14 17-28-05 image0.png


2022-10-07 Feedback

  • Решаем именно на Python!
  • Оформляем именно как подстраницу → [4], [5]
  • Участник:Vshokorov/Codechef/QRYLAND — если никак не решается, делайте генератор тестовых данных (но отдельно, в файл!).
  • A_index
  • Надо насыпать новых. Обещаю много легких, из литкода.
  • Поздравляем первых закрывших блок.
  • Втягивайтесь! Ибо второй блок придется идти без вас!

2022-09-30 Feeback


  • Насчет ресерч части — если у вас есть что-то, что хотите потренировать срочно, можно начать с этого.

2022-09-30 Feeback 2022-09-30 13-02-33 image0.png