0% found this document useful (0 votes)
34 views

COS 102 Module 2

COS 102

Uploaded by

amubieyaayomide7
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

COS 102 Module 2

COS 102

Uploaded by

amubieyaayomide7
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

ACHIEVERS UNIVERSITY, OWO

COLLEGE OF NATURAL AND APPLIED SCIENCES


DEPARTMENT OF COMPUTER SCIENCE

COS 102 – PROBLEM SOLVING


MODULE 2
TOPIC 1: PROBLEM-SOLVING METHODS AND SOLUTION TECHNIQUES
When people are presented with a problem—whether it is a complex mathematical problem or an ordinary
one, how do they solve it? Before finding a solution to the problem, the problem must first be clearly
identified. After that, one of many problem solving strategies can be applied, hopefully resulting in a
solution.
A problem-solving strategy is a plan used to find a solution or overcome a challenge. Different strategies
have different action plans associated with them. For example, a well-known strategy is trial and error.
Each problem-solving strategy includes multiple steps to provide you with helpful guidelines on how to
resolve a problem or challenge. Effective problem-solving requires you to identify the problem, select the
right process to approach it and follow a plan tailored to the specific issue you are trying to solve.

Importance of Understanding Multiple Problem-Solving Strategies


Problem solving often incorporates logical reasoning and interpretation of meanings behind the problem,
and also in many cases require abstract thinking and creativity in order to find novel solutions. Various
methods of studying problem solving exist including introspection, simulation, computer modelling, and
experimentation.
Understanding how a variety of problem-solving strategies work is important because different problems
typically require you to approach them in different ways to find the best solution. By mastering several
problem-solving strategies, you can more effectively select the right plan of action when faced with
challenges in the future. This can help you solve problems faster and develop stronger critical thinking
skills.
Some problem-solving strategies are explained below:
1. TRIAL AND ERROR
A trial-and-error approach to problem-solving involves trying a number of different solutions and ruling out
those that do not work. This approach can be a good option if you have a very limited number of options
available. In terms of a broken printer for example, one could try checking the ink levels, and if that
doesn’t work, you could check to make sure the paper tray isn’t jammed. Or maybe the printer isn’t
actually connected to a computer. When using trial and error, one would continue to try different solutions
until the problem is solved. Although trial and error is not typically one of the most time-efficient
strategies, it is a commonly used one.
2 ALGORITHM AND HEURISTIC
A common type of strategy is an algorithm. An algorithm is a problem-solving formula that provides you
with step-by-step instructions used to achieve a desired outcome. You can think of an algorithm as a
recipe with highly detailed instructions that produce the same result every time they are performed.
Algorithms are used frequently in our everyday lives, especially in computer science. When you run a
search on the internet, search engines like Google use algorithms to decide which entries will appear first
in your list of results. Facebook also uses algorithms to decide which posts to display on your newsfeed.
Can you identify other situations in which algorithms are used?
A heuristic is another type of problem solving strategy. It employs a practical method but not guaranteed
to be optimal or perfect, either not following or derived from any theory or based on any advisedly
oversimplified one. Heuristic method of problem solving involves using reasoning and past experiences to
solve problem in a much quicker means that using computing methods. In computing, heuristic computer
program uses rules based on previous experiences in order to solve a problem rather than using
mathematical procedure.
While an algorithm must be followed exactly to produce a correct result, a heuristic is a general problem-
solving framework. You can think of these as mental shortcuts that are used to solve problems. A “rule of
thumb” is an example of a heuristic. Such a rule saves the person time and energy when making a
decision, but despite its time-saving characteristics, it is not always the best method for making a rational
decision. Different types of heuristics are used in different types of situations, but the impulse to use a
heuristic occurs when one of five conditions is met (Pratkanis, 1989):
• When one is faced with too much information
• When the time to make a decision is limited
• When the decision to be made is unimportant
• When there is access to very little information to use in making the decision
• When an appropriate heuristic happens to come to mind in the same moment
Working backwards is a useful heuristic in which you begin solving the problem by focusing on the end
result. It is common to use the working backwards heuristic to plan the events of your day on a regular
basis, probably without even thinking about it.
Another useful heuristic is the practice of accomplishing a large goal or task by breaking it into a series of
smaller steps. Students often use this common method to complete a large research project or long essay
for school. For example, students typically brainstorm, develop a thesis or main topic, research the chosen
topic, organize their information into an outline, write a rough draft, revise and edit the rough draft,
develop a final draft, organize the references list, and proofread their work before turning in the project.
The large task becomes less overwhelming when it is broken down into a series of small steps.
3 MEANS-ENDS ANALYSIS
This strategy involves choosing and analysing an action at a series of smaller steps to move closer to the
goal. One example of means-end analysis can be found by using the Tower of Hanoi paradigm. This
paradigm can be modelled as a word problem.
The actual Tower of Hanoi problem consists of three rods sitting vertically on a base with a number of
disks of different sizes that can slide onto any rod. The puzzle starts with the disks in a neat stack in
ascending order of size on one rod, the smallest at the top making a conical shape. The objective of the
puzzle is to move the entire stack to another rod obeying the following rules:
1. Only one disk can be moved at a time.
2. Each move consists of taking the upper disk from one of the stacks and placing it on top of another
stack or on an empty rod.
3. No larger disc may be placed on top of a smaller disk.
With 3 disks, the puzzle can be solved in 7 moves. The minimal moves required to solve a Tower of Hanoi
puzzle is 2n – 1, where is the number of disks. For example, if there were 14 disks in the tower, the
minimum amount of moves that could be made to solve the puzzle would be 214 – 1 = 16,383 moves.
There are various ways of approaching the Tower of Hanoi or its related problems in addition to the
approaches listed above including an iterative solution, recursive solution, non-recursive solution, a binary
and Gray-code solutions, and graphical representations.
An iterative solution entails moving the smallest pieces over one, then moving the next over one and if
there is no tower position in the chosen direction you are moving to, move the pieces to the opposite end,
but then continue to move in the same direction. By doing this one will complete the puzzle in the
minimum amount of moves when there are 3 disks. Recursive solutions represent recognizing that the
puzzle can be broken down into a series of sub problems to each of which the same general solving
procedures apply, and then the total solution can be found by putting together the sub solutions. Non-
recursive solutions entail recognizing that the procedures required to solve the problem have many
regularities such as when counting the moves starting at 1, position of the disk in the series to be moved
during move represents the number of times can be divided by 2 which indicates that every odd move
involves the smallest disk. This allows for the following algorithm:
1) Move the smallest disk to the peg that it has not recently come from.
2) Move another disk legally (there will only be one possibility).
A binary and Gray solutions describe disk move numbers in binary notation (base-2) where there is only
one binary digit (a bit) for each disk and the most significant (leftmost bit) represents the largest disk. A
bit with a different value to the previous one means that the corresponding disk is one position to the left
or right of the previous one.
Graphical representations, as their name imply, represent visual presentations of conditions that can be
modelled in order to view the most efficient and effective solutions. A common graph for the Tower of
Hanoi is represented by a unidirectional, pyramid shaped graph, where different nodes (pieces within each
level of the graph) represent distributions of disks and the edges represent moves, as shown below.

