Smartphone AI: Reactive Programming and Mobile Computing Machinery

Smartphone AI: Reactive Programming and Mobile Computing Machinery

Smartphone AI in relationship to Reactive Programs and Mobile Computing Machinery are intricately entwined. We are interested in and write about the relationship of how Reactive Architecture is affecting Mobile AI Smartphone Computing from Mobile Apps to Robots. 

Reactive AI Systems, Reactive Programming, and Reactive Machines are a subtopic of the types of Artificial Narrow Intelligence. You may be adjusting settings with your Smartphone App on your Robotic Vacuum, and Reactive Programing and Mobile Computing Machinery are at the root of that.

So, when you think about it, reactive programming is one of the most basic ways that artificial intelligence can be utilized by computer programs, as we have come across this type of AI early in the past. However, you should also know that reactive programs are in your smartphone’s AI as technology is getting more advanced every year.

What is Reactive AI and Its Components?

What is Reactive AI and Its Components?
What is Reactive AI and Its Components?

Reactive AI definitions are laborious and complex to explain in layman’s terms for someone who is not a data scientist, software engineer, or computer coder, which is most people. Reactive AI is concerned with how the machine or the computer reacts to certain decisions and movements without considering how it learns from its past experiences. In short, it is purely reactive and doesn’t think or learn.

  • Reactive AI – Reactive AI is basic; it has no memory or data storage abilities and is one of the oldest forms of AI. Reactive and Limited Memory AI systems currently in existence that use machine learning and deep learning to teach themselves are within Artificial Narrow Intelligence (ANI).
  • Reactive ArchitectureReactive Architecture aims to provide software that remains responsive in all situations using a software architectural style that can give us Reactive Systems.
  • Reactive Machines – There is no clear definition of Reactive Machines. Still, they are described in some circles as machines that monitor sensors, and other inputs, making decisions based on that input data. They do not use past experiences and do not get better with the application. Reactive Machines identify the world and respond to it. These machines have no memory, so they cannot learn. Instead, they make all decisions based on indicators created by a programmer in response to events.
  • Reactive Manifesto – The Reactive Manifesto is a document that attempts to define the nucleus of reactive programming. The Reactive Manifesto is also a response to many industries working to have a basic substrate and standard for reactive software programming.
  • Reactive PlanningReactive Planning denotes a group of techniques for action selection by autonomous agents.
  • Reactive Program – A Reactive Program is an artificial intelligence software program designed to be purely reactive. In that sense, it does not base its decisions on its experience; it does not try to learn from the things that it experiences along the way. 
  • Reactive Programming – Declarative programming with asynchronous data streams. An asynchronous data stream is a stream of data (digitally encoded intelligible signals or packets of data) where units are emitted and made available over time.
  • Reactive SynthesisReactive Synthesis is the field of computer science that studies the automatic generation of state machines from high-level specifications.
  • Reactive SystemsReactive Systems perform ongoing interaction with their surroundings or conditions rather than generate reactive output with the given input. Reactive Systems are an architectural style that utilizes many different applications to coalesce into one cohesive system. This is all while responding within their environment while staying aware of all its other system contributors.

The Reactive Manifesto

The Reactive Manifesto states that “We believe that a coherent approach to systems architecture is needed, and we believe that all necessary aspects are already recognized individually: we want systems that are Responsive, Resilient, Elastic and Message Driven. We call these Reactive Systems.”

The Reactive Manifesto
Reactive Manifesto – Reactive Systems
Component Name Description
ResponsiveThe system responds in a timely manner if at all possible
ResilientThe system stays responsive in the face of failure
ElasticThe system stays responsive under varying workloads
Message DrivenReactive Systems rely on asynchronous message-passing to establish a boundary between components that ensures loose coupling, isolation, and location transparency
According to the Reactive Manifesto, A Reactive Systems Description Synopsis

“Today applications are deployed on everything from mobile devices to cloud-based clusters running thousands of multi-core processors.”

“Large systems are composed of smaller ones and therefore depend on the Reactive properties of their constituents.”

Reactive System in Software Architecture

In the world of software engineering, many system architectures exist. Part of every layered Software Architecture design is a reactive system. The basis of any reactive system is the imperative knowledge base.

In today’s multi-layered artificial Intelligence software programming world, “layered architectures” require low-level, calculated, and reactive process components working together to run and exchange information asynchronously. Asynchronous software programming is a form of parallel software programming that allows a “Unit of Work” to run separately from the primary application thread of execution.

These systems have been integral in many projects, from the NASA Space Shuttles and unmanned aerial vehicles to driverless cars and trucks.

Examples of AI Reactive Programs From IBM’s Deep Blue to Google Deepminds MuZero

From IBM's Deep Blue to Google Deepminds MuZero
From IBM’s Deep Blue to Google Deepminds MuZero

Often sited as Reactive AI a Reactive Machine, Deep Blue was a chess computer developed by IBM. It is famous for defeating the chess world champion, GM Garry Kasparov, in their famous 1997 match.

One of the best examples of a program using Reactive components is Google Deepminds iterations of AlphaGo through MuZero, game-based systems whose forerunners were good enough to beat world champions in the Chess, Shogi, and the Go Game. MuZero now beats AlphaGo and those games and others handily without knowing the rules. 

MuZero is not making decisions based on what has happened in the past but is doing a look-ahead tree search. It has aspects that are purely reactive because it analyzes the present state of the game and only focuses only on the most important aspects of the environment for planning. 

MuZero uses a new approach to overcome the limitations of the previous precursors. Instead of modeling its entire environment, MuZero only models certain aspects important to its decision-making process.

