Naukma Research Papers. Computer Science

Journal Information
ISSN: 26173808
Total articles ≅ 69

Latest articles in this journal

Naukma Research Papers. Computer Science, Volume 4, pp 29-43; https://doi.org/10.18523/2617-3808.2021.4.29-43

Abstract:
This paper offers a comprehensive review of selection methods used in the generational genetic algorithms.Firstly, a brief description of the following selection methods is presented: fitness proportionate selection methods including roulette-wheel selection (RWS) and its modifications, stochastic remainder selection with replacement (SRSWR), remainder stochastic independent selection (RSIS), and stochastic universal selection (SUS); ranking selection methods including linear and nonlinear rankings; tournament selection methods including deterministic and stochastic tournaments as well as tournaments with and without replacement; elitist and truncation selection methods; fitness uniform selection scheme (FUSS).Second, basic theoretical statements on selection method properties are given. Particularly, the selection noise, selection pressure, growth rate, reproduction rate, and computational complexity are considered. To illustrate selection method properties, numerous runs of genetic algorithms using the only selection method and no other genetic operator are conducted, and numerical characteristics of analyzed properties are computed. Specifically, to estimate the selection pressure, the takeover time and selection intensity are computed; to estimate the growth rate, the ratio of best individual copies in two consecutive populations is computed; to estimate the selection noise, the algorithm convergence speed is analyzed based on experiments carried out on a specific fitness function assigning the same fitness value to all individuals.Third, the effect of selection methods on the population fitness distribution is investigated. To do this, there are conducted genetic algorithm runs starting with a binomially distributed initial population. It is shown that most selection methods keep the distribution close to the original one providing an increased mean value of the distribution, while others (such as disruptive RWS, exponential ranking, truncation, and FUSS) change the distribution significantly. The obtained results are illustrated with the help of tables and histograms.
Naukma Research Papers. Computer Science, Volume 4, pp 64-71; https://doi.org/10.18523/2617-3808.2021.4.64-71

Abstract:
The paper investigates a possibility of developing a non-virtual hierarchy for a special case of class signature, which may possess different interpretations. The approach is similar to double dispatching in the C ++ programming language. As an alternative to polymorphism, a non-polymorphic hierarchy has been suggested based on generic programming templates. This hierarchy is based on inverse parametrization for templates enabling constructing a general scheme for the design pattern. The pattern defined a class architecture suitable for static implementation of double dispatched multimethod for a special case of signature- defined interfaces.In fact, any abstract base class (interface) with purely virtual operations must acquire a polymorphic implementation. Besides, the polymorphism itself, the dependence of a virtual function on two objects – “this” and another parameter – requires the use of double dispatch, turning a class member function into a double dispatched multimethod.A preliminary consideration deals with issues of double dispatching in the C++ programming language. Inheritance with polymorphic class member functions is used. This requires special efforts of adding to both bases and derived classes a couple of virtual functions to support dispatching. In any case, this approach, besides using virtual functions, has a disadvantage of violating one of the SOLID principles, namely the principle of dependency inversion: base classes should not depend on derivatives, which negatively affects the quality of the software.Polymorphism is usually understood as the dynamic tuning of a program to the data type of the object that the program will encounter during its execution. That is, by its nature, polymorphism is a purely dynamic characteristic. However, in C++ literature and in practice, you can come across the term “static polymorphism”.At the same time, research of possibilities of generalized programming (templates) allows transferring some dynamic problems to the static level. In particular, a variant of static polymorphism application without virtual functions can be considered.A variant of non-virtual double scheduling has been proposed, generalized in the form of a created design pattern “Signature multimethod”. The use of the newly created pattern is illustrated with an example of implementing classes of complex numbers. The absence of violations of SOLID principles is shown, and the possibility of supplementing the hierarchy with new derived classes without the need to interfere with the structure of the base class is demonstrated.The approach suggested in this work has been used in courses in object-oriented programming at the Faculty of Informatics of Kyiv-Mohyla Academy.
Semen Gorokhovskyi,
Naukma Research Papers. Computer Science, Volume 4, pp 48-51; https://doi.org/10.18523/2617-3808.2021.4.48-51

