В этой статье рассмотрим добавление в программу на Julia пользовательского типа данных и перегрузку стандартных функций для удобной работы с новым типом.
Рубрика «Julia» - 3
Julia: пользовательские типы
2019-08-24 в 21:05, admin, рубрики: Julia, интерфейсы, Программирование, структуры данныхРешаем судоку с помощью Алгоритма X
2019-08-04 в 10:05, admin, рубрики: Julia, алгоритм x, Алгоритмы, задача покрытия, Программирование, судокуВ этой статье рассмотрим "Алгоритм X" Кнута и его применение для решения судоку. Прелесть алгоритма в том, что судоку при этом решается быстро без программирования каких-то продвинутых техник решения.
Сбалансированные двоичные деревья поиска: реализация на Julia
2019-08-01 в 20:14, admin, рубрики: Julia, авл-дерево, Алгоритмы, двоичные деревья поиска
Иллюстрация из работы Г.М. Адельсон-Вельского и Е.М. Ландиса 1962 года
Деревья поиска — это структуры данных для упорядоченного хранения и простого поиска элементов. Широко применяются двоичные деревья поиска, в которых у каждого узла есть только два потомка. В этой статье рассмотрим два метода организации двоичных деревьев поиска: алгоритм Адельсон-Вельского и Ландиса (АВЛ-деревья) и ослабленные АВЛ-деревья (WAVL-деревья).
Luxor
2019-07-15 в 6:07, admin, рубрики: Julia, анимация, векторная графика, визуализация данных, геометрия, графический дизайн, дизайн, матрицы преобразований, Программирование, псевдотрёхмерность, Работа с векторной графикой, яйцо было не только у Колумба
Сегодня мы рассмотрим графический пакет для языка Julia, который называется Luxor. Это один из тех инструментов, которые превращают процесс создания векторных изображений в решение логических задачек с сопутствующей бурей эмоций.
Осторожно! Под катом 8.5 Мб легковесных картинок и гифок изображающих психоделические яйца и четырехмерные объекты, просмотр которых может вызвать лёгкое помутнение рассудка!
Дифференцируемое программирование
2019-07-10 в 17:28, admin, рубрики: Julia, machine learning, градиентный спуск, дифференцирование, машинное обучение, ненормальное программирование, обучение с подкреплением, Программирование
С четырьмя параметрами я могу задать слона, а с пятью я могу заставить его шевелить хоботом.
– John Von Neumann
Идея «дифференцируемого программирования» очень популярна в мире машинного обучения. Для многих не ясно, отражает ли этот термин реальный сдвиг в том, как исследователи понимают машинное обучение, или это просто (еще один) ребрендинг «глубокого обучения». В этом посте разъясняется, что нового дает дифференцируемое программирование (или ∂P) в таблице машинного обучения.
Самое главное, дифференцируемое программирование — это сдвиг, противоположный направлению глубокого обучения; от все более сильно параметризованных моделей к более простым, которые в большей степени используют структуру проблемы.
Далее мы пролистаем полотно неинтересного текста, захотим узнать, что такое автодифференцирование и даже популяем из катапульты!
Распределенные вычисления в Julia
2019-06-14 в 4:43, admin, рубрики: CUDA, Julia, mpi, opencl, Большие данные, высокая производительность, параллельное программирование, Программирование, распределённые вычисления
Если прошлая статья была скорее для затравки, то теперь пришло время проверить способности Джулии в распараллеливании на своей машине.
Джулия и параллельные вычисления
2019-06-12 в 15:29, admin, рубрики: celeste, Julia, mpi, астрономическая карта, высокая производительность, параллельное программирование, параллельные вычисления, Программирование, уравнение теплопроводности
С момента выхода в августе 2018, язык Julia активно набирает популярность, войдя в топ 10 языков на Github и топ 20 самых популярных профессиональных навыков по версии Upwork. Для начинающих стартуют курсы и выпускаются книги. Julia используется для планирования космических миссий, фармакометрики и климатического моделирования.
Перед тем как приступить к распределенным вычислениям в Julia обратимся к опыту тех, кто уже испробовал данную возможность нового ЯП для прикладных задач — от уравнения диффузии на двух ядрах, до астрономических карт на суперкомпьютере.
Джулия в лабиринте
2019-05-17 в 6:07, admin, рубрики: astar, Julia, алгоритм Прима, Лабиринты, ненормальное программирование, олимпиадные задачи, поиск в глубину, Программирование, Спортивное программирование
Разбирая одну олимпиадную задачу мы отправимся по петляющим коридорам генерации лабиринтов и их прохождения, а также увидим, что на языке Julia простота реализаций алгоритмов граничит с их псевдокодом.
Ускорение запуска Julia при помощи PackageCompiler.jl
2019-05-08 в 18:15, admin, рубрики: ahead-of-time, jit, JuliaЗайдя на официальный сайт языка программирования Julia, можно увидеть утверждение: "Julia is fast!". Однако, новые пользователи на практике сталкиваются с проблемой медленной загрузки модулей, в особенности графических [1,2]. Диалектически, причиной медленного запуска является использование JIT компиляции, использование которой и обеспечивает высокую производительность языка. При желании, с особенностями JIT можно ознакомиться в других статьях. В данной статье пойдёт речь о более практической задаче — о том, как ускорить запуск модулей в Julia при помощи PackageCompiler.jl.
Julia: типы, мультиметоды и арифметика над полиномами
2019-05-07 в 19:17, admin, рубрики: Julia, мультиметоды, полиномиальная интерполяция, ПрограммированиеВ этой публикации речь пойдёт об основной, на мой взгляд, отличительной особенности языка Julia — представлении функций в виде методов с множественной диспетчеризацией. Это позволяет повысить производительность вычислений, не снижая читаемости кода и не портя абстрагируемость, с одной стороны, и позволяет работать с математическими понятиями в более привычной нотации, с другой. Для примера рассмотрен вопрос единообразной (с точки зрения линейных операций) работы с полиномами в представлении списка коэффициентов и с интерполяционными полиномами.
Читать полностью »