Problem Solving
Problem Solving
It is widely recognized that Problem-Solving is a creative process which largely defines systematization and mechanization. This may not sound very encouraging to problem solver. To balance this, most people, during their schooling, acquire at least a modest set of problem-solving skills which they may or may not be aware of. Even if one is not naturally skilled at problem-solving, there are a number of steps that can be taken to raise the level of one's performance. It is not implied or intended that the suggestions in that follows are in any way a recipe for problem-solving. The plain fact of the matter is that there is no universal method. Different strategies appear to work for different people. Within this context, where can we begin to say anything useful about computer problem solving? We must start from the premise that computer problem solving is about understanding and applying logic. Success in solving any problem is only possible after we have made the effort to understand the problem at hand. We cannot hope to make useful progress in solving a problem until we fully understand what it is we are trying to solve. This preliminary investigation may be thought of as the problem definition phase. In other words, what we must do during this phase is work out what must be done rather than how to do it. That is, we must try to extract from the problem statement (which is often quite imprecise and maybe even ambiguous) a set of precisely defined tasks. Inexperienced problemsolvers too often gallop ahead with how they are going to solve the problem only to find that they are either solving the wrong problem or they are solving just a very special case of what is actually required. In short, a lot of care should be taken in working out precisely what must be done. To be an effective problem solver, the primary thing that you should try to achieve is to sharpen your logic of identifying and classifying the type of problem that you are facing.
Problems can be classified into different groups, to be more precise they can be divided into four different groups. They are as follows:
a. b. c. d.
Question based problem These type of problems involve a question that needs a solution or an answer. Often it is difficult and needs skill and effort to derive the answer as you may not have access to all the relevant data and facts to make a perfect decision. An example: Should the government help people who are retrenched? Obviously this question asks for further data such as how many people have been retrenched? Is it a problem that the government should handle? Why and how should they help them? Question-based problems usually involve a long term plan of action and one which requires you to dig for more information and data to help you find a solution to it. The situation also provides you a chance to dig deeper into the status quo that you are in and to see how you could improve your current state to the ideal state that you desire. If you come across with this type of problem, you need to work towards getting as much facts and data as possible that will allow you to at least try to minimize the problem and make an informed decision.
Convincing based problem This type of problems put you in a situation whereby you might have information that others don't and a need to convince the others that they should think or perceive things your way. For example, how do you persuade your colleagues that they should not be coming late for their appointments and meetings always? There may be a certain amount of sensitivity in such problems as the status quo that you are in is not an ideal state and might give rise to other problems if you do not handle it well enough. Convincing based problems require you to be empathetic to the others' feelings and to exercise a certain degree of emotional connectivity with others so that they can be convinced.
Introduction
The Life cycle of problem solving is an iterative approach that involves the following steps
What data or information we know about the situation/problem? What are our assumptions?
What is the level of knowledge of the person for whom were trying to solve the problem? What can or do they understand? What we do not know yet about the whole situation/problem?
c. Brainstorm ideas
List all possible ideas to solve the problem. No value judgment is to be passed on any suggestions. The more the ideas, the better.
d. Prioritize ideas
Establish the pros and cons of each suggestion in step c. Rank the suggested ideas from step c according to set criteria.
According to the top solution ranked in step d, what are the steps/instructions that should be taken? According to the knowledge base established in step b, will these steps/instructions be understood?
After following the steps in step e, Do we have the desired results? Rank the suggested ideas from step c according to set criteria. Which are few of the areas that are not correct/satisfactory?
So, what is logic? We may give the definition of logic as the study of the principles of correct reasoning. In general, there are two types of logic: Informal and Formal logic. Sometimes, a distinction is made between informal logic and formal logic. The term "informal logic" is often used to mean the same as careful thinking or critical thinking. Often it is used to refer to the study of reasoning and fallacies in the context of everyday life. "Formal Logic" mainly deals with formal systems of logic. These are specially built systems for carrying out evidences, where the languages and rules of reasoning are carefully and precisely defined. Sentential Logic (also known as "Propositional Logic") and Predicate Logic are both examples of formal systems of logic. There are many reasons for studying formal logic. One is that formal logic guides or helps us identify patterns of good reasoning and patterns of bad reasoning, so we can judge and identify which to follow and which to avoid. This is why learning basic formal logic can help improve critical thinking. Linguists use Formal systems of logic to study natural languages. Formal systems of logic are used by Computer scientists in research relating to Artificial Intelligence. Finally, formal logic is also used by many philosophers when dealing with complicated philosophical problems to justify their reasoning more clearly.
Definitions:
Statement (propositions): A statement or proposition, is any declarative sentence which is either true (T) or false (F) but not both. We refer to 'T' or 'F' as the truth value of the statement. The sentence "2+2 = 4" is a statement, since it can be either true or false, and here in our example it is a true statement, and its truth value is T. The sentence "1 = 0" is also a statement, and its truth value is F. "It will rain tomorrow" is not a proposition. We shall have to wait for tomorrow to know its truth value, "Solve the following equation for x" is not a statement, and it cannot be assigned any truth value whatsoever. (It is a command or an imperative, rather than a declarative sentence.) "The number 5" is not a statement or proposition, since it is not making any sense and it is not even a complete sentence. A truth table is a complete list of the possible truth values of a statement. We use "T" to mean "true", and "F" to mean "false" (though it may be clearer and quicker to use "1" and "0" respectively). For example, p is either false or true. So its truth table has 2 rows:
P TRUE False
T T F F
T F T F
T F F F
Logical disjunction is also an operation on two logical values. Typically the values of two statements, produces a value of false if and only if both of its operands are false. In general a disjunction is a logical formula that can have one or more literals separated only by ORs. A single literal is often considered to be a degenerate disjunction. Symbolic representation: p V q
T F T F
T T F F
T T T F
Logical bi-conditional is an operation, where for two propositions p and q, the biconditional statement p <-> q is true when either both p and q are true or false, and is false otherwise. Symbolic representation: p <-> q
Note:
If a compound statement has n distinct simple components, then it will have 2n rows in its truth table.
An argument is valid if and only if its corresponding conditional is a tautology. The validity of the statements can be confirmed by using other tests like truth tables. The main alternative test searches for a counter example or invalidating row: a possible universe (substitution instance) in which all the premises are true and the conclusion is false. If there are no counter examples, the argument is valid; if there is even one, it is invalid. Two statements are consistent if and only if their conjunction is not a contradiction. Two statements are logically equivalent if and only if their truth table columns are identical, if and only if the statement of their equivalence using "<->" is a tautology. Obviously truth tables are adequate to test validity, tautology, contradiction, contingency, consistency, and equivalence. This is important because truth tables require no ingenuity or insight, just patience and the mechanical application of rules. Truth tables that are accurately constructed will always give us the right answer.
ALGORITHMS
In the introduction, we have given an informal definition of an algorithm as "a set of instructions for solving a problem" and we illustrated this definition with instructions for filling petrol in a car and giving directions to a friend's house. Though we can understand these simple algorithms, they may be very ambiguous for a computer. For an algorithm to be applicable to a computer, it must have certain characteristics. We will state these characteristics in our formal definition of an algorithm. An algorithm is a well-ordered sequence of unambiguous and effectively computable instructions that when executed produces a result and halts in a finite amount of time With the above definition, we can list five important characteristics of algorithms. a. b. c. d. e. Algorithms are well-ordered Algorithms have unambiguous instructions Algorithms have effectively computable instructions Algorithms produce a result Algorithms halt in a finite amount of time The above five characteristics need a little more explanation, so we will look at each one in detail.