You are on page 1of 2

In Chapter 11 we discussed problems that are solvable and some that are not.

What does the term solvable mean to you?


What does it mean to say that you solved a problem ?
Find examples of problems for which you believe there are no solutions. Why do y
ou believe these problems are unsolvable? What would it take for someone to con
vince you that a solution exists?

My notes for your eyes only:


============================
I downloaded the book in jpg format, means scanned pages from a
websites, but it does not offer me any search facility, so quite
difficult to search.
Anyway Chapter 11 is called "Theory of Computation", and it has a section called
"Complexity of Problems".
The section talks about a problem complexity in a pure mathematical way and it w
ould be not required
by the teacher for me to "just" cut and paste several lines from that section.
I think the teacher is asking us that after we read that chapter, in practical w
orld, what is our views on the
following questions:
What does the term solvable mean to you?
What does it mean to say that you solved a problem ?
Find examples of problems for which you believe there are no solutions.
Why do you believe these problems are unsolvable?
What would it take for someone to convince you that a solution exists?

Official Answer:
===============
In computer science, the problems of interest are those that are solvable by
machines. The solutions to these problems are formulated as algorithms. Thus the
complexity of a problem is determined by the properties of the algorithms that s
olve
that problem. More precisely, the complexity of the simplest algorithm for solvi
ng a
problem is considered to be the complexity of the problem itself.
Therefore, a problem is terms as simple if it has simple solutions, while a comp
lex problem
is charactersized by the fact that it has complex solutions. The complexity of a
problem determines
how solvable or unsolvable that particular problem is.
We have read in chapter 5 "Algorithms" about writing algorithms as an approach t
o solving a problem,
which then be converted into a computer language, compiled and executed to produ
ce a solution.
It is therefore imperative that more complex an algorith is, more likely difficu
lt to program.
What I understand from the chapter 11, is that even though we can write complex
algorithms (after all these are
written as psedo-codes), it is not always possible for a computer machine to tra
nsform a solution.
For example, an algorithm that has 10 instruction written as a solution to a pro
blem, does not directly
relate to 10 steps from a machine point of view. Take for example a loop stateme
nt, we could write
while variable_A is true
loop
instruction 1
...
end loop
These are few instructions but when transformed into a machine language may exec
ute for example 1 million times
until the condition is true. I have witnessed many issues while working with our
department developers that the
programs they write is UAT'd, tested many times, signed-off from business lines,
yet out of the blue, it started
to loop in production when met with a certain condition(s). Ofcourse almost in a
ll case, this is due to an oversign by the developers in missing out a what-if a
nalysis for that particular case. Hence these were all examples of solvable prob
lems.
To be honest, there is always a solution exist to a problem in the business worl
d, however due to certain factors we are unable to proceed with the solution.
These factors could be time-based, space-based, meaning the time it would take t
o find a soltion or space required
to execute the solution (sort in memory or disk) would not justify our business
users to wait all this time.
Solution to such problems lies in re-visiting business requirements.
Having said above, I do understand that chapter 11 talks about NP(Nondeterminist
ic Polynomial time) problems.
This is a class of problems which doesn't have any know efficient solution, mean
ing an algorithm which computes the result in polynomial time. The intriguing th
ing with the class of NP problems is that no-one has been able to show that any
algorithm for solving them must take exponential time. It's perhaps the biggest
unsolved question in computer science.
I consider there is a big there's a big difference between unsolvable problems a
nd problems that are difficult to solve.
I know that sounds obvious, but a lot of people label hard problems (such as tra
veling salesman) as unsolvable when it's better to say that they're not solvable
efficiently, i.e., in polynomial time.
I would there be convinced to a solution given that the solution is optimal and
it satisfied my requirements
in the confined time and resources within our data center.
Reference:
Chapter 11 your book.

You might also like