Abstract:
Euclidean algorithm is known by humanity for more than two thousand years. During this period many applications for it were found, covering different disciplines and music is one of those. Such algorithm application in music first appeared in 2005 when researchers found a correlation between world music rhythm and the Euclidean algorithm result, defining Euclidean rhythms as the concept.In the modern world, music could be created using many approaches. The first one being the simple analogue, the analogue signal is just a sound wave that emitted due to vibration of a certain medium, the one that is being recorded onto a computer hard drive or other digital storage called digital and has methods of digital signal processing applied. Having the ability to convert the analogue signal or create and modulate digital sounds creates a lot of possibilities for sound design and production, where sonic characteristics were never accessible because of limitations in sound development by the analogue devices or instruments, nowadays become true. Sound generation process, which usually consists of modulating waveform and frequency and can be influenced by many factors like oscillation, FX pipeline and so on. The programs that influence synthesised or recorded signal called VST plugins and they are utilising the concepts of digital signal processing.This paper aims to research the possible application of Euclidean rhythms and integrate those in the sound generation process by creating a VST plugin that oscillates incoming signal with one of the four basic wave shapes in order to achieve unique sonic qualities. The varying function allows modulation with one out of four basic wave shapes such as sine, triangle, square and sawtooth, depending on the value received from the Euclidean rhythm generator, switching modulating functions introduces subharmonics, with the resulting richer and tighter sound which could be seen on the spectrograms provided in the publication.
Semen Gorokhovskyi,
Naukma Research Papers. Computer Science, Volume 4, pp 98-100; https://doi.org/10.18523/2617-3808.2021.4.98-100

Abstract:
With the rapid development of applications for mobile platforms, developers from around the world already understand the need to impress with new technologies and the creation of such applications, with which the consumer will plunge into the world of virtual or augmented reality. Some of the world’s most popular mobile operating systems, Android and iOS, already have some well-known tools to make it easier to work with the machine learning industry and augmented reality technology. However, it cannot be said that their use has already reached its peak, as these technologies are at the stage of active study and development. Every year the demand for mobile application developers increases, and therefore more questions arise as to how and from which side it is better to approach immersion in augmented reality and machine learning. From a tourist point of view, there are already many applications that, with the help of these technologies, will provide more information simply by pointing the camera at a specific object.Augmented Reality (AR) is a technology that allows you to see the real environment right in front of us with a digital complement superimposed on it. Thanks to Ivan Sutherland’s first display, created in 1968 under the name «Sword of Damocles», paved the way for the development of AR, which is still used today.Augmented reality can be divided into two forms: based on location and based on vision. Location-based reality provides a digital picture to the user when moving through a physical area thanks to a GPS-enabled device. With a story or information, you can learn more details about a particular location. If you use AR based on vision, certain user actions will only be performed when the camera is aimed at the target object.Thanks to advances in technology that are happening every day, easy access to smart devices can be seen as the main engine of AR technology. As the smartphone market continues to grow, consumers have the opportunity to use their devices to interact with all types of digital information. The experience of using a smartphone to combine the real and digital world is becoming more common. The success of AR applications in the last decade has been due to the proliferation and use of smartphones that have the capabilities needed to work with the application itself. If companies want to remain competitive in their field, it is advisable to consider work that will be related to AR.However, analyzing the market, one can see that there are no such applications for future entrants to higher education institutions. This means that anyone can bring a camera to the university building and learn important information. The UniApp application based on the existing Swift and Watson Studio technologies was developed to simplify obtaining information on higher education institutions.
Naukma Research Papers. Computer Science, Volume 4, pp 113-116; https://doi.org/10.18523/2617-3808.2021.4.113-116

Abstract:
A virtual asset is a type of asset which does not have a material representation, although its value is reflected in a real currency. Due to their nature, the price of digital assets is usually highly volatile, especially with futures, which are derivative financial contracts. This is the most important contributing factor to the problem of the low usability of digital-based contracts in enterprise operations.Previously existing virtual assets included photography, logos, illustrations, animations, audiovisual media, etc. However, virtually all of such assets required a third-party platform for exchange to currency. The necessity of having a trusted by both sides mediator greatly limited the ease of use, and ultimately restricted the number of such transactions. Still, popularity of digital assets only grew, as evidenced by an explosive growth of software applications in the 2000s, as well as blockchain-based asset space in the 2010s.The newest and most promising solution developed is based on cryptoassets. Underlying usage of block- chain technology for the transactions checking and storage ensures clarity in virtual assets’ value history. Smart contracts written for the Ethereum platform, as an example, provide a highly trustful way of express- ing predefined conditions of a certain transaction. This allows safe and calculated enterprise usage, and also eliminates the need of having a mutually trusted third-party. The transactions are fully automated and happen at the same time as the pre-defined external conditions are met.Ethereum was chosen as an exemplary platform due to its high flexibility and amount of existing development. Even now, further advancements are being explored by its founder and community. Besides Ether, it is also used nоn-fungible tokens, decentralized finance, and enterprise blockchain solutions. Another important point is how much more nature friendly it is compared to main competitors, due to energy-efficiency of the mining process, enforced by the platform itself. This makes it ideal for responsible usage as well as further research.This article explores the digital assets usage, as well as explains cryptoassets technological background, in order to highlight the recent developments in the area of futures based on virtual assets, using certain Ether implementation as an example, which offers perpetual futures.
, , Yury Yuschenko
Naukma Research Papers. Computer Science, Volume 4, pp 108-112; https://doi.org/10.18523/2617-3808.2021.4.108-112

