Открытый доступ Открытый доступ  Доступ закрыт Доступ предоставлен  Доступ закрыт Только для подписчиков

№ 1 (2024)

Обложка

Весь выпуск

Открытый доступ Открытый доступ
Доступ закрыт Доступ предоставлен
Доступ закрыт Только для подписчиков

ТЕОРИЯ ПРОГРАММИРОВАНИЯ: ФОРМАЛЬНЫЕ МОДЕЛИ И СЕМАНТИКА

Нечеткая мера на р-адических шарах, заданных на ограниченном числовом множестве

Бочарников В.П., Свешников С.В.

Аннотация

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

Программирование. 2024;(1):3-14
pages 3-14 views

ЯЗЫКИ, КОМПИЛЯТОРЫ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ

Применение библиотеки функционального программирования для распараллеливания вычислений на CUDA

Краснов М.М., Феодоритова О.Б.

Аннотация

Современные графические ускорители (GPU) позволяют существенно ускорить выполнение численных задач. Однако перенос программ на графические ускорители является непростой задачей, иногда требующей практически полного их переписывания. Графические ускорители CUDA, благодаря разработанной компанией NVIDIA технологии, позволяют иметь единый исходный код как для обычных процессоров (CPU), так и для CUDA. Однако распараллеливание на общей памяти все равно делается по-разному и его нужно указывать явно. Применение разработанной авторами библиотеки функционального программирования позволяет скрыть использование того или иного механизма распараллеливания на общей памяти внутри библиотеки и сделать пользовательский исходный код полностью независимым от используемого вычислительного устройства (CPU или CUDA). В настоящей статье показывается, как это можно сделать.

Программирование. 2024;(1):15-29
pages 15-29 views

ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ ПРОГРАММИРОВАНИЯ

О линейных клеточных автоматах

Куликов В.Р., Кытманов А.А., Порошин А.О., Тимофеев И.В., Федченко Д.П.

Аннотация

В работе рассматриваются вольфрамовские клеточные автоматы и демонстрируется их работа на примере задачи моделирования транспортного потока. Для класса одномерных элементарных клеточных автоматов на языке операторов Жегалкина вводится понятие линейности. Приводится алгоритм нахождения линейных операторов Жегалкина с мультипликаторами трех переменных. Алгоритм программно реализован на языке Python.

Программирование. 2024;(1):30-39
pages 30-39 views

АНАЛИЗ ДАННЫХ

Алгоритм и программная реализация автоматического расчета длин и площадей трещин на бортах и отвалах угольных разрезов

Попов С.Е., Потапов В.П., Замараев Р.Ю.

Аннотация