Figure 1-1: Graphical representation of nodes (circles) and moves (lines) of Tower of Hanoi.

Table 1-1: Commonly Used Problem-Solving Strategies

Method Description Example


Trial and error Continue trying different solutions until Restarting phone, turning off WiFi,
problem is solved turning off Bluetooth in order to
determine why your phone is
malfunctioning
Algorithm Step-by-step problem-solving formula Instruction manual for installing new
software on your computer
Heuristic General problem-solving framework Working backwards; breaking a
task into steps
Means-ends Analysing a problem at series of smaller Envisioning the ultimate goal and
analysis steps to move closer to the goal determining the best strategy for
attaining it in the current situation
TOPIC 2: SOLUTION TECNIQUES OF SOLVING PROBLEMS
1. ABSTRACTION
This is the creation of well-defined interfaces to hide the inner workings of computer programs from users.
It may also be defined as the process of identifying the general characteristics needed to solve a problem
while filtering out unnecessary information. It is also described as simplifying a process or artifact by
providing what you really need, and hiding the useless details you don't care about, thus removing
unnecessary detail.
Abstraction is widely used to simplify things that may be very complex. We use abstractions all the time,
almost without thinking. For example, if you learn to drive, you will be taught that putting your foot on the
accelerator will speed up the car and putting your foot on the brake pedal will slow it down. You will not
be taught anything about how the acceleration or braking systems actually work.
Importance of Abstraction
In computer science, abstraction is used to manage the complexity of a lot of what is designed and
created. Computer hardware is seen as components or black boxes.

