Algorithm: Difference between revisions

From CEOpedia | Management online
(The LinkTitles extension automatically added links to existing pages (<a target="_blank" rel="noreferrer noopener" class="external free" href="https://github.com/bovender/LinkTitles">https://github.com/bovender/LinkTitles</a>).)
(The LinkTitles extension automatically added links to existing pages (<a target="_blank" rel="noreferrer noopener" class="external free" href="https://github.com/bovender/LinkTitles">https://github.com/bovender/LinkTitles</a>).)
Line 60: Line 60:
==Other approaches related to Algorithm==
==Other approaches related to Algorithm==
The Algorithm discussed is a method for solving a problem, but there are other approaches related to algorithms that can also be employed. These include:
The Algorithm discussed is a method for solving a problem, but there are other approaches related to algorithms that can also be employed. These include:
* [[Heuristics]]- Heuristics is a problem-solving technique that uses a practical approach to finding a solution. It relies on experience and [[knowledge]] to make decisions, rather than relying on a systematic approach.
* [[Heuristics]]- Heuristics is a problem-solving technique that uses a practical approach to finding a solution. It relies on experience and [[knowledge]] to make decisions, rather than relying on a [[systematic approach]].
* Greedy Algorithms- Greedy algorithms are a type of algorithms that make the best decision at each stage of the problem-solving process. They make decisions based on the current problem, without considering the consequences of the decision in the long run.
* Greedy Algorithms- Greedy algorithms are a type of algorithms that make the best decision at each stage of the problem-solving process. They make decisions based on the current problem, without considering the consequences of the decision in the long run.
* Divide and Conquer- Divide and conquer is an algorithmic technique for solving problems that involve breaking the problem into smaller subproblems and solving each one separately.
* Divide and Conquer- Divide and conquer is an algorithmic technique for solving problems that involve breaking the problem into smaller subproblems and solving each one separately.

Revision as of 08:21, 19 March 2023

Algorithm
See also

Simplified definition of the algorithm says that:

An algorithm is a finite sequence of steps for turning input to the output.[1] (A. Jędryczkowski, 2005, s.2)

Figure 1. Scheme of the algorithm

Algorithm scheme.gif

When constructing any algorithm one such perform specific stages: understanding the problem, making assumptions, design of steps, constructing a flowchart or tree, programming, testing. Algorithms are part of larger field of science called artificial intelligence. Processing, and transforming data, can take place once or multiple times.

Examples of popular algorithms

The most common artificial intelligence algorithms:

  • search algorithms such as. A* (A Star) - heuristic method of search for shortest paths in a particular environment [2] (C. Płotnicki-Chudyk, 2005, s.6). One of the successful successors was B* (B Star) algorithm.

Figure 2. An example of A-Star algorithm

AStar algorithm.gif

  • min-max decision-making algorithm - involves finite element method in decision-making. One of the modifications of the Min-Max was named Alpha-Beta. The second most popular modification became SSS (State Space Search) - containing elements of the A-Star [3]
  • search algorithm, Breadthen-First Search (BFS) and (Depth-First Search - DFS) are tools for assisting with the creation of algorithms for searching for optimal solutions. They are working very well for searching graphs. For this reason, you can just use BFS to search for the best possible way in the maze
  • graph algorithms - applied for more complex mechanisms, reducing the amount of detail and overall transparency of causal model
  • sorting algorithms - very commonly used in all types of databases, as well as data warehousing
  • recursive algorithms - used to solve problems where recursion is the quickest way to correct algorithm processing [4] (N. Wirth, 2002, s.148)
  • evolutionary algorithms - class of heuristic algorithms, the search space of alternative solutions.
  • arithmetic systems - present in almost any computing structure (for addition, multiplication division etc.)
  • approximation algorithms - used to solve research problems, problem of a salesman, covering of warehouse space, and other [5] (T. Cormen, 2001, s.1073)

In accordance with the above definition, the algorithm can be created on the basis of almost every common human action, Everyone performs algorithms of rising out of bed, washing teeth or dressing. Preparation of meal is also an algorithm, like driving, cycling, or any other action. Thanks to this perception, the algorithms has become a separate science almost as extensive as information science.[6] (D. Harel, 2000, s.23)

Advantages of Algorithm

The algorithm provides a number of advantages, including:

  • Increased efficiency – By following a predetermined set of steps, algorithms allow for tasks to be completed more quickly with minimal effort.
  • Reduced errors – By providing a consistent set of instructions, algorithms reduce the likelihood of errors occurring.
  • Improved accuracy – Algorithms allow for tasks to be completed without the need for manual input, which can lead to more accurate results.
  • Improved scalability – Algorithms can be scaled up or down in order to accommodate larger and smaller data sets.
  • Cost savings – Algorithms can often be used to automate tasks that would otherwise require human resources, resulting in cost savings.

Limitations of Algorithm

The algorithm has several limitations, which include:

  • It is limited to performing a single operation at a time, meaning it is not able to process multiple inputs or outputs simultaneously.
  • It is not able to adapt to changes in the environment or data, meaning it may not be able to provide accurate results in a dynamic or changing environment.
  • It is limited by the amount of data it can process, meaning it may not be able to process large amounts of data efficiently.
  • It is limited by the complexity of the problem it is trying to solve, meaning it may not be able to solve complex problems.
  • It is limited by its computational power, meaning it may not be able to solve complex problems in a timely manner.

Other approaches related to Algorithm

The Algorithm discussed is a method for solving a problem, but there are other approaches related to algorithms that can also be employed. These include:

  • Heuristics- Heuristics is a problem-solving technique that uses a practical approach to finding a solution. It relies on experience and knowledge to make decisions, rather than relying on a systematic approach.
  • Greedy Algorithms- Greedy algorithms are a type of algorithms that make the best decision at each stage of the problem-solving process. They make decisions based on the current problem, without considering the consequences of the decision in the long run.
  • Divide and Conquer- Divide and conquer is an algorithmic technique for solving problems that involve breaking the problem into smaller subproblems and solving each one separately.

In summary, there are several approaches related to algorithms that can be employed to solve problems. These include heuristics, greedy algorithms, and divide and conquer. Each approach has its own advantages and disadvantages, so it is important to choose the right approach for the problem at hand.

References

  1. [1] A. Jędryczkowski, Algorytmy, Prezentacja, 2005
  2. [2] C. Płotnicki – Chudyk, Wyszukiwanie drogi w grach komputerowych, Prezentacja, 2005
  3. [3] Algorytmy rozwiązywania gier – prezentacja, Koło naukowe informatyków Fraktal
  4. [5] N. Wirth, Algorytmy + struktury danych = programy, Wydawnictwa Naukowo - Techniczne, 2002
  5. [7]Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Wprowadzenie do algorytmów, Wydawnictwa Naukowo - Techniczne Warszawa, Wydanie 4, 2001
  6. [8] D. Harel, Rzecz o istocie informatyki: Algorytmika, Wydawnictwa Naukowo - Techniczne Warszawa, Wydanie drugie, 2000