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

дарственных образовательных стандартов матери-алы Международной научно-практической конференции. -2014. - С. 215-220.

2 Астапов, В. А. Изучение особенностей использования СУБД firebird в операционной систе-ме linux ubuntu для автоматизации расчета рационов кормления сельскохозяйственных животных/ В. А. Астапов, Д. Е. Белов// Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. -2014. - Т. 2. - № 7. - С. 463-468.

3 Белов, Д. Е. Разработка модуля генерации отчетности, позволяющего экспортировать дан-ные в форматы pdf, xls, doc / Д. Е. Белов, А. Ф. Шалин, И. М. Кузнецов, М. В. Макеев // Сбор-ник научных трудов Ставропольского научно-исследовательского института животновод-ства и кормопроизводства. - 2013. - Т. 2. - № 6 (1) . - С. 315-325.

4 Жмайлов, Б. Б. Преимущества и недостатки разработки Java-программ без использования IDE-средств. /Б.Б. Жмайлов // Журнал «Вестник компьютерных и информационных техно-логий» № 6, 2006 г

5 Калашников, А. П. Нормы и рационы кормления сельскохозяйственных животных. Справоч-ное пособие. / А. П. Калашников, Н. И. Клейменов и др. - М.: Агропромиздат, 1985,

6 Калашников, А. П. Нормы и рационы кормления сельскохозяйственных животных. 3-е изд. перераб. и доп. Справочник. /А.П. Калашников, В. И. Фисинин и др. - М.: Россельхозакаде-мия, 2003. - 456 с.

7 Куприянов, С. В. Использование премикса и ферментного препарата в кормлении молодня-ка мясных свиней /С.В. Куприянов, Б. Т. Абилов //Зоотехния. - 2007. - № 11. - С. 15-17

8 Семенов, В. В. Способ улучшения конверсии корма /В.В. Семенов, С. И. Кононенко //Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2012. - Вып.5. - С. 114-117.

9 Шалин, А. Ф. Перспективы разработки модуля зоотехнического и ветеринарного учета для информационно-вычислительной системы мониторинга овцеводства и козоводства/ А. Ф. Шалин, В. А. Астапов, А. Е. Мищенко, С. М. Шишкин, А. Т. Грушко// Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. - 2015. - Т. 1. - № 8. - С. 649-652.

10 Шалин, А. Ф. Применение различных типов rfid-меток для идентификации определенных видов животных/ А. Ф. Шалин, А. Е. Мищенко, В. А. Астапов, А. Т. Грушко// Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. 2015. - Т. 1. - № 8. - С. 645-649.

УДК 004.3

ИССЛЕДОВАНИЕ И ИНТЕГРАЦИЯ БИБЛИОТЕК, РЕАЛИЗУЮЩИХ МАТЕМАТИЧЕСКИЕ МЕТОДЫ ОПТИМИЗАЦИИ

Д.Е. Белов, А.Ф. Шалин, А. Е. Мищенко, А.Т. Грушко, П.И. Кучеров Федеральное государственное бюджетное научное учреждение «Всероссийский научно-исследовательский институт овцеводства и козоводства» Поддубная Т.С., Иванников А. А.

UDC 004.3

RESEARCH AND INTEGRATION OF LIBRARIES THAT IMPLEMENT THE MATHEMATICAL METHODS OF OPTIMIZATION

Belov D.E., Shalin A.F., Mischenko A.E., Grushko A.T., Kucherov PI. Federal State Budgetary Scientific Institution "All-Russian Research Institute for Sheep and Goat Breeding" Poddubnaya T.S., Ivannikov A.A. Stavropol branch of Federal State Bud-

Ставропольский филиал федераль- getary Educational Institution of Higher

Education "Moscow University"

ного государственного бюджетного образовательного учреждения высшего образования «Московский педагогический государственный университет»

a.shalin@cloudinfosys.ru В данной статье приведены резуль- This article таты исследования программных библиотек, распространяющихся под статусом свободной лицензии, реализующих алгоритмы линейного программирования с описанием проблем, возникших в процессах интеграции, и использованием данных модулей в ходе реализации проектов.

Pedagogical State

presents the results of research of software libraries distributed under a free license status, implementing linear programming algorithms with a description of the problems encountered in the process of integration, and with the use of these modules in the course of project implementation.

Ключевые слова: базы данных, ма- Key words: database, mathematical тематические методы, оптимизация, methods of optimization, simplex method, симплексный метод, java, apache java, apache

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