The abstraction above represents a computer. It shows the names of the components and how they
interact with each other but hides the complexity of each type of component.
Types of Abstraction
i. Representational Abstraction
Abstraction appears in many forms within computing, both in terms of techniques used to approach
problem-solving, and in the computational tools employed to develop solutions. The maps of many
metropolitan public transport systems worldwide is a classic example of a representational abstraction.
Many specific details about the lines are removed because they are not necessary for the purpose of the
map, which is to help plan a journey. What remains when unnecessary detail has been removed is a
representational abstraction, i.e. a simpler version directed at solving a particular problem.
ii Abstraction by Generalisation
When you group things in terms of a set of common characteristics, you are generalising. This is a
fundamental technique used in object-oriented programming (although it is not exclusive to OOP) when
you identify that some objects are 'kinds of' more generic objects. For example, you might say that a
cocker spaniel is a kind of dog. Dogs have common sets of characteristics, such as having four legs, a tail,
and ears. However, so do cats; a biologist may tell you that both animals belong to the order Carnivora (a
group that includes many other types of animal including bears, skunks, and badgers). Generalising in this
way allows code to be developed and shared between objects.
You can also apply the technique of generalisation to the problem itself. It is often helpful to be able to identify
a problem as an example of a more general set of problems. Sometimes, this will help you to understand
quickly that the problem is non-computable, or that it is intractable. Otherwise, if the problem can be solved,
you can benefit from a solution that already exists.
iii Procedural Abstraction
This type represents a computational method. One of the skills of a computer scientist is the ability to design a
well-abstracted procedure that is generalised as far as possible. For example, consider the problem of
calculating the surface area of a chopping board. You write the following subroutine:
PROCEDURE calculate_chopping_board_area()
side1_length = INPUT("Enter length of side 1: ")
side2_length = INPUT("Enter length of side 2: ")
side1_length = STR(side1_length)
side2_length = STR(side2_length)
area = side1_length * side2_length
PRINT(area)
ENDPROCEDURE
This is an example of a subroutine that is too specific. Firstly, it is bound to a specific (command line) user
interface. If you abstract away this detail, the subroutine will be independent of the user interface, and will
therefore be more general. Here is a more general version of the same subroutine:
FUNCTION calculate_chopping_board_area(side1_length, side2_length)
area = side1_length * side2_length
RETURN area
ENDFUNCTION
iv Functional Abstraction
In functional abstraction, the implementation detail of the computational method is hidden. You can think of a
function as a black box. The function will receive an input (or set of inputs), process the input(s), and return
the output. How the transformation is achieved is hidden from the user?
Most languages will provide a set of built-in functions that can be used by the programmer. In the previous
example of a subroutine that calculates the area of a regular polygon, a maths library is used to provide useful
mathematical functions. In the example, functions were used to provide the value of , to calculate the square
root of a number, and to calculate the tangent of a number.
In Python, for example, the built-in function to display a value to the console or command line interface is
print. If you code in Python, you will be familiar with typing a command such as print ("Hello World"). You will
know that the name of the function is print, and it must be followed by a value (to print) enclosed in
parentheses.
v Data Abstraction
Some data types, such as unsigned integers, are conceptually simple; others are more complex. Data
abstraction is a technique that allows you to separate the way a compound data object is used, from the
details of how it is constructed.
Studying data structures, will make you aware of the concept of a stack as an example of an abstract data
type (ADT). A stack is a last in, first out (LIFO) data structure that supports three standard operations: push
(add an item to the stack), pop (remove an item from a stack), and peek (look at the item at the top of the
stack). The abstract concept of a stack, and its operations, can be understood without any consideration of
how it is implemented. Sometimes, you will see a stack drawn as an upright container with a single opening at
the top. This abstraction helps you to understand the LIFO nature of the structure.
2. ALGORITHM
An algorithm is an effective step-by-step procedure for solving a problem in a finite number of steps. In other
words, it is a finite set of well-defined instructions or step-by-step description of the procedure written in
human readable language for solving a given problem. An algorithm itself is division of a problem into small
steps which are ordered in sequence and easily understandable. Algorithms are very important to the way
computers process information, because a computer program is basically an algorithm that tells computer
what specific tasks to perform in what specific order to accomplish a specific task. The same problem can be
solved with different methods. So, for solving the same problem, different algorithms can be designed. In
these algorithms, number of steps, time and efforts may vary more or less.
For example, we might need to sort a sequence of numbers into non-decreasing order. This problem arises
frequently in practice and provides fertile ground for introducing many standard design techniques and
analysis tools. Here is how we formally define the sorting problem: Input: A sequence of numbers 〈1, 2, ⋯,〉.
In computer science we give a special name to the sub-algorithms. They are sometimes called modules,
functions or procedures. In fact, it is not a good idea to simply number all the sub-algorithms but instead to
give them meaningful names. As standard convention, when naming a function or procedure, you should use
letters, numbers and underscore (i.e., _) characters but not any spaces or punctuation. Also, the first
character in the name should be a lower case letter. If multiple words are used as the name, each word
except the first should be capitalized. Lastly, we often use parentheses (i.e., ()) after the function or
procedure name to identify it as a sub-algorithm. You should choose meaningful names that are not too long
as will be evident in our discussion. When a sub-algorithm comes back with some kind of object or value such
as numerical result, we call the sub-algorithm a function. If the sub-algorithm does not return any particular
value, it is instead known as a procedure.
TYPES OF ALGORITHM
Algorithms can be generally divided into six fundamental types based on their function.
1. Recursive Algorithm
It refers to a way to solve problems by repeatedly breaking down the problem into sub-problems of the
same kind. The classic example of using a recursive algorithm to solve problems is the Tower of Hanoi.
2. Divide and Conquer Algorithm
Traditionally, the divide and conquer algorithm consists of two parts: 1. breaking down a problem into
some smaller independent sub-problems of the same type; 2. finding the final solution of the original
issues after solving these more minor problems separately. The key points of the divide and conquer
algorithm are:
 If you can find the repeated sub-problems and the loop substructure of the original problem, you may
quickly turn the original problem into a small, simple issue.
 Try to break down the whole solution into various steps (different steps need different solutions) to
make the process easier.
 Are sub-problems easy to solve? If not, the original problem may cost lots of time.