Abstract:
The work examines the current problems of the spread of use of logical programming in the development of commercial multi-platform software applications, tools for convenient development of a modern graphical interface to the logical programs. Libraries with similar concepts of use have been analyzed and described. The purpose of the proposed concept, which is implemented as an open source library, is described, and the advantages of the proposed tools over similar existing tools are indicated. The main feature and advantage of the proposed concept is the implementation of Prolog business logic and interface by means of JavaScript usage of child processes. The proposed concept of interface to Prolog takes full advantage of the possibilities provided by async await. A framework library has been created for the use of Logic Programming in graphical interface development without losses in the application performance. The paper describes the proposed concept and the developed framework (library). The ways to further improve the possibilities for expanding the purpose of the implemented library were identified. The directions of further simplification for programmers of integration of the graphic interface to logical programs have been defined. A significant advantage of the proposed tool is the easy-to-use functions to wrap and control the correctness of requests to the Prolog. The main goal of the library is to create an environment for the Prolog developers where they can create any type of software, which is meant to be user friendly, fast, and cross platform using modern and flexible. This concept also tries to solve disadvantages and architectural problems that were found in other libraries. The safety of library functionality has been analyzed. The concept of potential horizontal application scalability is described. Conclusions and future of libraries were introduced, in which the usage of TypeScript for type-safety and avoidance of run-time errors is mentioned. Overall, the library extends the use of Prolog beyond logical programming and takes a leap forward in its progress.
Lada Beniukh, Andrii Hlybovets
Naukma Research Papers. Computer Science, Volume 4, pp 88-92; https://doi.org/10.18523/2617-3808.2021.4.88-92

Abstract:
Testing system performance and its importance at the same time is difficult to overestimate or underestimate. It would be much more correct to talk about the timeliness of this activity. Virtually any digital sys- tem built on modern approaches and technologies can work without any critical problems with its own performance. At the same time, for any system, especially when it becomes popular, it is very likely that there will be a time when it will not be able to cope with the ever-increasing load and become unstable. However, most companies that develop and maintain their own digital solutions – from websites to any other digital systems – often focus primarily on the functionality of the system and its compliance, rather than on the performance of the system as a whole. Such intentions are quite natural, because the system must properly perform the functions expected of it. When companies start to face performance problems, they try not to optimize the software as soon as possible, but to add more capacity – vertical and horizontal scaling. This strategy works, but it has limitations. After all, the addition of additional resources cannot be endless and sooner or later rests either on the architecture of the system, or in the capabilities of the company itself, and so on.Therefore it is recommended to carry out stress testing in advance, plan time and resources to have enough time to correct errors, and generally understand the boundaries of the system. At the same time, in order to organize full-fledged stress testing, trained specialists, tools and infrastructure are needed, especially when we are talking about heavy workload.As part of this work, an analysis of various tools for the implementation of stress testing and performance testing, scaling of such tests and centralized reporting of metrics. As a result, approaches and principles for the construction of a modern architecture for the implementation of the load testing subsystem in the continuous supply of code were proposed.
Naukma Research Papers. Computer Science, Volume 4, pp 23-28; https://doi.org/10.18523/2617-3808.2021.4.23-28