Одной из исследуемых библиотек стали пакеты вычислительной инфраструктуры для исследования операций (Computational Infrastructure for Operations Research) (далее - COIN-OR). Этот пакет программ является достаточно мощным инструментом и включает алгоритмы решения линейных уровней. Для реализации линейного программирования в этом пакете используется библиотека Clp (Coin-or linear programming), которая выпускается под лицензией Eclipse Public License 1.0. [8, 2]. Однако в процессе исследований было установлено, что Clp написана на языке С++. При этом для взаимодействия с программами, написанными на языке Java, необходимо использовать интерфейс, представленный абстрактным базовым классом Ipopt, который обладает основными методами. Следует учитывать, что такой класс может потребовать доработки под какие-либо конкретные условия. Кроме того, интеграция библиотеки Clp усложняется тем, что её необходимо использовать в виде динамической библиотеки, соответственно отдельно компилировать и проверять работоспособность в различных дистрибутивах Linux, следить за совместимостью версий и т.п. [10, 1].

Другим мощным инструментом решения задач линейного программирования является Lp_solve, данная библиотека распространяется под лицензией GNU Lesser General Public License, что дает возможность её использования в коммерческих проектах, без необходимости открытия исходного кода, позволяет решать задачи с помощью симплекс-метода, метода ветвей и границ и др. Проблемы, возникающие при использовании Lp_solve, аналогичны тем, которые возникают при использовании COIN-OR. Lp_solve написана на ANSI C, разработчики в официальной документации указывают, что данная библиотека может быть собрана на различных платформах, таких как Linux и Windows [9, 3]. Кроме того, в официальной документации отмечается, что методы Lp_solve могут достаточно легко вызываться из языков программирования, таких как C, C ++, C # и VB. Однако авторы указывают на то, что нет простых и прямых способов использования в программах, написанных на языке Java. Для реализации взаимодействия с программами на Java предлагается использовать так называемую обертку - библиотеку, написанную на C ++, которая предоставляет интерфейс (JNI -Java Native Interface) для взаимодействия. Клиентские программы на Java непосредственно не взаимодействуют с библиотекой-оберткой. Для обеспечения стабильности таких приложений необходимо скомпилировать библиотеки-обертки для каждой целевой платформы, проводить постоянный мониторинг соответствия версий постоянно изменяющихся библиотек, что значительно увеличивает временные затраты на процесс разработки и поддержки прикладного программного обеспечения и делает его нестабильным [7, 11].

Следующей исследуемой библиотекой стала JAMA (numerical linear algebra library), основным преимуществом данной библиотеки над описанными выше является то, что она написана на языке Java, соответственно обладает более широкими возможностями по интеграции с прикладным программным обеспечением. JAMA распространяется

под лицензией Public domain software, что дает возможность изменять, продавать и использовать её в прикладном программном обеспечении.

Также следует отметить возможность удобной интеграции с проектом путем подключения зависимостей через Maven. Для этого достаточно в файл pom.xml добавить пять строк [6]. Maven автоматически скачает библиотеку и включит её в локальный репози-торий, а при компиляции проекта она также автоматически будет включена в соответствующий дистрибутив.

1. <dependency>

2. <groupId>de.mukis</groupId>

3. <artifactId>de.mukis.jama</artifactId>

4. <version>2.0.0.M1</version>

5. </dependency>

Пример создания матрицы с помощью библиотеки JAMA:

1. double[][] array = {{1.,2.,3},{4.,5.,6.},{7.,8.,10.}};

2. Matrix A = new Matrix(array);

3. Matrix b = Matrix.random(3,1);

4. Matrix x = A.solve(b);

5. Matrix Residual = A.times(x).minus(b);

6. double rnorm = Residual.normInf();

Однако при более глубоком исследовании данной библиотеки было

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