3. Dynamic Programming Algorithm
Developed by Richard Bellman in the 1950s, the dynamic programming algorithm is generally used for
optimization problems. In this type of algorithm, past results are collected for future use. Like the divide
and conquer algorithm, a dynamic programming algorithm simplifies a complex problem by breaking it
down into some simple sub-problems. However, the most significant difference between them is that the
latter requires overlapping sub-problems, while the former doesn’t need to.
4. Greedy Algorithm
This is another way of solving optimization problems – greedy algorithm. It refers to always finding the
best solution in every step instead of considering the overall optimality. That is to say, what he has done is
just at a local optimum. Due to the limitations of the greedy algorithm, it has to be noted that the key to
choosing a greedy algorithm is whether to consider any consequences in the future.
5. Brute Force Algorithm
The brute force algorithm is a simple and straightforward solution to the problem, generally based on the
description of the problem and the definition of the concept involved. You can also use "just do it!" to
describe the strategy of brute force. In short, a brute force algorithm is considered as one of the simplest
algorithms, which iterates all possibilities and ends up with a satisfactory solution.
6. Backtracking Algorithm
Based on a depth-first recursive search, the backtracking algorithm focusing on finding the solution to the
problem during the enumeration-like searching process. When it cannot satisfy the condition, it will return
"backtracking" and tries another path. It is suitable for solving large and complicated problems, which
gains the reputation of the "general solution method". One of the most famous backtracking algorithm
example it the eight queens puzzle.

REASONS FOR ALGORITHM


A programmer writes a program to instruct the computer to do certain tasks as desired. The computer then
follows the steps written in the program code. Therefore, the programmer first prepares a roadmap of the
program to be written, before actually writing the code. Without a roadmap, the programmer may not be able
to clearly visualise the instructions to be written and may end up developing a program which may not work
as expected. Such a roadmap is nothing but the algorithm which is the building block of a computer program.
For example, searching using a search engine, sending a message, finding a word in a document, booking a
taxi through an app, performing online banking, playing computer games, all are based on algorithms. Writing
an algorithm is mostly considered as a first step to programming. Once we have an algorithm to solve a
problem, we can write the computer program for giving instructions to the computer in high level language. If
the algorithm is correct, computer will run the program correctly, every time. So, the purpose of using an
algorithm is to increase the reliability, accuracy and efficiency of obtaining solutions.
Steps involved in Algorithm Development & Characteristics of Algorithm
An algorithm can be defined as “a complete, unambiguous, finite number of logical steps for solving a specific
problem “
Step1. Identification of input: For an algorithm, there are quantities to be supplied called input and these
are fed externally. The input is to be identified first for any specified problem.
Step2: Identification of output: From an algorithm, at least one quantity is produced, called for any
specified problem.
Step3: Identify the processing operations: All the calculations to be performed in order to lead to output
from the input are to be identified in an orderly manner.
Step4: Processing Definiteness: The instructions composing the algorithm must be clear and there should
not be any ambiguity in them.
Step5: Processing Finiteness: If we go through the algorithm, then for all cases, the algorithm should
terminate after a finite number of steps.
Step6: Possessing Effectiveness: The instructions in the algorithm must be sufficiently basic and in practice
they can be carries out easily.
Example of a simple algorithm for simple problems
Write an algorithm to calculate the simple interest using the formula:
= P∗N ∗R /100, (where is principle Amount, is the number of years and is the rate of interest).
Algorithm calculateSimpleInterset
Step 1: Read the three input quantities’ P, N and R.
Step 2: Calculate simple interest as
Simple interest = P* N* R/100
Step 3: Print simple interest.
Step 4: Stop.

Advantages of Algorithm
Designing an algorithm has following advantages:
1. Effective Communication: Since algorithm is written in English like language, it is simple to
understand step-by-step solution of the problems.
2. Easy Debugging: Well-designed algorithm makes debugging easy so that we can identify logical error
in the program.
3. Easy and Efficient Coding: An algorithm acts as a blueprint of a program and helps during program
development.
4. Independent of Programming Language: An algorithm is independent of programming languages and
can be easily coded using any high level language.
Disadvantages of Algorithm
An algorithm has following disadvantages:
1. Developing algorithm for complex problems would be time consuming and difficult to understand.
2. Understanding complex logic through algorithms can be very difficult.

Representation of Algorithms
Using algorithmic thinking skills, software designers or programmers analyse the problem and identify the
logical steps that need to be followed to reach a solution. Once the steps are identified, the need is to write
down these steps along with the required input and desired output. There are two common methods of
representing an algorithm — flowchart and pseudocode.
Either of the methods can be used to represent an algorithm while keeping in mind the following:
 It showcases the logic of the problem solution, excluding any implementation details
 It clearly reveals the flow of control during execution of the program

3. MEANS-ENDS ANALYSIS
This was recognised as a general problem solving heuristic which involves a search for operations that will
reduce the difference between present state of knowledge and the goal state. In particular, means-end
analysis involves the following steps:
 Set up a goal
 Look for a difference between the current problem state and the goal state.
 Look for a method to decrease or eliminate the difference between the two stages.
 Set as a sub goal which is the application of that method.
 If necessary apply means- ends analysis to apply to the sub goal.
Thus, the main heuristic used in GPS involves setting up goals and sub goals. In fact, this strategy can be
expressed very precisely as a production system, that is, as a set of if – then pairs stored in the computer’s
memory as production.
An illustrative geometric problem:
The problem is that ABCD is a rectangle; prove that AD and BC are same length

Steps in problem solving:


 Represent the problem as a proposition or in visual form
 Determine the goal.
 Break down the goal into sub goals.
 Select a problem solving technique
Solution is:
It can thus be proven that triangles ACD and BDC are congruent if one could prove that two sides included
angles are equal. (We reason from goal to sub goal, proving the triangles congruent, from the sub goal to
another sub goal improving the sides and angle equal), and so on, until we reach a sub goal that we have
a ready means of obtaining).