В работе представлен алгоритм и описание его программной реализации для обнаружения линеаментов (трещин) на изображениях аэрофотосъемки угольных разрезов. В основе предложенного подхода лежит аппарат сверточных нейронных сетей для семантической классификации бинаризованных изображений объектов, а также теория графов для определения геометрического расположения объектов с последующим вычислением их длин и площадей. В качестве исходных данных использовались трехканальные RGB-изображения аэрофотосъемки высокого разрешения (пиксел 10 × 10 см). Модель программного модуля логически разделена на три уровня: предобработка, детектирование и постобработка. Первый уровень включает в себя предобработку входных данных для формирования обучающей выборки на базе последовательных трансформаций RGB-изображения в бинарное с применением библиотеки OpenCV. Второй уровень информационной модели представлен нейронной сетью типа U-Net, включающей блоки сверточной (Encoder) и разверточной частей (Decoder). На данном уровне реализовано автоматическое детектирование объектов. Третий уровень модели отвечает за расчет площадей и длин. На вход ему передается результат работы сверточной нейронной сети. Площадь трещин вычисляется путем суммирования общего числа точек с умножением на размер пиксела. Длина рассчитывается путем линеаризации площадного объекта в сегментированный объект с узловыми пикселами и последующим расчетом длин между ними с учетом разрешения исходного изображения. Программный модуль может работать с фрагментами исходного изображения путем их объединения. Модуль реализован на языке программирования Python. Код доступен по адресу (https://gitlab.ict.sbras.ru/popov/lineaments/-/tree/master/lineaments-cnn).

Программирование. 2024;(1):40-52
pages 40-52 views

ПРОГРАММНАЯ ИНЖЕНЕРИЯ, ТЕСТИРОВАНИЕ И ВЕРИФИКАЦИЯ ПРОГРАММ

Библиотека KIAM Astrodynamics Toolbox для проектирования орбитального движения космических аппаратов

Широбоков М.Г., Трофимов С.П.

Аннотация

Представлен обзор новой программной библиотеки для проектирования и моделирования орбитального движения космического аппарата KIAM Astrodynamics Toolbox. Библиотека создана в Институте прикладной математики им. М.В. Келдыша РАН на языках Fortran и Python и, таким образом, сочетает в себе скорость и гибкость. Библиотека будет полезна специалистам в области механики космического полета, а также обучающимся по соответствующим программам подготовки.

Программирование. 2024;(1):53-65
pages 53-65 views

Математическое моделирование с помощью программных комплексов NUT3D, BIC3D, ЭГАК и МИМОЗА турбулентного перемешивания в газовых системах с контактной границей в виде шеврона

Брагин М.Д., Змитренко Н.В., Змушко В.В., Кучугов П.А., Левкина Е.В., Анисифоров К.В., Невмержицкий Н.В., Разин А.Н., Сеньковский Е.Д., Стаценко В.П., Тишкин В.Ф., Третьяченко Ю.В., Янилкин Ю.В.

Аннотация

В работе представлены расчетные и экспериментальные исследования эволюции турбулентного перемешивания в трехслойных газовых системах при развитии гидродинамических неустойчивостей Рихтмайера-Мешкова и Кельвина-Гельмгольца под действием ударных волн. Одна из контактных границ газов была плоской, вторая – с изломом в виде шеврона. Численные расчеты выполнены как без начальных возмущений контактных границ веществ, так и в присутствии возмущений. Показано, что шероховатость контактной границы существенно влияет на ширину зоны перемешивания.

Программирование. 2024;(1):66-87
pages 66-87 views

ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

Описание семантики языка Paralocks в TLA+

Тимаков А.А.

Аннотация

Одним из основных аспектов реализации контроля информационных потоков в программном обеспечении является язык описания политик безопасности или меток. Важно, чтобы такой язык позволял формировать политики безопасности элементов среды вычислений на основе правил управления доступом системного уровня. Соответственно язык должен быть достаточно гибким, поскольку на системном уровне могут использоваться разные механизмы: ролевое, мандатное управление доступом и др. Кроме того, в приложении могут действовать некоторые дополнительные ограничения. Наконец, желательно, чтобы язык позволял естественным образом учитывать возможность деклассификации данных (контролируемого раскрытия) в процессе вычислений. Одним из таких языков является Paralocks. Работа посвящена реализации семантики несколько упрощенной версии этого языка с использованием TLA+. Paralocks является языковой частью разработанной с участием автора платформы анализа информационных потоков в хранимых программных блоках баз данных PLIF. Приводятся доказательства свойств заданного отношения частичного порядка и решетки, построенной на основе множества всех возможных политик безопасности.

Программирование. 2024;(1):88-99
pages 88-99 views

КОМПЬЮТЕРНАЯ ГРАФИКА И ВИЗУАЛИЗАЦИЯ

Интерактивное вычисление преломления света и каустик с применением графического процессора

Вяткин С.И., Долговесов Б.С.

Аннотация

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

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

В результате с использованием предлагаемого метода можно создавать правдоподобные приближения сложных явлений, таких как преломления и каустики. Показано влияние преломлений на тень. Демонстрируются сложные световые узоры из-за изогнутой геометрии объектов. Результаты визуализации показывают важность преломления для внешнего вида прозрачных объектов. Например, искажения, вызванные преломлением, и преломление на границе между средами. Разница в показателях преломления между отдельными средами вызывает сложное взаимодействие между светлыми и теневыми областями. Показано, как преломление и каустика улучшают визуализацию функционально заданных объектов, предоставляя дополнительную информацию о форме и местоположении.

Программирование. 2024;(1):100-112
pages 100-112 views

Данный сайт использует cookie-файлы

Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта.

О куки-файлах