Performance engineering of route planning algorithms
The archipelago of Finland is especially difficult for a skipper. The huge amount of islands, islets, channels and shallow waters may be treacherous even for an experienced skipper. UpWind is a navigational software application intended especially for a sailboat skipper. It has been developed in the...
Main Author: | |
---|---|
Format: | Dissertation |
Language: | English |
Published: |
University of Oulu
2014
|
Subjects: | |
Online Access: | http://urn.fi/URN:NBN:fi:oulu-201311291937 http://nbn-resolving.de/urn:nbn:fi:oulu-201311291937 |
id |
ndltd-oulo.fi-oai-oulu.fi-nbnfioulu-201311291937 |
---|---|
record_format |
oai_dc |
collection |
NDLTD |
language |
English |
format |
Dissertation |
sources |
NDLTD |
topic |
Information Processing Science |
spellingShingle |
Information Processing Science Kangastalo, R. (Rauno) Performance engineering of route planning algorithms |
description |
The archipelago of Finland is especially difficult for a skipper. The huge amount of islands, islets, channels and shallow waters may be treacherous even for an experienced skipper. UpWind is a navigational software application intended especially for a sailboat skipper. It has been developed in the University of Oulu in a series of student projects, including the algorithms for the route planning.
Long-term algorithm calculates the route along the major channel system on a chart. Short-term algorithm calculates the set of laylines, both for starboard and board side of the sailboat, that shows the optimal route to sail in the current wind conditions. The data used in the route calculation is stored in a separate database on a separate machine. The data is either read to random access memory (long-term planning) or it is queried on runtime (short-term planning).
The algorithms have to run in a given time frame. They must not block the user interface nor cause delay in calculations that might lead to hazardous situations while sailing. Also, the resources on board are scarce, especially electricity. Even the smallest optimizations on electricity consumption have been considered important.
A literature study of the current methodologies used in evaluating software performance was carried out in order to find out if those methodologies or a combination of them could be utilised in evaluating the algorithms. The focus of algorithm evaluation was in finding out their time-complexity properties.
It turned out that most of the current performance engineering methods, like the methods based on queuing theory, do not serve very well to the evaluation of the algorithms. Those algorithms do not implement any queuing phenomena nor the current performance engineering methods scale down well to algorithm level. Most of the methods are aimed to aid in designing and evaluating of the performance in the early stage of the development. In UpWind application the algorithms have already been implemented. The algorithm analysis scales down very well to the implemented algorithms. Algorithm analysis together with running time measurements of the algorithms and their analysis were selected as the evaluation method.
The algorithm analysis results revealed that the growth-rate is either n or n2 for all algorithms and sub algorithms. The running times of the algorithms are thus fast and no bottlenecks were found in them.
The measurements and the analysis of the measurement results revealed one severe bottleneck in the short-term route planning algorithm. A major portion of the total calculation time is consumed by database queries when checking for obstacles in between the sailboat and the destination checkpoint. The measurements result analysis combined with the results of algorithm analysis of the long-term route planning showed that the calculation speed is sufficient for current size map. If there is intention to use bigger maps, it is suggested that the algorithm is moved to its own thread, or otherwise indicate the ongoing route calculation to the user.
The proposed improvement to the short-term planning is to fetch a larger amount of obstacle data on demand. This trapezoid area of obstacles is limited by the master turning points, boat position and destination checkpoint. An algorithm for checking the obstacle-free route calculation should be developed in future. It was suggested that the calculation should only be done when wind conditions change more than a given wind angle or the skipper gets too far from the selected short-term route. It was also suggested that only one of the sides of the short-term route should be calculated if the skipper starts to follow either route. A method and limits, for determing when the wind change or distance between boat and short-term route is enough to trigger a new calculation, should also be developed. |
author |
Kangastalo, R. (Rauno) |
author_facet |
Kangastalo, R. (Rauno) |
author_sort |
Kangastalo, R. (Rauno) |
title |
Performance engineering of route planning algorithms |
title_short |
Performance engineering of route planning algorithms |
title_full |
Performance engineering of route planning algorithms |
title_fullStr |
Performance engineering of route planning algorithms |
title_full_unstemmed |
Performance engineering of route planning algorithms |
title_sort |
performance engineering of route planning algorithms |
publisher |
University of Oulu |
publishDate |
2014 |
url |
http://urn.fi/URN:NBN:fi:oulu-201311291937 http://nbn-resolving.de/urn:nbn:fi:oulu-201311291937 |
work_keys_str_mv |
AT kangastalorrauno performanceengineeringofrouteplanningalgorithms |
_version_ |
1718697912508088320 |
spelling |
ndltd-oulo.fi-oai-oulu.fi-nbnfioulu-2013112919372018-06-20T04:58:12ZPerformance engineering of route planning algorithmsKangastalo, R. (Rauno)info:eu-repo/semantics/openAccess© Rauno Kangastalo, 2013Information Processing ScienceThe archipelago of Finland is especially difficult for a skipper. The huge amount of islands, islets, channels and shallow waters may be treacherous even for an experienced skipper. UpWind is a navigational software application intended especially for a sailboat skipper. It has been developed in the University of Oulu in a series of student projects, including the algorithms for the route planning. Long-term algorithm calculates the route along the major channel system on a chart. Short-term algorithm calculates the set of laylines, both for starboard and board side of the sailboat, that shows the optimal route to sail in the current wind conditions. The data used in the route calculation is stored in a separate database on a separate machine. The data is either read to random access memory (long-term planning) or it is queried on runtime (short-term planning). The algorithms have to run in a given time frame. They must not block the user interface nor cause delay in calculations that might lead to hazardous situations while sailing. Also, the resources on board are scarce, especially electricity. Even the smallest optimizations on electricity consumption have been considered important. A literature study of the current methodologies used in evaluating software performance was carried out in order to find out if those methodologies or a combination of them could be utilised in evaluating the algorithms. The focus of algorithm evaluation was in finding out their time-complexity properties. It turned out that most of the current performance engineering methods, like the methods based on queuing theory, do not serve very well to the evaluation of the algorithms. Those algorithms do not implement any queuing phenomena nor the current performance engineering methods scale down well to algorithm level. Most of the methods are aimed to aid in designing and evaluating of the performance in the early stage of the development. In UpWind application the algorithms have already been implemented. The algorithm analysis scales down very well to the implemented algorithms. Algorithm analysis together with running time measurements of the algorithms and their analysis were selected as the evaluation method. The algorithm analysis results revealed that the growth-rate is either n or n2 for all algorithms and sub algorithms. The running times of the algorithms are thus fast and no bottlenecks were found in them. The measurements and the analysis of the measurement results revealed one severe bottleneck in the short-term route planning algorithm. A major portion of the total calculation time is consumed by database queries when checking for obstacles in between the sailboat and the destination checkpoint. The measurements result analysis combined with the results of algorithm analysis of the long-term route planning showed that the calculation speed is sufficient for current size map. If there is intention to use bigger maps, it is suggested that the algorithm is moved to its own thread, or otherwise indicate the ongoing route calculation to the user. The proposed improvement to the short-term planning is to fetch a larger amount of obstacle data on demand. This trapezoid area of obstacles is limited by the master turning points, boat position and destination checkpoint. An algorithm for checking the obstacle-free route calculation should be developed in future. It was suggested that the calculation should only be done when wind conditions change more than a given wind angle or the skipper gets too far from the selected short-term route. It was also suggested that only one of the sides of the short-term route should be calculated if the skipper starts to follow either route. A method and limits, for determing when the wind change or distance between boat and short-term route is enough to trigger a new calculation, should also be developed.University of Oulu2014-01-17info:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/publishedVersionapplication/pdfhttp://urn.fi/URN:NBN:fi:oulu-201311291937urn:nbn:fi:oulu-201311291937eng |