4. BRAINSTORMING
Brainstorming is a method used by individuals or groups to generate multiple inventive ideas or
solutions for a particular issue or subject. The whole concept is based on a cooperative effort and an
approach that prompts a person and a team member to think freely, articulating any thoughts you have
without restriction.
This process aims to build a creative and encouraging atmosphere, where everyone within a company can
expand each another's ideas to collaboratively come to creative solutions.
Brainstorming is a method used by individuals or groups to generate innovative ideas or solutions for a
specific issue. It encourages free thinking and unrestricted sharing of thoughts, promoting a creative and
collaborative atmosphere. Yet, at the end of the day, brainstorming is only part of problem-solving; they
aren’t the same thing and here are three reasons why:
1. Brainstorm focuses on generating ideas, while problem-solving involves analyzing and implementing
solutions.
2. Brainstorming is informal and spontaneous, encouraging creativity and diverse opinions, whereas
problem-solving follows a systematic and structured method whereby the outcome is a solution.
3. Brainstorming produces multiple ideas, while problem-solving simply seeks one practical and effective
solution.
Brainstorming techniques
Team Relay
Team Relay involves working together in small groups to share ideas. It’s just like a relay race; instead of
passing on the baton, you pass and build on ideas. Everyone takes turns to put their two cents in, and the
ideas continue to evolve within the group. This helps you to work with your team members and come up
with lots of creative ideas. Team Relay is best for teams of about 12 participants, and this method helps
you find new ideas by bouncing off what the team says. You can identify and initiate new projects by
working as a cohesive team, capitalizing on every idea collectively and elevating your thinking power to
new heights. If you want to kick things off with the Team Relay method.
Reverse Brainstorming
Reverse brainstorming is a technique where, instead of generating ideas to solve a problem, you focus
on creating ideas that will make the problem worse or that will cause the problem. In other words, you’ll
turn the problem upside down to define the worst-case scenario. So, how does this help solve the
problem?
This excellent brainstorming tool can be used with a team at the start of a project or when stucked at a
crossroads with a problem. It helps you think outside the box and unleash your imagination.
Focus group
A focus group is a small group of people (about 6 to 12 participants) who have been selected to meet up
and talk or share ideas about a specific problem (strategic development, marketing positioning, etc.).
This selected team works together to generate thoughts and suggestions to help solve the problem or
develop new ideas. You can either conduct a qualitative survey on a concept, product, or service.
Crazy 8
Crazy 8 is a fast-paced, dynamic technique. This is a unique strategy that allows brainstorming among a
team with a key element… speed! While some brainstorming techniques could simply waste time and drum
up an excessive volume of sub-par or irrelevant ideas, this method is all about eyes on the prize, full steam
ahead.
1-2-4-All
The 1-2-4-All method is like regular brainstorming but in several steps:
 First, everyone thinks on their own;
 Then, they share their ideas in bigger groups (in pairs, then in groups of 4, and then with
everyone).
The Rules of Brainstorming The following criteria are essential to the idea-generation phase of a
brainstorming session.
1. There is no criticism, evaluation, judgment, or defense of ideas during the brainstorming session.
The purpose of brainstorming is to generate as many ideas related to the topic as possible in the
time allowed. Evaluation, judgment, and selection of ideas are the purposes of subsequent
sessions.
2. Free wheeling and free association is encouraged. Group members are asked to voice any solutions
they can think of, no matter how outrageous or impractical they seem. There is no limit on “wild”
or “far-fetched” ideas. Every idea is to be expressed. It is easier to tone down an idea and to select
out later than it is to think up new and creative possibilities.
3. Quantity is more desired than quality. Group members are encouraged to contribute as many ideas
as they think of. The greater the number of ideas generated, the more likely it is that there will be
several useful ideas.
4. Building on ideas is encouraged. Combining, adding to, and “piggybacking” on ideas is part of the
creative process. Members can suggest improvements, variations, or combinations of previous
ideas.