Abstract:
Machine learning technologies have developed rapidly in recent years, and people are now able to use them in various spheres of life, making their lives easier and better. The agro-industry is not lagging behind, and every year more and more problems in this area are solved with the help of machine learning algorithms. However, among the problems that have not yet been solved is the problem of identifying diseases of agricultural plants. According to the UN research, about 40% of the world’s harvest dies each year from various diseases, most of which could be avoided through timely intervention and treatment.To solve this problem, we offer an easy, accessible service for everyone, which will allow one to predict by the image of the plant leaves whether it is sick or healthy, or whether it needs any help or intrusion. This service will be indispensable for small farms engaged in growing crops. Thus, it will allow employees of such enterprises to immediately detect diseases and receive recommendations for the care of plants important to them.Therefore, it was decided to develop a neural network architecture that will solve this problem: the prediction of a plant disease by the image of its leaves. This neural network model is lightweight, does not take much time to learn, and has high accuracy on our dataset. It was also investigated which popular architectures (e.g. XceptionNet, DenseNet, etc.) of deep neural networks can have great accuracy in solving this problem. To realize the possibility of using the model by end users, i.e. farmers, it was decided to develop a special web service in the form of a telegram bot. With this bot, anyone can upload images of the leaves of agricultural plants and check whether this plant is healthy or free of any diseases. This bot is also trained to give appropriate advice to gardeners on the treatment of diseases or the proper cultivation of healthy plants.This solution fully solves the problem and has every chance to become an indispensable helper in preserving the world harvest.
Semen Gorokhovskyi, Oleksandra Radziievska
Naukma Research Papers. Computer Science, Volume 4, pp 60-63; https://doi.org/10.18523/2617-3808.2021.4.60-63

Abstract:
In the modern world, it is no longer enough to simply create a product that performs its function, but it should perform it better than thousands of competitors. However, the problem is that human intellectual abilities are limited and many complex tasks are beyond the capabilities of a single person. The natural way of raising our intellectual level is to build teams to share our experience, knowledge, and worldview to create something beyond the capacity of the individual.Thus it is not surprising that according to a recent ranking, collaborative skills are considered most essential in the 21st century [2]. To cope with all challenges and create high-quality products, there should be a team whose members are experts in communication, discussion, problem-solving, and critical thinking. In addition, it is important to manage the team effectively. To do so, it is necessary to know more about the social processes which take place inside a team. Agent-based modeling can be an effective tool to gain such insights.Agent-based modeling is a powerful instrument for simulating different processes, including social ones. This technology was formed under the influence of many other fields such as artificial intelligence, sociology, game theory, and so on.In this article, a model which simulates human interaction in the framework of «Wilderness Survival: A Consensus-Seeking Task» is used to demonstrate the core principle of agent-based modeling. The group of agents complete a test by themselves and afterwards discuss their answers to reach a consensus and achieve the best score.It will be analyzed which human character traits are more important for successful collaborative work. Situations in which some team members are not interested in the team success will be identified. Also, a user interface is provided to enable running custom experiments to better understand how specific character traits impact the team results.
, Serhii Sukharskyi
Naukma Research Papers. Computer Science, Volume 4, pp 10-15; https://doi.org/10.18523/2617-3808.2021.4.10-15

Abstract:
With the development of the Big Data sphere, as well as those fields of study that we can relate to artificial intelligence, the need for fast and efficient computing has become one of the most important tasks nowadays. That is why in the recent decade, graphics processing unit computations have been actively developing to provide an ability for scientists and developers to use thousands of cores GPUs have in order to perform intensive computations. The goal of this research is to implement orthogonal decomposition of a matrix by applying a series of Householder transformations in Java language using JCuda library to conduct a research on its benefits. Several related papers were examined. Malaschonok and Savchenko in their work have introduced an improved version of QR algorithm for this purpose [4] and achieved better results, however Householder algorithm is more promising for GPUs according to another team of researchers – Lahabar and Narayanan [6]. However, they were using Float numbers, while we are using Double, and apart from that we are working on a new BigDecimal type for CUDA. Apart from that, there is still no solution for handling huge matrices where errors in calculations might occur. The algorithm of orthogonal matrix decomposition, which is the first part of SVD algorithm, is researched and implemented in this work. The implementation of matrix bidiagonalization and calculation of orthogonal factors by the Hausholder method in the jCUDA environment on a graphics processor is presented, and the algorithm for the central processor for comparisons is also implemented. Research of the received results where we experimentally measured acceleration of calculations with the use of the graphic processor in comparison with the implementation on the central processor are carried out. We show a speedup up to 53 times compared to CPU implementation on a big matrix size, specifically 2048, and even better results when using more advanced GPUs. At the same time, we still experience bigger errors in calculations while using graphic processing units due to synchronization problems. We compared execution on different platforms (Windows 10 and Arch Linux) and discovered that they are almost the same, taking the computation speed into account. The results have shown that on GPU we can achieve better performance, however there are more implementation difficulties with this approach.
Back to Top Top