Разработки СО РАН - каталоги программ и БД

Поиск по каталогам:

2015-07-09

Назначение - прогнозирование финансовых потоков
Область применения - валютные и финансовые рынки
Используемый алгоритм - алгоритм Бокса-Дженкинса с 14 параметрами. Нахождение параметров модели было сведено к решению двух взаимосвязанных задач квадратичного программирования. По разработанному алгоритму было создано программное обеспечение в среде MS Excel, обеспечивающее нахождения прогнозного значения отношения цен бивалютной пары евро-канадский доллар по 42 входным начальным данным.

Согласно теории Бокса-Дженкинса, прогнозное значение x­t  бивалютной пары в момент времени t определяется рекуррентным выражением:

x= a1xt-1+...+ apxt-p+b1et-1+...bqet-q                                          (1)

В выражении (1) приняты следующие обозначения:

  • p, q – натуральные числа – число точек, участвующих в прогнозе;
  • xt-p,...,xt-1 – последовательность значений в моменты времени  с номерами t-p,..., t-1 соответственно;
  • et-q,...,et-1 – случайные величины, имеющие нормальное распределение с нулевым математическим ожиданием и среднеквадратичным отклонением d;
  • ai, bj – постоянные коэффициенты.

Для отыскания параметров ai, bj обычно используют метод перебора, суть которого заключается в «подгонке» параметров так, чтобы точки, получаемые из рекуррентного выражения (1), совпадали (или хотя бы были очень близки) с фактическими значениями. Данная методика дает хорошие результаты лишь для небольшого числа параметров (не более 3).

Научной новизной настоящего исследования является организация поиска параметров ai , bj посредством решения задачи квадратичного программирования.

Для простоты изложения далее считается, что p=q и число значений n временного ряда кратно p. Предположение n=kp (где k=1,2,…) не является критичным, т.к. его выполнение всегда можно обеспечить. Противоположный случай  рассматривается аналогично, но получаемые выкладки будут более громоздкими и затруднят понимание идеи излагаемого метода.

Параметры a1, a2, …, ap трендовой составляющей определяются на основании выражения:

                                xt  = a1xt-1+...+apxt-p                                                                          (2)

Уравнению (2) можно сопоставить характеристическое уравнение

                                                         f(z)=1-a1z-...-apzp=0.                                  (3)

В дальнейшем будут рассматриваться только стационарные процессы. Необходимым и достаточным условием стационарности процесса (2) является нахождение всех корней характеристического уравнения (3) вне единичного круга. Из этого условия следуют два неравенства

f(-1)f(1)>0,|ap|<1         (4)

Параметры a1, a2, …, ap, кроме условий (4), должны достаточно точно аппроксимировать фактические значения              Таким образом, поиск коэффициентов a1, a2, …, ap трендовой части рекуррентного выражения (1) сведён к задаче квадратичного программирования с ограничениями (4).

Аналогичным образом можно определить параметры b1, b2, …, bp. Введя обозначение et=xt-a1xt-1-apxt-p, рекуррентное выражение (1) можно представить в виде:

                                                          et.=b1xt-1+...+bqxt-q                                                (5)

Предполагая стационарность процесса (5) для поиска параметров b1, b2, …, bp,  получается аналогичная задача квадратичного программирования.

 Функциональные возможности - из таблицы валютных котировок в разработанное программное средство вводятся значения курса валют. Количество данных должно быть кратно 7 и не более 42. Проведя тестирование программного средства на большом количестве примеров, выяснилось, что кратность 7 вводимых данных обеспечивает достатчно качественный прогноз.

Инструментальные средства создания - табличный процессор MS Excel

2015-07-02

Назначение: Расшифровка интерференционных картин со случайными фазовыми сдвигами.

Область применения: Цифровая интерферометрия, оптическая физика.

Используемый алгоритм:  Алгоритм расшифровки интерференционных картин со случайными фазовыми сдвигами [1]

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

Сущность алгоритма заключается в преобразовании траектории интерференционных сигналов (интенсивностей) со случайными фазовыми сдвигами к траектории сигналов, чьи фазовые сдвиги известны точно. Так как в алгоритме отсутствуют итерационные процессы, реализация алгоритма на CUDA отличается своей прямолинейностью и эффективностью.

[1] В.И. Гужов, С.П. Ильиных, Д.С. Хайдуков. Алгоритм расшифровки интерференционных картин со случайными фазовыми сдвигами / Сборник научных трудов НГТУ, 2014

Функциональные возможности - восстановление фазы по трём интерференционным картинам со случайными фазовыми сдвигами.

Особенности программы:

  • Одновременно можно использовать только три интерференционные картины.
  • Формат входных файлов - bmp(24 бит).
  • Формат выходных файлов: bmp(24 бит), текстовый файл.
  • Минимальный размер изображений 16x16 пикселей.
  • Максимальный размер изображений 4096x4096 пикселей.