5. HYPOTHESIS TESTING
Hypothesis testing or significance testing is a method for testing a claim or hypothesis about a parameter
in a population, using data measured in a sample. In this method, we test some hypothesis by determining
the likelihood that a sample statistic could have been selected, if the hypothesis regarding the population
parameter were true.
Hypothesis testing is a powerful tool for analytical thinking and problem-solving. It helps you to identify
and test possible explanations for a problem, using evidence and logic. Hypothesis testing to determine the
most likely cause of a problem can be carried out following these steps:
1 Define the problem
The first step is to clearly define the problem to be solved, its scope and impact. One should also gather
relevant data and information about the problem, such as its frequency, severity, duration, and location. A
well-defined problem will help to narrow down the potential causes and focus on hypothesis testing.
The first step in hypothesis testing is to define a problem in terms of the claim being made about a
population parameter. The claim is stated as the null hypothesis (H0), which is a specific value or a
particular mathematical statement about a population parameter, stated as if it were true, even though it
may not be.
2 Generate hypotheses
The next step is to generate hypotheses, or tentative assumptions, about the possible causes of the
problem. One can use different techniques to generate hypotheses, such as brainstorming, root cause
analysis, fishbone diagrams, or the 5 whys. As many hypotheses as possible should be generated, without
judging or rejecting them at this stage.
3 Prioritize hypotheses
The third step is to prioritize the hypotheses, based on their plausibility and testability, one should rank the
hypotheses according to how likely they are to explain the problem, and how easy they are to test with
data and evidence. Matrix or a scoring system could be use to prioritize the hypotheses, and eliminate the
ones that are too improbable or impractical.
4 Test hypotheses
The fourth step is to test the hypotheses, using data and evidence to support or reject them. One should
design and conduct experiments or analyses that can measure the effect of each hypothesis on the
problem. One should also define the criteria for accepting or rejecting a hypothesis, such as a significance
level, a confidence interval, or a p-value.
5 Evaluate results
The fifth step is to evaluate the results of the hypothesis testing, and draw conclusions about the most
likely cause of the problem. You should compare the results of the different hypotheses, and see which
one has the strongest or most consistent evidence. You should also consider the limitations and
assumptions of your hypothesis testing, and check for any errors or biases.
6 Communicate findings
The final step is to communicate your findings and recommendations, based on the hypothesis testing.
You should summarize the problem, the hypotheses, the methods, the results, and the conclusions in a
clear and concise way. You should also explain the implications and implications of your findings, and
suggest actions or solutions to address the problem

6. LITERAL THINKING
Literal thinking is the mental process of generating ideas and solving problems by looking at a situation or
problem from a unique perspective. It is the ability to think creatively or ”outside the box”
Literal thinking involves breaking away from traditional modes of thinking and discarding established
patterns and preconceived notions. This method of problems solving provides a deliberate, systematic
process that resulting in innovative thinking. By using these unconventional thinking techniques, it enables
one to find creative solution that may otherwise not be considered.
Techniques of literal thinking:
1. Alternatives: this is about using concepts as a breeding ground for new ideas. Concepts are general
theories or way of doing things. By thing of a variety of way to implement a concept is one way to
generate ideas. One can then further assessed each specific idea to generate additional concepts.
Establishing a new concept creates a whole new way of generating more ideas.
2. Focus: this is about learning when and how to change focus to improve creative efforts. Focusing on
areas that other people have not bothered to think about.
3. Challenge: is about breaking free from the limits of traditional thinking and the accepted ways of
doing things. It is based on the assumption that there may be a different and better ways to do
something even if there is no apparent problem with the current way.
4. Random Entry: is about using unconnected input to open up new lines of thinking. This technique
draws ones mind to find connections between seemingly unrelated things. With this technique one can
use a randomly chosen word, picture, sound or other stimulus to open new lines of thinking.
5. Provocation and Movement: is about provoking thoughts and using them to build new ideas. It is a
process that enables thinking outside the box in order to get a compelling list of innovative ideas to
consider.
6. Harvesting: it involves selecting specific ideas that seem practical and have the most value then
reshaping them into practical solutions. It is about turning starter ideas into workable ideas. The
technique is done towards the end of a thinking session in order to select ideas that may prove to be
valuable in the current situation or in the future. It helps in identifying ideas that could be
implemented right away as well as those that may need more work.
7. Treatment of ideas: involves shaping and strengthening ideas so the best fit a given situation. The
treatment techniques are bet for working with starter ideas to make them more specific and practical
for a given solution.

7. MORPHOLOGICAL ANALYSIS
Morphological analysis is breaking a seemingly complex thing into different fundamental units, eliminating
inconsistencies, and then creating a link between the remaining units to solve a problem.
Morphological analysis was invented by Fritz Zwicky, a Swedish astrophysicist who used morphological
analysis to solve a lot of incoherent aerospace and astronomical problems. He used it to develop jet and
rocket propulsion systems in classifying astrophysical objects and other complex aspects like the legal
aspect of colonizing space.
If you are someone who has dismantled toys in childhood, this method is for you. You will get a chance to
dismantle products/processes without physically dismantling them. And the fun is going to be almost the
same.
General Morphological Analysis over Mathematical Modeling
In crooked problems with multiple governing factors, a mathematical model that breaks the problem into
different components and drops trivial ones fails. The trivial components considered insignificant during
the analysis may become significant, and the model may collapse.
In contrast, General Morphological Analysis (GMA) is a sound method to deal with such non-quantifiable
problems. Every problem component gets considered and thoroughly investigated without putting it in the
bracket of insignificant. In essence, GMA turns a mess into structured problems.

Applications of General Morphological Analysis


