## Towards Artificial Intelligence from Classical Algorithmic Programming

Advancements in artificial intelligence have allowed for complex computational problems to be efficiently solved that have been previously difficult, intractable or heavily combinatorial. These problems include facial recognition, object detection, route planning and highly personalised online recommender systems.

The challenge for organisations moving forward into the future is for strategic decision-makers to decide between traditional classical approaches and artificial intelligence approaches to solve complex computational problems. Either method has unique challenges in delivering a robust system across dimensions of accuracy, cost, implementation difficulty, and maintainability.

## The Classical Algorithmic Programming Approach to Solving Problems

The classical programming paradigm involves solving problems via prescriptive algorithms and utilising a well-defined sequence of instructions. Inputs are defined and constrained, developing algorithms to process inputs via defined programming paradigms (Procedural, Object-Oriented, Functional and Logical) to produce outputs.

Discovering algorithms to solve temporally and spatially efficient problems is notoriously challenging. In computational complexity theory, problems are either P (Polynomial), NP (Non-deterministic Polynomial), NP-Complete or NP-Hard. Polynomial problems can be solved and verified quickly, while non-polynomial problems cannot. NP problems are difficult to solve via classical algorithmic approaches.

An example of a P problem is finding the shortest path between two points, while an example of an NP Problem is the travelling salesman problem where when given a series of locations, what is the optimal path to visit all sites travelling the shortest possible distance. It just so happens that many of the problems that are currently required to be solved computationally fall into the NP category. In most cases, for practical purposes, an approximate solution is often sufficient. When approaching daily life, humans always come up with approximate solutions, i.e. navigation.

There are implementation challenges in solving problems under a classical algorithmic paradigm in an efficient manner. Algorithmic complexity is a branch of computer science that deals with how efficient algorithms run in the temporal (time complexity) and spatial domains (space complexity).

While there are many different ways to implement algorithms, an obvious but potentially non-efficient way to implement an algorithm is often referred to as a “naive” algorithm. Most efficient algorithms are not easy to discover, and Computer Scientists have been working for many years to find the best algorithms to solve classes of problems. Algorithms in production systems are implemented in temporally and spatially efficient ways. The largest software companies ensure the highest algorithmic standards via peer-programming, similar to peer-review. It takes many years of training and a high degree of skill to implement algorithms efficiently.

In a practical sense, while programming techniques have evolved and programming languages (i.e. C, C++, Java, JavaScript, PHP, Python) have varied in popularity, the fundamentals have remained the same since Bell Labs, in the 1970s, wrote the first C modules. There are some practical ways to make theoretically challenging problems work in production, such as using distributed systems. Advanced approaches come at a higher cost and are outside the capabilities of all but the most technologically progressive organisations.

Given the complexity of classical algorithmic programming approaches, organisations have long since found it difficult to build effective teams to produce such systems internally. Further, many have also struggled to find external providers to solve niche challenges that are theoretically possible to implement. Designing a specific algorithm becomes significantly more complex as the problem complexity increases. It is especially true for multivariate problems. It is best to use classical algorithm approaches for situations where an algorithm can quickly solve a problem and works for most cases.

## The AI Approach to Solving Problems

The Artificial Intelligence paradigm attempted to solve problems generically by feeding inputs and desired outputs into a system and letting the system learn how to solve problems. Current AI approaches run on classical computers via classical programming techniques. The most exciting AI methods are neural networks and reinforcement learning.

Artificial neural networks exploit human understanding of how the human mind learns and generalises problems. Reinforcement learning uses agents feeding in a goal state and a series of scenarios. The learning algorithm retains preferable outcomes and relinquishes adverse outcomes over multiple iterations. Reinforcement learning is analogous to operant conditioning. The agent learns how to achieve the goal over many training iterations.

A requirement for training artificial intelligence solutions is either a well defined vast dataset, usually compiled using a combination of various data warehouses or crowdsourcing, or a system can learn to reach a goal state by running through a series of iterations. An example of this is a system playing a game against itself, such as Chess or Go, to further learn how to develop strategies to improve outcomes. Artificial network and reinforcement learning are both run on scenarios it is not trained for and evaluated similarly to other machine learning approaches. These approaches generalise well and provide efficient solutions given a class of problems. Artificial Intelligence based solutions suit problems that cannot be easily defined using a sequence of instructions; instead require more “intuition” and value judgements.

Typically, Artificial Intelligence systems are trained using datasets and later evaluated on an evaluation set. The more high-quality training data inputted into an AI system, the higher the system's likelihood of performing to a high standard. The benefit of AI approaches is they can continue to improve over time as the system learns more. Thus, complex problems can be generalised and solved by computing systems. These include issues traditionally solved by human input, although narrow AI can be viewed as a complement to existing human input to ensure better outcomes.

Artificial intelligence and Machine Learning have long been viewed cautiously by organisations due to such systems lacking the traceability and determinability of how they will respond to use cases. Thus, AI can act in rare circumstances and respond unpredictably when least expected. That is why this is important to have clearly defined use cases for when AI is to be used, what levels of error are accepted and how the outputs produced from AI systems will be peer-reviewed by human input to ensure accuracy.

Overall, we predict that the improved accuracy AI systems will bring, coupled with the efficiencies gained by augmenting human input, will have too great of a financial incentive for many organisations not to ignore in the coming years, AI systems will become pervasive.

## When to Choose Artificial Intelligence and When to Select the Classical Algorithmic Programming Approach to Solve Problems

While there are no hard and fast rules of when to use either approach, as a general rule, problems requiring approximate solutions and involving goal-oriented long-term planning, complex pattern recognition and processing of a multitude of variables are more suited to AI. Classical algorithmic approaches are better suited to exact or near-optimal solutions that involve heavy logic and computations.

Choosing the correct approach can yield significant benefits for your organisation while choosing a less optimal method can lead to substantial capital losses as technology projects are expensive. Often going with proven and demonstrable systems such as Telemus AI™ can help organisations ensure success in their Artificial Intelligence digital transformation.

Contact us today for a free consultation on how the Telemus AI™ can be integrated into your organisation.