- UJMP - Universal Java Matrix Package (https://sourceforge.net/projects/ujmp/);

- jMatrices - Java Matrix Library (http://jmatrices.sourceforge.net/);

- EJML - Efficient-java-matrix-library (http://ejml.org/);

- jblas (http://jblas.org/).

По мере проведения исследования складывалось впечатление, что Java недостаточно приспособлена для сложных математических вычислений. Однако решение было найдено с помощью библиотеки Apache Commons Mathematics Library (далее -Commons Math).

Использование данной библиотеки показало, что она обладает рядом преимуществ, которые позволяют достаточно легко интегрировать её в реализуемые проекты. Двумя основными преимуществами над библиотеками, описанными выше, является то, что, во-первых, в Commons Math есть реализованные математические методы, как в Clp и Lp_solve. Однако у этих библиотек есть ряд проблем, связанных с интеграцией, так как они написаны на языке программирования С. Вместе с тем Commons Math включает преимущества библиотек, написанных на Java, что предоставляет широкие возможности по интеграции с проектом.

Список литературы:

1 Белов, Д. Е. Практическое применение облачных и open source-технологий для снижения совокупной стоимости владения программным обеспечением в агропромышленном комплексе/ Д. Е. Белов, А. Ф. Шалин// Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. - 2015. - Т. 1. -№ 8. - С. 577-582.

2 Белов, Д. Е. Сопоставление реляционной модели данных и принципов объектно-ориентированного программирования для разработки информационно-вычислительных систем / Д. Е. Белов, А. Ф. Шалин, В. А. Астапов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. - 2013. - Т. 2. - № 6 (1) . - С. 293-300.

3 Воронкина, И. Н. Интеграция «Open Source» - продуктов с операционной системой, позволяющих достигать эффект кросс-платформенности и кросс-браузерности / И. Н. Воронкина, Д. Е. Белов, А. Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. - 2013. -Т. 2. - № 6 (1) . - С. 300-307.

4 Жмайлов, Б. Б. Преимущества и недостатки разработки Java-программ без использования IDE-средств. /Б.Б.

Жмайлов // Журнал «Вестник компьютерных и информационных технологий» № 6, 2006 г

5 Шалин, А. Ф. Перспективы разработки модуля зоотехнического и ветеринарного учета для информационно-вычислительной системы мониторинга овцеводства и козоводства/ А. Ф. Шалин, В. А. Астапов, А. Е. Мищенко, С. М. Шишкин, А. Т. Грушко// Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. - 2015. - Т. 1. - № 8. - С. 649-652.

6 Шалин, А. Ф. Применение различных типов rfid-меток для идентификации определенных видов животных/ А. Ф. Шалин, А. Е. Мищенко, В. А. Астапов, А. Т. Грушко// Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. 2015. - Т. 1. - № 8. - С. 645-649.

7 Калашников А. П. Нормы и рационы кормления сельскохозяйственных животных. Справочное пособие. / А. П. Калашников, Н. И. Клейменов и др. - М.: Агропромиздат, 1985.

8 Eclipse Foundation // Eclipse Public License - v 1.0: [сайт] / URL: https://www.eclipse.org/legal/epl-v10.html

9 Free Software Foundation // GNU Affero General Public License: [сайт] / URL: https://www.gnu.org/licenses/agpl. html)

10 GNU/Linux Software in the Public Interest, Inc. // Debian: [сайт] / URL: https://www.debian.org/index.ru.html

11 The Apache Software Foundation // The Apache Software Foundation: [сайт] / URL: http://www.apache.org/licenses/ LICENSE-2.0

УДК 004.3

РАЗРАБОТКА И НТЕРФЕЙСА ВЕБ-ПРИЛОЖЕНИЯ ДЛЯ СОСТАВЛЕНИЯ ОПТИМИЗИРОВАННЫХ РАЦИОНОВ КОРМЛЕНИЯ СЕЛЬСКОХОЗЯЙСТВЕННЫХ ЖИВОТНЫХ

UDC 004.3

DEVELOPMENT OF WEB APPLICATION USER INTERFACE FOR OPTIMIZED FEED RATIONS OF FARM ANIMALS

Д.Е. Белов, А.Ф. Шалин, А. Е. Мищенко, А.Т. Грушко, П.И. Кучеров Федеральное государственное бюджетное научное учреждение «Всерос-

Belov D.E., Shalin A.F., Mischenko А.Е., Grushko A.T., Kucherov P.I. Federal State Budgetary Scientific Institution "All-Russian Research Institute for сийский научно-исследовательский Sheep and Goat Breeding" институт овцеводства и козоводства» Voronkina I.N.

И.Н. Воронкина "Stavropol Regional College of Computer

ГБОУ СПО «Ставропольский регио- Engineering and Electronics" нальный колледж вычислительной техники и электроники»

a.shalin@cloudinfosys.ru В статье рассматривается процесс The article deals with the process of

составления рационов с использованием программного обеспечения, разработанного в лаборатории информационных технологий ФГБНУ ВНИИ-ОК. Описывается алгоритм действий

preparation of rations using software developed in the laboratory of information technology of FGBNU VNIIOK. The algorithm of user actions, the implementation of which will allow to carry

пользователя, реализация которого out mathematical calculations to optimize позволит провести математические feed rations of farm animals is described/ вычисления для оптимизации рационов кормления сельскохозяйственных животных.

Ключевые слова: базы данных, математические методы, оптимизация, симплексный метод, java, apache.

Key words: database, mathematical methods optimization, simplex method, java, apache

Основной задачей при разработке интерфейса пользователя было обеспечить возможность составления рациона с помощью следующих подходов: а) ручная корректировка процентного соотношения количества кормов;