The applications of GMA are far wider. Morphological analysis could be used from engineering design to
policy analysis, from product design to scenario development. When used as a brainstorming technique, it
could help in the idea generation phase and can help in new patent ideas, product ideas, and the like.
Zwicky used it to solve general problems of astronomy — Observation of celestial phenomena, designing a
new telescope, and engineering design to develop propulsion systems. Recently, researchers have been
found using the method in organization design and transformation and scenario modeling.
How to Perform Morphological Analysis?
We can divide the complete morphological analysis into four different steps, which are as follows:
i. Problem (identifying and defining the parameters)
The morphological analysis investigates all possible parameters, a wicked problem. Hence, the first step is
defining the problem clearly and concisely and breaking it down into different parameters and the possible
values of those parameters.
ii. Constructing the Zwicky Box
The next step involves the construction of an n-dimensional matrix. The number of columns in the matrix
equals the number of parameters of a wicked problem. Cells under each column contain the value of a
parameter.
For example, consider a publisher contemplating various parameters before publishing a book. His problem
complex has five parameters: bind type, cover type, size, paper color, and interior, which have 3,3,2,2,2
values respectively. This will lead to a Zwicky box of the below type having 3*3*2*2*2=72 cells, each with
five parameters — one value from each column. For example, Saddle Stitch, digest, hardcover, colored,
cream.
iii. Cross Consistency Assessment
This is the vital step of the GMA. CCA helps you reduce inconsistent pairs of combinations in a Zwicky Box.
For example, in our case, the combinations where colored and paperbacks appear together and spiral and
paperback appear together could be nixed from the final set of analyses. CCA can reduce a Zwicky Box to
90%, or even in some problem complexes, to 99%. In essence, CCA acts as a garbage detector in a
Zwicky Box.
There are three principal types of inconsistencies involved in the cross-consistency assessment: purely
logical contradictions (i.e., “contradictions in terms”); empirical constraints (i.e., relationships judged to be
highly improbable or implausible on practical, empirical grounds), and normative constraints (although
these must be used with great care, and clearly designated as such).
iv. Input/Output
After you have reduced the Zwicky Box to consistent combinations, you move ahead with the final step of
the analysis, where you lock a particular variable(input) under a parameter and find the number of existing
combinations.

For example, in our problem, we locked the paperback and asked Zwicky Box to help us find possible
combinations. The blue cells are corresponding outputs. You can even have multiple inputs. For example,
in Zwicky Box (2), we locked Paperback, white.

8. RESEARCH
Research is a process to discover new knowledge to find answers to a question. The word research has
two parts re (again) and search (find) which denote that we are taking up an activity to look into an aspect
once again or we want to look for some new information about something.
Clifford Woody states that research comprises defining and redefining problems, formulation of hypothesis;
collection, organizing and evaluation of data; and reaching conclusions. Here it is emphasized that
research has to be systematic and logical to arrive at expected outcome
It is systematic observation of processes to find better ways to do things and to reduce the effort being
put in to achieve an objective and identifying the validity of the targets.
Research is a powerful tool for problem solving, whether you are facing a personal, professional, or social
challenge.

Researching steps to solve problems.


i. Identify the problem
The first step is to clearly define the problem you want to solve. What is the main issue, question, or goal
you have? Who is affected by the problem and how? What are the causes and consequences of the
problem? What are the criteria and constraints for a successful solution? By identifying the problem, you
can narrow down your focus and scope of research.
ii Gather information
The next step is to gather relevant and reliable information about the problem. You can use various
sources and methods of research, such as books, articles, reports, surveys, interviews, observations,
experiments, or data analysis. You should evaluate the quality, credibility, and accuracy of the information
you find, and cite your sources properly. You should also organize and synthesize the information in a way
that helps you understand the problem better.
iii Generate alternatives
The third step is to generate possible solutions or alternatives based on the information you have
collected. You can use creative thinking techniques, such as brainstorming, mind mapping, or SCAMPER, to
come up with different ideas and perspectives. You should not judge or dismiss any idea at this stage, but
rather try to expand your options and explore different possibilities.
iv. Evaluate Alternatives
The fourth step is to evaluate the pros and cons of each alternative and compare them to the criteria and
constraints you have set for the problem. You can use analytical thinking techniques, such as SWOT
analysis, decision matrix, or cost-benefit analysis, to weigh the advantages and disadvantages of each
option and rank them according to their feasibility, effectiveness, and desirability.
v Choose and implement a solution
The fifth step is to choose the best solution or combination of solutions based on your evaluation and
judgment. You should also plan how to implement the solution, considering the resources, time, and steps
required. You should communicate your solution clearly and persuasively to the stakeholders involved and
get their feedback and support.
vi Monitor and review the outcome
The final step is to monitor and review the outcome of your solution and assess its impact and results. You
should measure the indicators and criteria you have established for the problem and see if they are met or
exceeded. You should also identify any unexpected effects or problems that arise from your solution and
make adjustments or improvements if needed.

9. DIVIDE AND CONQUER


