PROBLEMS IN PROGRAMMING
Not a member yet
761 research outputs found
Sort by
Алгебраїчне моделювання в системах міжнародної та місцевої обслуговуючої логістики
International and internal service logistics are advancing at a tremendous pace in our modern life, and future forecasts for this area are optimistic. For this reason, we face a task in the control, optimization and safety and security checking of complex logistical systems with many internal agents working in a changing environment. Our paper aims to show how mathematical modeling, especially behavior algebra, can provide an opportunity for predicting the behavior and stability of logistics environments and checking their safety and security properties. The main security properties of complex logistics systems of different capacities and levels are stability of operation, resistance to external threats and detection and elimination of vulnerabilities. During the development of software systems, it is advisable to use a model approach. It involves the creation of models as tools at every stage of software development for the application of verification, testing and validation methods. Algebraic models of logistics systems can be used to analyze the behavior of all agents involved and to prove their ability to fulfill their goals and the ability of the whole system to constantly exist and remain stable. As examples of practical use the application in practice of algebra of behaviors on an example of the operating closed logistic system of a farm is considered.Problems in programming 2020; 4: 88-97Міжнародна та внутрішня обслуговуюча логістика розвиваються неймовірними темпами в сучасному житті, а прогнози розвитку для цієї галузі вкрай оптимістичні. З цих причин ми зіштовхнулись з задачею контролю, оптимізації та безпечної і надійної перевірки комплексних логістичних систем з великою кількістю внутрішніх агентів, які діють у мінливому та нестабільному середовищі. Ця робота має за мету показати як математичне моделювання, зокрема, алгебра поведінок, дає можливість передбачити поведінку та стабільність логістичних середовищ, перевірити їх властивості безпеки та надійність. Основними властивостями безпеки комплексних систем логістики різної складності та рівнів є стабільність функціонування, стійкість до зовнішніх загроз, виявлення та усунення вразливостей. При розробці програмних систем доцільно використовувати модельний підхід. Він передбачає створення моделей як інструментів на кожному етапі розробки програмного забезпечення для застосування методів верифікації, тестування та валідації. Алгебраїчні моделі логістичних систем можуть бути використані для аналізу поведінки всіх залучених агентів і доведення їх здатності виконувати свої цілі та здатності всієї системи постійно існувати та залишатися стабільною. Як приклади практичного використання розглянуто застосування на практиці алгебри поведінок на прикладі діючої закритої логістичної системи фермерського господарства.Problems in programming 2020; 4: 88-97
Розширений аналіз швидкодії програм за допомогою Valgrind
Modern workloads, parallel or sequential, usually suffer from insufficient memory and computing performance. Common trends to improve workload performance include the utilizations of complex functional units or coprocessors, which are able not only to provide accelerated computations but also independently fetch data from memory generating complex address patterns, with or without support of control flow operations. Such coprocessors usually are not adopted by optimizing compilers and should be utilized by special application interfaces by hand. On the other hand, memory bottlenecks may be avoided with proper use of processor prefetch capabilities which load necessary data ahead of actual utilization time, and the prefetch is also adopted only for simple cases making programmers to do it usually by hand. As workloads are fast migrating to embedded applications a problem raises how to utilize all hardware capabilities for speeding up workload at moderate efforts. This requires precise analysis of memory access patterns at program run time and marking hot spots where the vast amount of memory accesses is issued. Precise memory access model can be analyzed via simulators, for example Valgrind, which is capable to run really big workload, for example neural network inference in reasonable time. But simulators and hardware performance analyzers fail to separate the full amount of memory references and cache misses per particular modules as it requires the analysis of program call graph. We are extending Valgrind tool cache simulator, which allows to account memory accesses per software modules and render realistic distribution of hot spot in a program. Additionally the analysis of address sequences in the simulator allows to recover array access patterns and propose effective prefetching schemes. Motivating samples are provided to illustrate the use of Valgrind tool.Prombles in programming 2021; 2: 54-62Сучасні паралельні або послідовні програми-навантаження (workloads) звичайно мають обмеження за швидкодією процесора або запотужністю каналів пам’яті. Також сучасною тенденцією є залучення спеціалізованих сопроцесорів для підвищення швидкодії програм-навантажень, які виконують не тількі обчислення, але й доступ до пам’яті зі складною адресацією. Такі сопроцесори практично неможливо використати за допомогою компілятора, лише ручним кодуванням програми. Обмеження за потужністю каналу пам’яті також може вирішуватися складною системою передвибірки даних з пам’яті у кеш-пам’ять процесора, але компілятор теж може оптимізувати передвибірку лише у простих випадках побудови коду. Оскільки програми-навантаження дуже швидко мігрують у бік вбудованих обчислень, виникає проблема спрощення використання вбудованих сопроцесорів для підвищення швидкодії. Це потребує аналізу послідовностей доступу до пам’яті та визначення вузьких місць у коді програми. Точний аналіз доступу можливий за допомогою симуляторів, наприклад Valgrind, який дозволяє аналізувати великі програми-навантаження, наприклад, вивід у нейромережах і за адекватний час. Наявні симулятори та засоби аналізу навантаження процесора не дозволяють коректно визначати навантаження у прив’язці до програмних компонентів, оскільки це потребує аналізу графу викликів у програмі. Тому ми розширюємо симулятор Valgrind можливостями аналізу прив’язки доступу до пам’яті до конкретних програмних модулів і визначенням уточнених вузьких місць доступу до пам’яті. Додатково аналіз послідовності адрес доступу до пам’яті дозволяє визначати шаблони доступу до масивів і рекомендувати використання певних алгоритмів передвибірки даних до кеш-пам’яті. Додаються ілюстративні приклади використання симулятора Valgrind.Prombles in programming 2021; 2: 53-6
Розробка тезаурусу домену як сукупності концепцій онтології з використанням семантичної подібності та елементів комбінаторної оптимізації
We consider use of ontological background knowledge in intelligent information systems and analyze directions of their reduction in compliance with specifics of particular user task. Such reduction is aimed at simplification of knowledge processing without loss of significant information. We propose methods of generation of task thesauri based on domain ontology that contain such subset of ontological concepts and relations that can be used in task solving. Combinatorial optimization is used for minimization of task thesaurus. In this approach, semantic similarity estimates are used for determination of concept significance for user task. Some practical examples of optimized thesauri application for semantic retrieval and competence analysis demonstrate efficiency of proposed approach.Prombles in programming 2021; 2: 03-15Автори розглядають використання онтологічних фонових знань в інтелектуальних інформаційних системах та аналізують методи їх зменшення відповідно до потреб та особливостей конкретної задачі користувача. Таке зменшення спрямоване на спрощення обробки знань без значних втрат у кількості оброблюваної інформації. Було запропоновано методи генерування тезаурусу задачі на основі онтології домену, що містить підмножину онтологічних понять та відношень, які можуть бути використані для вирішенні задачі. Для мінімізації тезаурусу задачі використано методи комбінаторної оптимізації. Показники оцінки семантичної подібності у цьому підході було використано для визначення значущості концепту для задачі користувача. Ефективність запропонованого підходу було продемонстровано на деяких практичних прикладах оптимізованого застосування тезаурусу для семантичного пошуку та аналізу компетенцій.Prombles in programming 2021; 2: 03-1
Реалізація відображень між дескриптивною логікою та бінарною реляційною моделлю даних на рівні RDF
This paper is dedicated to the data integration problem. In article the task of practical implementation of mappings between description logic and a binary relational data model is discussed. This method was formulated earlier at a theoretical level. A practical technique to test mapping engines using RDF is provided in the current paper. To transform the constructs of the description logic ALC and its main extensions into RDF triplets the OWL 2-to-RDF mappings are used. To convert RDB to RDF graph, the R2R Mapping Language (R2R ML) was chosen. The mappings DL ALC and its main extensions to the RDF triplets are described in the publication. The mapping of the DL axioms into an RDF triplet also is considered in the publication. The main difficulties in describing DL-to-RDF transformations are given in the corresponding section. For each constructor of concepts and roles a corresponding expression in OWL 2 and its mapping into the RDF triplet. A schematic representation of the resulting RDF graph for each mapping is created. The paper also provides an overview of existing methods that relate to the use of RDF when mapping RDB to ontology and vice versa.Prombles in programming 2020; 4: 41-54Ця публікація присвячена проблемі інтеграції даних, а саме – створенню механізму відображень між дескриптивною логікою та бінарною реляційною моделлю даних. Метод створення відображень був запропонований та описаний на теоретичному рівні. З метою його практичної перевірки, у поточній публікації пропонується метод реалізації відображень між дескриптивною логікою та бінарною реляційною моделлю даних за допомогою RDF. У роботі наведено огляд існуючих методів та засобів перетворення реляційних баз даних в онтологію та навпаки за допомогою RDF. Було сформульовано постановку задачі реалізації відображень та розглянуто відображення дескриптивної логіки ALC, її основних розширень, а також аксіоматики у RDF-трійки. У статті відзначено ряд складнощів при відображенні дескриптивної логіки на рівень RDF.Prombles in programming 2020; 4: 41-5
Порівняння ефективності підходів Map-Reduce і акторної моделі при розв’язанні завдань з високою зв'язністю вхідних даних на прикладі задачі оптимізації рою часток
The paper defines the notion of distributed problems with bounded input components. Particle Swarm Optimization problem is shown to be an example of such a class. Such a problem's implementation based on the Map-Reduce model (implemented on the Spark framework) and an implementation based on an actor model with shared memory support (implemented on Strumok DSL) is provided. Both versions' performance assessment is conducted. The hybrid actor model is shown to be an order of magnitude more effective in time and memory efficiency than Map-Reduce implementation. Additional optimization for the hybrid actor model solution is proposed. The prospects of using the hybrid actor model for other similar problems are given. Problems in programming 2021; 1: 49-55Показані приклади класу розподілених паралельних задач зі зв'язаними компонентами вхідних даних в рамках моделі Map-Reduce. Виконано порівняння ефективності подібної задачі на прикладі задачі рою часток в рамках моделі Map-Reduce (на основі фреймворку Spark) і акторної моделі з підтримкою спільної пам'яті (на основі Strumok DSL). Оцінено перспективи використання гібридної акторної моделі для інших подібних задач.Problems in programming 2021; 1: 49-55
Автоматизація розв’язування задач з планіметрії, записаних природною українською мовою
The article focuses on developing a software solution for solving planimetry problems that are written in Ukrainian. We discuss tendencies and available abilities in Ukrainian natural language processing. Presenting a comprehensive analysis of different types of describing a problem, which shows regularities in the formulation and structure of the text representation of problems. Also, we demonstrate the similarities of writing a problem not only in Ukrainian but also in Belarusian, English, and Russian languages. The final result of the paper is a system that uses the morphosyntactic analyzer to process a problem’s text and provide the answer to it. Ukrainian natural language processing is growing rapidly and showing impressive results. Huge possibilities appear as the Gold standard annotated corpus for Ukrainian language was recently developed. The created architecture is flexible, which indicates the possibility of adding both new geometry figures and their properties, as well as the additional logic to the program. The developed system with a little reformatting can be used with other natural languages, such as English, Belarusian or Russian, as the algorithm for text processing is universal due to the globally accepted representations for presenting such types of mathematical problems. Therefore, the further development of the system is possible.Problems in programming 2020; 4: 71-80У роботі досліджено й описано створення системи для розв’язування задач з планіметрії за допомогою сучасних можливостей обробки природної української мови та розробленої сукупності алгоритмів опрацювання тексту задачі. Розробка базується на аналізі текстів планіметричних задач та аналізі доступних засобів обробки живої української мови, що наразі наявні. Результатом роботи є кінцевий програмний продукт, написаний мовою Python, що дає змогу вирішувати прості завдання з планіметрії.Problems in programming 2020; 4: 71-8
Моделювання RESTFUL API для системи автоматизації приватних електронних закупівель
The software for the e-procurement system was developed based on .NET Core RESTful API with Open API specifications. The server side uses RESTful API which ensures compatibility with the majority of clients and enables them to exchange information in JSON format. The authentication and authorization flow was implemented using OAuth open standard paired with Microsoft Identity Service. User roles and functionality were handled with a standalone service for authentication and registration that made our system efficient and scalable. Business logic was designed to be split into micro-services accessible through routing controllers. This approach allowed us to separate the responsibilities between the server and the client side. Special authorization headers passed during modification queries allowed us to control and restrict access to particular resources for unauthorized users. The distributed cache mechanism inside the data repository level was used in order to increase the responsiveness of the system. The state handling subsystem was designed utilizing Finite State Machine concepts. The developed system was verified using unit and integration tests.Prombles in programming 2021; 1: 03-15Розроблено програмний засіб для автоматизації електронних закупівель на основі .NET Core RESTful API з використанням специфікацій OpenAPI v3.0. Реалізовано авторизацію користувачів системи, постачальників та замовників, за допомогою відкритого стандарту OAuth та Microsoft Identity Server. Для скорочення часу відгуку системи здійснено кешування даних на рівні репозиторію за підтримки розподіленного кешу. Створено підсистему для обробки та переходу між станами закупівель на основі скінченного автомату станів. Проведено випробування розробленого програмного засобу з використанням модульних та інтеграційних тестів.Prombles in programming 2021; 1: 03-1
Відображення дескриптивної логіки у RDF з використанням бінарної реляційної моделі даних
This paper is dedicated to the data integration problem. To establish relationships between data models is one of the key tasks in this solution. The descriptive logic and the relational data model are at the heart of a study. They have been used to create a mapping method on the theoretical level. The binary relational data model has been developed as a part of a mapping method. The previous studies are continued in this paper to prove on practice a mapping creation method between the descriptive logic and the binary relational data model. The method uses the binary relational data model as an integrating model. This paper continues the previous research of practical implementation of the mapping creation between the descriptive logic and the binary relational data model. The task to prove the theoretical mapping method on practice was formulated. A question how to map the binary relational data model into RDF-triples was considered. A brief overview of the R2R ML conversion tool was given. Triple maps were created to convert a conceptual information model of descriptive logic into RDF triplets with the help of R2R ML. Also, triples maps are described to convert basic mapping mechanisms into RDF with the help of R2R ML. Prombles in programming 2021; 1: 56-83Робота присвячена комплексній проблемі інтеграції даних в семантичному вебі. Однією з ключових задач її вирішення є встановлення взаємозв’язків між моделями даних. Основою досліджень обрано дескриптивну логіку та реляційну модель даних. Метод створення відображень між цими моделями даних було розроблено на теоретичному рівні. Для створення механізмів відображення, цей метод використовує бінарну реляційну модель даних у якості інтегруючої. З метою його практичної перевірки, у роботі продовжено попередні дослідження способу реалізації відображень між дескриптивною логікою та бінарною реляційною моделлю даних. Було сформульовано задачу перевірки теоретичного механізму відображень за допомогою RDF. Розглянуто питання перетворення бінарної реляційної моделі даних у RDF-трійки. Дано стислий огляд інструменту перетворення R2R ML. За допомогою R2R ML, створено карти трійок для перетворення концептуальної інформаційної моделі дескриптивної логіки в RDF-трійки. Описано карти трійок для перетворення основних механізмів відображень у RDF-трійки за допомогою R2R ML.Prombles in programming 2021; 1: 56-8
Алгоритм та програмне забезчення для визначення жанру пісні задля створення музичного хіта
One of the needs of music business is a quick classification of the song genre by means of widely available tools. This work focuses on improving the accuracy of the song genre determination based on its lyrics through the development of software that uses new factors, namely the rhythm of the text and its morpho-syntactic structure. In the research Bayes Classifier and Logistic Regression were used to classify song genres, a systematic approach and principles of invention theory were used to summarize and analyze the results. New features were proposed in the paper to improve the accuracy of the classification, namely the features to indicate rhythm and parts of speec h in the song.Problems in programming 2021; 2: 85-94В ХХІ столітті музика – це дуже прибутковий бізнес як для стримінгових сервісів, що пропонують музику користувачу, так і для авторів пісень, що намагаються продати свої тексти. Однією з потреб цього бізнесу є визначення жанру майбутньої або вже існуючої пісні, щоб вигідно продати її замовнику, або запропонувати зацікавленому користувачу. Практика вимагає все більшої і більшої точності, але існуючі практичні підходи не спроможні її надати, оскільки методи класифікації пісень за жанром недостатньо розвинуті на теоретичному рівні. Ця робота зосереджена на підвищенні точності визначення жанру пісні за її текстом шляхом розробки програмного забезпечення, що використовує нові фактори, а саме ритм тексту та його морфо-синтаксичну структуру. У дослідженні використовувалися класифікатор Байєса та логістична регресія для класифікації жанрів пісен, систематичний підхід та принципи теорії винахідництва для узагальнення та аналізу результатів. Програми були написані на мові програмування Python. У роботі було запропоновано нові метрики для підвищення точності класифікації, а саме метрики на позначення ритму тексту та кількості різних частин мови в пісні.Problems in programming 2021; 2: 85-9
Засіб вимірювання метрик вихідного коду FORTRAN за допомогою синтаксичного аналізу
The rapid development of software quality measurement methods, the need in efficient and versatile reengineering automatization tools becomes increasingly bigger. This becomes even more apparent when the programming language and respective coding practices slowly develop alongside each other for a long period of time, while the legacy code base grows bigger and remains highly relevant. In this paper, a source code metrics measurement tool for Fortran program quality evaluation is developed. It is implemented as a code module for Photran integrated development environment and based on a set of syntax tree walking algorithms. The module utilizes the built-in Photran syntax analysis engine and the tree data structure which it builds from the source code. The developed tool is also compared to existing source code analysis instruments. The results show that the developed tool is most effective when used in combination with Photran’s built-in refactoring system, and that Photran’s application programming interface facilitates easy scaling of the existing infrastructure by introducing other code analysis methods.Prombles in programming 2021; 1: 26-35 В умовах стрімкого розвитку методик забезпечення якості програмного коду, все більшою стає потреба в інструментах, що можуть автоматизувати процес оновлення та реструктуризації текстів програм. Розроблено програмний засіб для вимірювання програмних метрик, що дозволяє провести оцінювання якості вихідного коду програм мовою Fortran. Для цього розроблено алгоритми обходу синтаксичного дерева програми та на їх основі реалізовано модуль для інтегрованого середовища програмування Photran. Модуль використовує синтаксичний аналізатор програмного коду та побудоване Photran на його основі структурне дерево. Проведено порівняння розробленого засобу з наявними інструментами аналізу вихідного коду. Результати показують, що розроблений засіб особливо ефективний у поєднанні з вбудованою в Photran системою рефакторінгу, а програмний інтерфейс самого Photran дозволяє легко масштабувати існуючу інфраструктуру, додаючи підтримку інших видів аналізу. Prombles in programming 2021; 1: 26-3