Ing. Michal Šoch, Ph.D.

Theses

Bachelor theses

Generator of undirected graphs

Author
Miroslav Jaroš
Year
2023
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
doc. Ing. Ivan Šimeček, Ph.D.
Summary
This bachelor thesis designs a web application suitable for generation of random graphs. In the first part, it describes basic topics and definitions of Graph Theory and advanced algorithms that are used for the generation. Next, it analyses task description from the software engineering standpoint and designs a web application with a server part written in Go programming language, which exposes REST API, and independent component for user interface, written in the Angular framework. The practical part of the work then combines knowledge obtained from both theoretical and analytical parts and applies them in the resulting solution. It also describes methods used for application testing on several levels: Unit and integration; it also defines necessary manual test cases executed to assure quality. Ultimately, it suggests a deployment method, operational limits, and maintenance procedures that ensure the solution's performance.

Information system for dives recording for iOS

Author
Adam Žďára
Year
2013
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Tomáš Zahradnický, Ph.D.

Information System for Sport Club

Author
Michal Jirka
Year
2016
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jan Trdlička, Ph.D.
Summary
The main target of this bachelor thesis is to analyze and implement an information system of sport club which should content some new usefull functions. In the first chapter is the term information system defined. It is followed by definition of sport club, main informations about its direction and management. Concurrently a research was carried out by questionnaire on leadership of any sport clubs. Analysis of this research revealed functions, which users would appreciate. The system is built on PHP framework Nette. It is also described in teoretical part, as well as other used technologies. In the conclusion are written some imperfections of the system, suggestions for its improvements and results of testing. Moreover, source code is enclosed in the attachment.

Prague model for Microsft Flight Simulator X

Author
Lukáš Kakos
Year
2014
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jiří Daněček

Plugins for the Ninja Trader application

Author
Jiří Kovačič
Year
2014
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jan Trdlička, Ph.D.

System for entry of orders

Author
Jan Hoffman
Year
2013
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
doc. Ing. Ivan Šimeček, Ph.D.

Application for fitness exercise

Author
Jan Kubálek
Year
2012
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jan Trdlička, Ph.D.

Diving logbook

Author
Jan Žák
Year
2012
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jan Trdlička, Ph.D.

Comparative study of multithreaded applications

Author
Jan Nyklíček
Year
2023
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
doc. Ing. Ivan Šimeček, Ph.D.
Summary
This thesis describes the implementation of a sequential application for solving the 0-1 knapsack problem in C++, followed by parallelization using Posix threads, C++ threads, and OpenMP. The resulting three multi-threaded applications are analyzed in terms of implementation complexity and achieved speedup on a multi-core system.

Simulation of 2D heat flow on the CUDA technology

Author
Radek Drholecký
Year
2013
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
doc. Ing. Ivan Šimeček, Ph.D.

IS for dives recording for Android OS

Author
Jakub Majdl
Year
2013
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jan Trdlička, Ph.D.

Application namedays for iPhone

Author
Jan Vyvadil
Year
2012
Type
Bachelor thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jakub Hladík

Master theses

Heuristic approaches in solving NP-hard problems