Divide and Conquer is a problem-solving strategy that involves breaking down a complex problem into
smaller, more manageable parts, solving each part individually, and then combining the solutions to
solve the original problem. It is a widely used algorithmic technique in computer science and
mathematics.
The name "divide and conquer" is sometimes applied to algorithms that reduce each problem to only one
sub-problem, such as the binary search algorithm for finding a record in a sorted list (or its analogue
in numerical computing, the bisection algorithm for root finding) These algorithms can be implemented
more efficiently than general divide-and-conquer algorithms; in particular, if they use tail recursion, they
can be converted into simple loops. Under this broad definition, however, every algorithm that uses
recursion or loops could be regarded as a "divide-and-conquer algorithm". Therefore, some authors
consider that the name "divide and conquer" should be used only when each problem may generate two
or more sub-problems. The name decrease and conquer has been proposed instead for the single-
subproblem class
Example: In the Merge Sort algorithm, the “Divide and Conquer” strategy is used to sort a list of
elements. The image below illustrates the dividing and merging states to sort the array using Merge
Sort.
What are Divide and Conquer Algorithms? (And no, it's not "Divide and Concur")
Divide and Conquer is an algorithmic paradigm (sometimes mistakenly called "Divide and Concur" - a
funny and apt name), similar to Greedy and Dynamic Programming. A typical Divide and Conquer
algorithm solves a problem using the following three steps.
1. Divide: Break the given problem into smaller sub-problems of same type. Sub-problems should
represent a part of the original problem. This step generally takes a recursive approach to divide the
problem until no sub-problem is further divisible. At this stage, sub-problems become atomic in nature
but still represent some part of the actual problem.
2. Conquer: Recursively solve these sub-problems. This step receives a lot of smaller sub-problems to be
solved. Generally, at this level, the problems are considered 'solved' on their own.
3. Combine: Appropriately combine the answers. When the smaller sub-problems are solved, this stage
recursively combines them until they formulate a solution of the original problem. This algorithmic
approach works recursively and conquer & merge steps works so close that they appear as one.
This method usually allows us to reduce the time complexity by a large extent.
For example, Bubble Sort uses a complexity of O (n^2), whereas quicksort (an application Of Divide
And Conquer) reduces the time complexity to O(nlog(n)). Linear Search has time complexity O(n),
whereas Binary Search (an application Of Divide And Conquer) reduces time complexity to O(log(n)).

Following are some standard algorithms that are of the Divide and Conquer algorithms variety.
i. Binary Search is a searching algorithm. In each step, the algorithm compares the input element (x)
with the value of the middle element in array. If the values match, return the index of middle.
Otherwise, if x is less than the middle element, then the algorithm recurs to the left side of the
middle element, else it recurs to the right side of the middle element.
ii. Quicksort is a sorting algorithm. The algorithm picks a pivot element, rearranges the array elements
in such a way that all elements smaller than the picked pivot element move to the left side of the
pivot, and all greater elements move to the right side. Finally, the algorithm recursively sorts the sub-
arrays on left and right of pivot element.
iii. Merge Sort is also a sorting algorithm. The algorithm divides the array into two halves, recursively
sorts them, and finally merges the two sorted halves. The time complexity of this algorithm
is O(nLogn), be it best case, average case or worst case. It's time complexity can be easily
understood from the recurrence equates to: T(n) = 2T(n/2) + n.
iv. Closest Pair of Points The problem is to find the closest pair of points in a set of points in x-y plane.
The problem can be solved in O(n^2) time by calculating distances of every pair of points and
comparing the distances to find the minimum. The Divide and Conquer algorithm solves the problem
in O(nLogn) time.
v. Strassen’s Algorithm is an efficient algorithm to multiply two matrices. A simple method to multiply
two matrices need 3 nested loops and is O(n^3). Strassen’s algorithm multiplies two matrices
in O(n^2.8974) time.
vi. Cooley–Tukey Fast Fourier Transform (FFT) algorithm is the most common algorithm for FFT. It is a
divide and conquer algorithm which works in O(nlogn) time.
vii. The Karatsuba algorithm was the first multiplication algorithm asymptotically faster than the
quadratic "grade school" algorithm. It reduces the multiplication of two n-digit numbers to at most to
n^1.585 (which is approximation of log of 3 in base 2) single digit products. It is therefore faster
than the classical algorithm, which requires n^2 single-digit products.

10. METHOD OF FOCAL OBJECTS (MFO)


The technique of focal object for problem solving involves synthesizing the seemingly non-matching
characteristics of different objects into something new.
Main functions
1. Applied for the purpose of improving existing objects and creating their new, unusual modifications.
2. Serves as a means of entering into a creative state and developing imagination and associative, non-
standard thinking
Methodological and theoretical grounds
1. The principle of the universal connection of all things and events.
2. Understanding creativity as a combination of existing objects and its features.
3. Creative potential of associative search and heuristic properties of randomness.
The Essence of the method
The essence of the Method of Focal Objects is to put the object that is improved in the focus of attention
and transfer to it the new properties of randomly selected objects. New combinations are developed using
the method of free associations. Selected unusual combinations can lead to productive ideas to perfect the
focal object.
Procedure and steps
Step 1. Select the object focal point for improvement
Step 2. Select 3-5 random objects (nouns), opening at random encyclopedia, dictionary, book or
newspaper. Preference is given to words from areas as far from the focal object.
Step 3. To write out for each of the random objects several (5-7) characteristic, unique
properties, functions and attributes (adjectives).
Step 4. Transfer the obtained properties and attributes of the selected object to the object focal point
and record new combinations.
Step 5. Develop each of the obtained combinations through the free associations and record all emerging
interesting ideas.
Step 6. Evaluate new ideas and select the most effective from the point of view of novelty, originality,
efficiency and feasibility.
Advantages
1. Universality of the method, invariance for solving a wide range of tasks from object improvement, to
writing articles.
2. Simplicity and ease of use and mastering of technique.
3. The method is an effective way of developing imagination and associative, non-standard thinking.
Disadvantages and Restrictions
1. This method is ineffective in solving complex problems.
2. The method does not disclose the origin and essence of the problem, and does not guarantee the
obtaining strong solutions.
3. In this method there are no rules and criteria for selecting and evaluating the ideas received.

You might also like