As computing advances, the world of algorithms continues to get new classifications to keep up. Various algorithms have gotten witty terms, like “fuzzy search”, “evolutionary computing”, and “neural nets” to explain that they are probability based. In this article, we’ll review the differences and pin these algorithms to the categories of soft or hard computing while providing some real-world examples of each.
Examining “Hard Computing”
No, “hard computing” has nothing specific to do with “hardware”. Hard computing is your traditional computing algorithm, as anyone thinks of it. It’s as simple as “2 + 2 = ?”. Despite what Orwellian logic dictates, the answer is quite deterministically “4”. Algorithms that process functions and data with a verifiable output, are considered conventional computing algorithms. The analytic models of these algorithms are precise, as these require perfect knowledge. Here, the mind and the algorithm align! But as humans, we can infer so much more.
Let’s change the algorithm to “2 + x” where x is some number 0 to 5. Is the result less than 10? Is it positive? Traditional computing generally can’t infer the answer without plugging values. As humans, we can handle imprecision and partial truth. Handling this uncertainty to provide an answer in computing is where the aspect of “Soft Computing” emerges.
The Concept of “Soft Computing”
When you can’t assure exact input data, and you’re ok with answers that non-deterministic, you can enter the world of soft computing. Soft computing is sometimes referred to as computational intelligence (CI), allows algorithms to attempt a higher order mentality which gives clear and rational solutions with imperfect data. These solutions are powered by strategies fueled from everything from “good principles” down into deep learning neural networks. The resulting solution models could be theoretical or illegible to everyone, even the people who helped create them.
The facts are simple, input from people and the real world have variation. Solving for every possible variation with hand-coded rules to keep the benefits of hard computing isn’t always feasible, and in the scope of NP-complete problems, unknown and unsolved. Soft computing in these cases is the best solution.
A Couple Real World Examples
Hey Siri, Let’s Try Soft Computing
In result, if you were to ask a computer “What is the weather today?”, and then ask “Can you please tell me what is the weather is like outside today?”, each of those sentences have the same answer. If you think about all the ways a person can ask for the weather, as it breaks down into ones and zeros, is a frighteningly large set of possibilities. Combine that with punctuation and even different languages, and you find yourself staring down the barrel of one of the most complex algorithms you could write, all for a simple question.
This is realm of NLP (Natural language processing). This field of computer science has, for a long time, tried to understand and teach computers to properly process natural language data. For decades most NLP systems were based on sets of hand-written rules and transformational grammar. The problem continued to grow more complex, despite programmers having a clear understanding of what the results should be. Funny enough, it was the relinquishing of these understandings to unsupervised and semi-supervised machine learning algorithms that have created the model which powers the useful tools in your everyday life, like Alexa, OK Google, and Siri.
Language processing powered by statistical natural language processing (SNLP) was the breakthrough. Increasing complexity with human-written rulesets was hard computing. Writing rules for exceptions, variance and more meant that data was the enemy. Soft computing and increasing the Machine Learning statistical model with all these data was a natural fit, and a way to change the weakness into strength. There’s no shortage of data to refine NLP, as humans have and continue to write all the time. The correspondence of a sentence’s intention can’t be easily verified, but as these devices continue to refine SNLP, the soft computing solution has exponentially yielded better results than all the man-hours previously worked in hard computing. It’s soft computing that has moved language processing from a science into a usable product.
Intelligent Image Resizing
You don’t have to go far to find a website that looks great on a computer, but terrible on a phone. Sometimes, it’s even the other way around, where the majority of your large desktop is padded with empty, dead space. As designers resize applications, there’s the question of how to resize images. Ideally, you’d have multiple images for any size resolution, but with feasibility and cost factored in, most will simply resize an existing image. Resizing images is a hard computing problem. You can feather, constrain proportions, cover the full area, stretch, or even repeat images. Each with their corresponding reactionary canvas and algorithms for such.
The most impressive hard computing algorithm for resizing is probably the seam carving method. Using edge detection on an image, the hard computing algorithm calculates the least important paths so it can remove the minimal amount of “energy” from any given image.
This is commonly called content-aware image resizing, and plenty of code can be found which illustrates these examples in action.
With such impressive hard computing algorithms, you might be surprised to know that soft computing has found its way into this field as well. This new domain gives you a more human solution. Keep the most interesting parts. Using cloudinary.com’s default demo image, we can take a photo that is off-center, and rather than subtracting from all sides equally, we can factor in face-detection for where it’s best to crop (see their responsive images documentation for more details). Now you’re handing your fate of cropping to soft computing, where you’d originally have to hand-edit multiple files.
This can sometimes be called automatic gravity selection (as part of their responsive images capability), where soft computing attempts to identify the most interesting part of an image, and choose the resize intelligently. Empowered with skills like this, we can confidently update our website content, with assurance that we can resize content dynamically for mobile, tablets, and more. We can even blur faces, like in Google maps.
Which and When?
Hard computing or traditional computing is fast, efficient, and reliable with deterministic outcomes. It’s the algorithm you want for your bank, your calendar, and your no-interpretation needed mission-critical tasks. But as a human, interfacing with each of these can feel inhuman. Soft computing bridges that gap and gives you an interaction level intelligence, which can offload some of the menial work, that previously only a human could possibly do. Adding items to your grocery list, calendar, and more with the ease of soft computing, gives us a new layer. The marriage between hard and soft computing continues to drive the industry’s best products. Providing a soft and forgiving interface for driving this hard computing filled world is the advent of a new and exciting computing age.
Computer Science at UoPeople:
Learn more about our Computer Science degree programs, where you can learn the latest programming languages, and experiment with both hard and soft computing techniques.
To start preparing for your programming courses visit our Prepare for University section.
2 + 2 = 5. Retrieved from https://en.wikipedia.org/wiki/2_%2B_2_%3D_5
NP-completeness. Retrieved from https://en.wikipedia.org/wiki/NP-completeness
Introduction to Natural Language Processing (NLP) (2016). https://blog.algorithmia.com/introduction-natural-language-processing-nlp/
esimov/caire. Retrieved from https://github.com/esimov/caire
Responsive images. Retrieved from https://cloudinary.com/documentation/responsive_images