2021-12-01 Как делать лучше jupyter по статьям
Материал из DISCOPAL
- Продолжение темы Blog:Advanced Algorithms/2021-11-15_Research_Block
Административное
- Это не просто, «не халявно», но нехорошо ограничивать, попробовать можете все, хотя время мало.
- Регистрироваться можно всем. Даже «уд». Можете попробовать взять что-то легкое (простые темы из книги) и улучить оценку на «хор». Или хотя бы чуть-чуть понадкусывать какую-нибудь из статей.
- https://discopal-lab.0x1.tv/auth/sign-up
- «Registration Token» = KJ7b26Mh314msDZi
- Вроде лучше работают Chrome-based броузеры.
- Можно сразу подключить игровой проект тьюториал и поиграть с ним.
Напомним:
- Много тем вокруг рюкзаков (знакомая тема), или роутинга транспорта (горячая тема вокруг).
- Все как с задачами, см. Blog:Advanced Algorithms/2021-11-15_Research_Block* В целом, если статья сложная и длинная — можете сделать что-то простое — постановка и самый простой алгоритм например. Или постановка в ЦЛП и решение через ortools.
- Ну и самое вкусное — если у вас тема диплома и научной работы как-то близка к алгоритмам — можете делать ее, но лучше — пошлите мне сначала ссылку на вашу статью (ну или статью по максимально близкой тематики) из http://arxiv.org → так можно убить несколько зайцев.
Общие рекомендации
(тут тезисно, в нижележащих видео расписывается).
- Разумное имя для ноутбука
- Точность печати numpy (2) → дает визуализацию печатью
- датаклассы для компактности
- Минимизация кодовых клеток
- Не бойтесь нажимать «CTRL + SHIFT + -» или «CTRL + ; » → деление ячейки. (вообще хоткеи ваши лучшие друзья)
- в коде тоже комментарии
- после каждой кодовой клетки — везде демо, что делает функция, чему равны переменные и т.п. График функции.
- Декомпозируйте «God-классы» → выкидывайте независимые функции, разбивайте на слои (см. хитрость с определением класса в нескольких ячейках)
- Чередование кода и текста
- В текст можно грузить картинки, например вырезки из статьи или иллюстрации-визуализации.
- Смело рвите статью на цитаты — в описания ячеек или комментарии к коду.
- Общие соображения по коду:
- Глобальные переменные — опасно. Или … или ---
- В простых случаях можно и с ними
- Но если делать хоть какие-то эксперименты, модификации → тогда все.
Что тут правильно сделать:
- Визуализация (сходимости например, хотя бы на уровне «качество решения от итерации → про сходимость»)
- Вычисление точного решения для сгенеренного рюкзака, с использованием google ortools. (очень полезный опыт набрасывать ЦЛП, для детских объемов ноутбука он будет решать быстро, зато можно будет сравнивать качество решения)
- Совсем замечательно (не обязательно) → что-то в динамике, какие-нибудь изменяющиеся по времени хитмапы решений.
- Разбор пары ноутбуков — хорошие практики, как делать и как не делать.
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.