Reactive Programs on a Deeper Level

On a deeper level, reactive programs are AI that looks at the world directly for what it is and acts on what has happened at that moment instead of perceiving the world from a reflective point of view as it doesn’t even have an internal concept of what the world is.

So, when you think about it, these machines are programmed to react the same way every time they encounter the very same problem. This reaction is without even considering the possibility that the human on the other end might be planning on doing something the program cannot possibly predict. 

As advanced and as sophisticated as most reactive programs are today, thanks to how they use neural networks for their reactions. Reactive programs cannot account for all possible events that they may encounter and only react based on what they perceive as the most optimal solution. That means that, in certain cases, reactive programs can easily be fooled.

If you like this article please check out “Smartphone AI: Can Your Mobile Phone Really Become Self-Aware?” and “What is Sustainability on an Eco-Friendly Smartphone?”

The Weakness of Reactive Programs

The Weakness of Reactive Programs
The Weakness of Reactive Programs

It is also worthy to note that reactive programs don’t have a way to interact with the world in how movies have been telling us concerning what AI can do in the future. They are simply trapped in their little worlds and are more or less only going to function within the confines of that station.

Another weakness that reactive programs have is that they were merely programmed to react as humans would in certain situations. They are not meant to learn and are so static that they will only function how they are programmed. As such, most reactive programs tend to be predictive, in a sense, especially when it comes to how they are applied.

If you think about how reactive programs are applied in today’s world, you would be surprised to know that they are actually the oldest types of artificial intelligence and have always been used in many different practical uses wherever you go. That’s because reactive programs or reactive machines tend to be quite useful and reliable when it comes to automating other processes. After all, they would simply react depending on what is happening in the “then and now”.

How Are Reactive Programs Applied Today?

Video games make use of reactive programs that can react to what a player does. The program will perform the most optimal move available to it when the human makes moves. 

In a more practical sense, self-driving cars rely on reactive programs that will allow the vehicles to move and react based on the information that is available to them at the very moment. So, when it senses that there is another car in front of it, the program will react in an optimal way wherein it will make the car hit the brakes because such a decision is what is best for it to make at that given moment.

Even the autopilot that our commercial flights count on also uses reactive programs that chart a flight path depending on the most optimal route to take for a plane, depending on the course. That’s why the average flight of a plane usually only involves about seven minutes of actual human steering, as most commercial planes rely more on what AI can do.

So, in a sense, reactive programs are applied in a way that allows the machines we use to be trustworthy because they are essentially reacting in the way they were programmed to respond. But the problem is that they are not interactive and will never be able to do anything outside of what they were programmed to do because they act on their “instincts” and react only to what is required.

How Are Reactive Programs Used In Mobile Computing Machinery?

How Are Reactive Programs Used In Mobile Computing Machinery
How Are Reactive Programs Used In Mobile Computing Machinery

When we talk about mobile computing today for this article, we mostly refer to what our smartphones can do as computing has gone mobile thanks to the increasing power and (artificial) intelligence that our smartphones possess. As our phones are getting more intelligent, the AI is also getting more sophisticated; they are also still relying on the most primitive type of reactive programs.

The predictive text that we use in our smartphones also uses reactive programs that will allow the phone to predict the most optimal words based on the given context of the sentence. Even the games we play on our smartphones rely on reactive machines as these applications involve programs that are similar to that of Deep Blue and Alpha Go mentioned earlier in the sense that they will react and perform moves based on what the user or the human does on his or her end.

Voice searches on your phone also make use of AI that reacts to the different words that the microphone on your smartphone hears so that the device itself would be able to formulate the right reaction based on what you want it to do.

Reactive Programming in Smartphones Mobile Future

Whether you like it or not, artificial intelligence or AI has been a part of your life for a while now, even in the subtlest ways you can imagine. Remember that chess game you always played with your old computer when the games were still primitive, and the internet was still not as advanced as it is today? Well, that’s a form of AI! Artificial intelligence such as reactive programs is now becoming an even bigger part of our lives thanks to how it is now being used in mobile computing machinery, especially when it comes to Robots or our Smartphones.

So, as some would consider reactive programs primitive because they are not interactive, they still have an exclusive place in the way we live our lives, especially when it comes to mobile computing. But the AI on our smartphones does not rely entirely on reactive programs. We know that smartphones today are so intelligent that they are now making use of machine learning more and more. 

Still, though, mobile phone AI algorithms are programmed to both react and learn instead of simply reacting, and that should be the future of the more interactive and autonomous AI that we often see in sci-fi movies.

Conclusion

Smartphone AI in relationship to Reactive Programs and Mobile Computing
Smartphone AI in relationship to Reactive Programs and Mobile Computing

When we think about what AI is and what it is capable of, we usually refer to what we see in sci-fi films where artificial intelligence is so advanced that it doesn’t only think and act like a human but can also far surpass the intelligence of even the smartest human to the point that it can even become too dangerous. Think Terminator if you want a reference to what we are discussing.

However, AI was never just always about computers that are a hundred times smarter than humans and can think independently, just like our brains do. In fact, as long as the machine or the computer can function and act independently of human intervention, that is already considered artificial intelligence. That is what reactive programming is all about.

User Interface API App State Algorithm – Simple Path Algorithm – User Flow Stuck in Cycle – Integration Tests – Manually Test Code – Formal methods to test program for no bugs – scale

References:

John Mortensen

I was a project manager and am a technology and science enthusiast who loves to study the latest technology, such as AI, smartphones, headphones, and software.

Recent Posts