Author
Tomáš Petříček
Year
2023
Type
Master thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jan Trdlička, Ph.D.
Summary
The aim of the thesis is to find a near optimal configuration for an algorithmic trading strategy using heuristics in reasonably short time. The reader is firstly introduced to complexity classes and heuristic methods, including those used in the practical part: simulated annealing, genetic algorithm and tabu search. It is followed by the description of algorithmic trading and the stages that can be automated. Knowledge from both of these fields is combined in the backtesting section. The goal of backtesting is to test a trading strategy against historical data to make adjustments and find appropriate configuration before deciding whether or not to use it in real-time trading. Finding these configurations is an NP-hard problem, and heuristics can be used to find the optimal ones in a reasonable time. In order to achieve greater flexibility and speed, a custom framework written in C++20 was created. The historical simulation was inspired by the TradingView platform and the trading process by the Binance exchange. Modern C++ features such as concepts and coroutines were used. The emphasis was placed on the effective use of the language features and computer resources. In addition to heuristics, a brute force algorithm was also implemented. It was parallelized using OpenMP to achieve higher speed. Heuristics were implemented to be flexible and easy to use, thus design patterns such as Observer and Strategy were used. The progress and results collected during the optimization were saved in JSON and CSV files, so that they can later be examined using scientific Python packages. The framework was unit tested before the experimental evolution was performed. Years of one-minute candlestick data of 10 different cryptocurrencies were used for the evaluation. First, a search space with reasonable configurations and size was selected. The best configurations were found using a brute force algorithm. White-box tests and black-box tests were then performed using heuristic approaches, and the results were compared with the optimal ones. Overall, heuristic approaches are able to find near-optimal configurations in minutes instead of hours or even days using even the most optimized brute-force algorithm.

Parallel computation of probability of winning poker Texas Holdem

Author
Tomáš Apeltauer
Year
2015
Type
Master thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
doc. Ing. Ivan Šimeček, Ph.D.
Summary
This master's thesis aims to design and implement an application that allows user to calculate the precise probability of winning a poker Texas hold'em game match. Its accuracy will be 99% and it will return the result in less than 1 second. The reader will learn the basic principles of programming language Erlang and its use in parallel algorithms.

Parallel embeding algorithm simulator

Author
Ivo Kolář
Year
2017
Type
Master thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
doc. Ing. Ivan Šimeček, Ph.D.
Summary
The following text deals with the issue of parallel embeding algorithms. It describes the first theoretically different networks, which in themselves can be nested and subsequently embeding algorithms that preserve the best characteristics of the network. Part of this work is a program that can simulate the selected algorithms in 3D animation. All this work will serve as a teaching tool for students enrolled Parallel Algorithms and Systems.

Support of automatic managemet of Solaris Zones Virtualization Containers on the Solaris Platform

Author
Tomáš Šimáček
Year
2018
Type
Master thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jan Trdlička, Ph.D.
Summary
This thesis deals with issues of automatic administrating Solaris Zones virtualization technology on Solaris platform. It provides detailed description of this virtualization technology and compares commonly used techniques of virtualization. The practical part of this thesis is focused on designing and implementation of administrating tool that will serve for automatic management of Solaris Zones. Implementation is focused on automatic installation of zones using templates which allow to define their properties. Routines for automatic backup, recovery and migration of zones are also part of the implementation and can be used on local or remote servers.

Parallel sorting algorithms simulator

Author
Van Nhan Nguyen
Year
2022
Type
Master thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
doc. Ing. Ivan Šimeček, Ph.D.
Summary
The thesis consists of design and implementation of a single page web application, that simulates selected (Odd-Even Sort, Shear Sort) parallel sorting algorithms. The application is developed on top of Vuetify framework, using Three.js library for 3D animation.

Parallel sorting algorithms simulator for web browsers

Author
Petr Plechatý
Year
2017
Type
Master thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
doc. Ing. Ivan Šimeček, Ph.D.
Summary
The thesis describes the analyse, design and implementation of an application running in a web browser. This application simulates some chosen parallel sorting algorithms. The implementation is written in React along with other modern technologies for development of single-page applications.

Application for algorithmic trading

Author
Jan Kirchner
Year
2019
Type
Master thesis
Supervisor
Ing. Michal Šoch, Ph.D.
Reviewers
Ing. Jan Trdlička, Ph.D.
Summary
This diploma thesis deals with analysis, design and implementation of platform for administration of strategies operating on cryptocurrency markets and evaluation of their results. In addition to providing a unified multi-exchange trading interface, the application will offer diverse information sources as well as the ability to test programs on historical data, or with simulated assets. For development technologies such as .NET, React and Docker for following deployment in containers were used.