Инструментальные средства создания - Microsoft Visual Studio 2012, С++, NVIDIA CUDA 5.5

Работа с программой - в приложенном архиве располагается программа для OC Windows в виде исполняемого файла (папка redist) и в виде исходного кода (папка src). Для запуска программы необходимо запустить файл Phazes_on_CUDA.exe. В папке redist также можно найти руководство по работе с программой (Руководство.txt).

2015-06-26

Назначение: Программа предназначена для определения количества упорядоченных кластеров, генерируемых случайным образом в 3D-пространстве.

Область применения: Программа может быть использована в  области физики и материаловедения.

Используемый алгоритм:   Реализованный в программе алгоритм заключается в подсчете кластеров, сгенерированных случайным образом. Кластеры реализованы в виде трехмерных цепочек шаров.

Алгоритм разработан автором  и заключается в следующем:

1. В слое сгенерированных шаров выбирается первая цепочка и в ней производится поиск отдельных кластеров. Каждому новому обнаруженному кластеру присваивается свой порядковый номер от 1до N. Данные о нахождении какого-либо шара в кластере заносятся в массив.

2. С учетом первой (базисной) цепочки производится поиск в следующих цепочках. Если обнаруживается связь с уже обнаруженными кластерами,  шару присваивается порядковый номер соответсвующего кластера, иначе шар  является началом нового кластера и ему присваивается следующий порядковый номер.

3. Так как сгенерированные объекты могут представлять собой сложную структуру, поиск и проверка проводятся ещё несколько раз  в зависимости от размеров структуры.

Функциональные возможности: С помощью данной программы можно определять количество упорядоченных кластеров, осуществлять обзор в режиме 3D, получать данные о свойствах генерируемых кластеров. 

Инструментальные средства создания: Среда программирования Delphi 7.0 Lite

2015-06-16

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

Область применения  Управление сложными системами: опытное производство, предприятия единичного производства, проектно-конструкторские организации, ремонтное производство, календарное планирование проектов.

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

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

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

В программном комплексе реализованы алгоритмы построения целочисленных линейных моделей, приведенные в статьях[1], [2].

[1] Ляхов О.А. Целочисленная линейная модель задачи календарного планирования проектов  с перерывами работ. Азиатская школа-семинар  "Проблемы оптимизации сложных систем ",  республика Казахстан, Усть-Каменогорск,  2010 г.;  

[2] Ляхов О.А. Целочисленные линейные модели сетевого планирования и управления. Азиатская школа-семинар "Проблемы оптимизации сложных систем", Новосибирск, 2011. 

Функциональные возможности   Формат исходных данных соответствует правилам формирования исходных данных в известной библиотеке тестовых примеров PSPLIB. Предусмотрены варианты моделей с возможностью  перерывов выполнения операций в целочисленные моменты времени и с непрерывным выполнением работ. На входе осуществляется синтаксический контроль исходных данных. Выходные данные формируются в MPS-формате  в виде, пригодном для применения известных пакетов программ целочисленного программирования. Комплекс программ позволяет строить целочисленные модели для всех примеров  из библиотеки PSPLIB (от 30 до 120 операций в сетевой модели).

Инструментальные средства создания   Операционная система  WINDOWS, язык FORTRAN.

2015-06-08

Назначение - контроль построения обратной матрицы (выбор структуры элемента, последовательное вычисление алгебраических дополнений и определителя исходной матрицы, арифметические преобразования полученных элементов обратной матрицы). 

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

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

1. Попов А.А., Бакланова Н.Б., Таныгина Т.А., Яньшина А.А. Интерактивные иллюстрации для задач линейной алгебры. "Применение информационно-коммуникационных в образовании(ИТО - Марий Эл - 2014):  Материалы XI Всесоюзной научно-практической конференции. - С.131-138. 

Функциональные возможности - программа может генерировать различные квадратные матрицы 2, 3 и 4 порядка, образовывать для них эталонные решения и подготавливать режим ввода символов с контролем каждого введенного символа. Ориентировочное время решения задачи составляет 1, 4 и 36 минут (соответственно для матриц 2, 3 и 4 порядка). Система комментариев в программе исключает неоднозначность при выполнении текущих действий.   

Инструментальные средства создания - программа написана на языке Java с использованием среды Eclipse.

Во вложении запакованный файл ObrMatrTren.rar содержит 3 файла: ObrMatrTren.bat запускает программу ObrMatrTren.class на выполнение. При завершении программы ObrMatrTren.class автоматически используется класс WindowDestroyer.class для разрушения окна. В текстовом файле Trenazher.doc собрана текстовая и графическая информации о решении одного из примеров.