Problem Solving Techniques

Problem Solving Techniques

Let’s look at how to improve problem solving skills. A Problem Solving Structure has four phases is part of the problem solving process: First understand what the problem is. Second make a plan to resolve. Third carry out the plan and Last and final look back and verify.

आइए नजर डालते हैं कि समस्या सुलझाने के कौशल को कैसे बेहतर बनाया जाए। एक समस्या को हल करने की संरचना में चार चरण हैं जो समस्या को हल करने की प्रक्रिया का हिस्सा है: पहले समझें कि समस्या क्या है। दूसरा हल करने के लिए एक योजना बनाएं। तीसरा योजना को अंजाम देता है और अंतिम और अंतिम रूप वापस देखता है और सत्यापित करता है।

What can we do? Once you’ve identified the problem, you need to look at that problem from different angles. Try to gather facts related to the problem, and try to recall previous solutions that would apply.

हम क्या कर सकते है? एक बार जब आप समस्या की पहचान कर लेते हैं, तो आपको उस समस्या को विभिन्न एंगल से देखना होगा। समस्या से संबंधित तथ्यों को इकट्ठा करने की कोशिश करें, और पिछले समाधानों को याद करने की कोशिश करें जो लागू होंगे।

What should you look for? Look for ideas that can help find a solution. Even ideas that are incomplete should be considered. There’s no single method that solves all problems.

आप को क्या देखना चाहिए? उन विचारों की तलाश करें जो एक समाधान खोजने में मदद कर सकते हैं। जो विचार अपूर्ण हैं, उन पर भी विचार किया जाना चाहिए। सभी समस्याओं को हल करने वाला कोई एकल तरीका नहीं है।

  • Think about whether you’ve seen the same problem or a similar problem in the past.

इस बारे में सोचें कि क्या आपने वही समस्या या अतीत में इसी तरह की समस्या देखी है।

  • Analyze the relationship between data and conditions.

डेटा और स्थितियों के बीच संबंध का विश्लेषण करें।

  • Then determine what facts you know apply.

फिर निर्धारित करें कि आप किन तथ्यों को लागू करते हैं।

  • Create a list of goals. लक्ष्यों की एक सूची बनाएँ।

  • Determine whether you’ve used all your hypotheses and what the outcome might be.

निर्धारित करें कि क्या आपने अपनी सभी परिकल्पनाओं का उपयोग किया है और परिणाम क्या हो सकते हैं।

  • Divide the problems into separate cases. समस्याओं को अलग-अलग मामलों में विभाजित करें।

  • Determine proof via contradiction. विरोधाभास के माध्यम से प्रमाण निर्धारित करें।

  • Transform the problem and then reinstate.

समस्या को रूपांतरित करें और फिर से बहाल करें।

  • Work backwards starting with the conclusion.

निष्कर्ष के साथ काम करना शुरू करें।

Simplify the Problem:

Take advantage of any symmetry, which generally exist. Your first solution may not work and that’s okay done. Don’t become discouraged. Instead try a different approach.

समस्या को सरल बनाएं: किसी भी समरूपता का लाभ उठाएं, जो आम तौर पर मौजूद है। आपका पहला समाधान काम नहीं कर सकता है और यह ठीक है। निराश न हों। इसके बजाय एक अलग दृष्टिकोण का प्रयास करें। Problem Solving Skills – समस्या हल करने के स्किल

Example #1

  1. Evaluate the problem – Sales need to be increased by 20%.

समस्या का मूल्यांकन करें – बिक्री को 20% तक बढ़ाना होगा।

  1. Identify solutions – सॉल्यूशन की पहचान करें

  • Increase the markup – मार्कअप बढ़ाएं। – Increase the number of items offered for sale

  • बिक्री के लिए दी जाने वाली वस्तुओं की संख्या बढ़ाएँ।

  • Decrease the cost of goods – माल की लागत घटाएं।

  1. Select the best solution – Increase the markup

सबसे अच्छा सॉल्यूशन चुनें – मार्कअप बढ़ाएं।

  1. Test and review – Look at how the solution you chose is working and determine whether that

was the right solution. When the answer is yes, carry on with your decision. When the answer is no, try another solution.

परीक्षण और समीक्षा- देखें कि आपके द्वारा चुना गया सॉल्यूशन कैसे काम कर रहा है और यह निर्धारित करें कि क्या यह सही सॉल्यूशन था। जब जवाब हां में हो, तो अपने निर्णय पर चलें। जब जवाब न हो, तो दूसरा उपाय आजमाएं।

Types of Algorithms 
एल्गोरिदम के प्रकार

Despite the complexity of algorithms, we can generally divide algorithms into following types based on their function.

एल्गोरिदम की जटिलता के बावजूद, हम आम तौर पर एल्गोरिदम को उनके कार्य के आधार पर निम्नलिखित प्रकारों में विभाजित कर सकते हैं।

  • Brute force algorithm: Brute force implies using the definition to solve the problem in a

straightforward manner. Brute force algorithms are usually the easiest to implement, but the disadvantage of solving a problem by brute force is that it is usually very slow and can be applied only to problems where input size is small.

ब्रूट फोर्स एल्गोरिदम: ब्रूट फोर्स परिभाषा का उपयोग करके समस्या को सीधे तरीके से हल करने के लिए करता है। ब्रूट फोर्स एल्गोरिदम आमतौर पर लागू करने के लिए सबसे आसान है, लेकिन ब्रूट फोर्स द्वारा एक समस्या को हल करने का नुकसान यह है कि यह आमतौर पर बहुत धीमा है और केवल उन समस्याओं पर लागू किया जा सकता है जहां इनपुट आकार छोटा है।

  • Divide and conquer algorithm: In this method, we divide the size of a problem by a constant factor in each step. This means we have to process lesser and lesser part of the original problem in each step. Divide and conquer algorithms have logarithmic runtime.

विभाजित एंड कॉनक्योर एल्गोरिदम : इस पद्धति में, हम प्रत्येक चरण में एक स्थिर कारक द्वारा एक समस्या के आकार को विभाजित करते हैं। इसका मतलब है कि हमें प्रत्येक चरण में मूल समस्या के कम और कम हिस्से को प्रोसेस करना होगा। डिवाइड और कॉनक्योर एल्गोरिदम में लॉग अरिथमेटिक रनटाइम होता है।

  • Decrease and conquer algorithm: This kind of problem is same as divide and conquer, except, here we are decreasing the problem in each step by a constant size instead of constant factor.

डीक्रीज एंड कॉनक्योर एल्गोरिदम : इस तरह की समस्या को विभाजित करना और जीतना एक ही है, सिवाय इसके, यहाँ हम प्रत्येक चरण में निरंतर कारक के बजाय समस्या को कम कर रहे हैं।

  • Dynamic programming algorithm: The word ‘dynamic’ refers to the method in which the algorithm computes the result means sometimes, a solution to the given instance of problem depends on the solution to smaller instance of sub-problems. It exhibits the property of overlapping sub-problems. Hence, to solve a problem we may have to re-compute same values again and again for smaller sub-problems. Hence, computing cycles are wasted. In this case, we can use dynamic programming technique. Basically, in dynamic programming, we “remember”

the result of each sub-problem. Whenever we need it, we will use that value instead of recomputing it again and again.

डायनेमिक प्रोग्रामिंग: “डायनामिक’ शब्द उस विधि को संदर्भित करता है जिसमें एल्गोरिदम परिणाम की गणना कभी-कभी करता है, समस्या के दिए गए उदाहरण का समाधान उप–समस्याओं के छोटे उदाहरण के समाधान पर निर्भर करता है। यह अति-उप-समस्याओं की प्रॉपर्टीज को प्रदर्शित करता है। इसलिए, एक समस्या को हल करने के लिए हमें छोटी-छोटी उप-समस्याओं के लिए बार-बार समान मूल्यों की पुनः गणना करनी पड़ सकती है। इसलिए, कंप्यूटिंग चक्र बर्बाद हो जाते हैं। इस मामले में, हम डायनेमिक प्रोग्रामिंग तकनीक का उपयोग कर सकते हैं। मूल रूप से डायनेमिक प्रोग्रामिंग में, हम प्रत्येक उप-समस्या का परिणाम “रिमेम्बर” करते हैं। जब भी हमें इसकी आवश्यकता होती है, हम बार-बार पुनः गणना करने के बजाय उस वैल्यू का उपयोग करेंगे।

  • Greedy algorithm: In a greedy algorithm, in each step, we will make a locally optimum solution such that it will lead to a globally optimal solution. Once a choice is made, we cannot retract it in later stages. Proving the correctness of a greedy algorithm is very important, since not all greedy algorithms lead to globally optimum solution. Means for many problems, making greedy choices leads to an optimal solution. These algorithms are applicable to optimization problems.

ग्रिडी एल्गोरिदमः एक ग्रिडी एल्गोरिदम में, प्रत्येक चरण में, हम एक स्थानीय रूप से इष्टतम समाधान करेंगे जैसे कि यह विश्व स्तर पर इष्टतम समाधान का नेतृत्व करेगा। एक बार चयन हो जाने के बाद, हम इसे बाद के चरणों में वापस नहीं ले सकते। ग्रिडी एल्गोरिदम की शुद्धता साबित करना बहुत महत्वपूर्ण है, क्योंकि सभी ग्रिडी एल्गोरिदम ग्लोबल स्तर पर इष्टतम समाधान की ओर नहीं ले जाते हैं। साधन कई समस्याओं के लिए, ग्रिडी विकल्प बनाने से एक इष्टतम समाधान होता है। ये एल्गोरिदम अनुकूलन समस्याओं के लिए लागू होते हैं।

  • Transform and conquer: Sometimes it is very hard or not as apparent as to how to arrive at a solution for a particular problem. In this case, it is easier to transform the problem into something that we recognize, and then try to solve that problem to arrive at the solution.

ट्रांसफार्म और कॉनक्योर: कभी-कभी यह बहुत कठिन होता है या स्पष्ट नहीं होता कि किसी विशेष समस्या के समाधान के लिए कैसे पहुंचे। इस मामले में, समस्या को किसी ऐसी चीज में बदलना आसान है जिसे हम पहचानते हैं, और फिर उस समस्या को हल करने की कोशिश करते हैं।

  • Backtracking algorithm: Backtracking approach is very similar to brute force approach. But the difference between backtracking and brute force is that, in brute force approach, we are generating every possible combination of solution and testing if it is a valid solution. Whereas, in backtracking, each time you generate a solution, you are testing if it satisfies all condition, and only then we continue generating subsequent solutions, else we will backtrack and go on a different path of finding solution

बैकट्रैकिंग एल्गोरिदमः बैकट्रैकिंग एप्रोच बहुत ज्यादा ब्रूट फोर्स एप्रोच के समान है। लेकिन बैकट्रैकिंग और ब्रूट फोर्स के बीच का अंतर यह है कि, ब्रूट फोर्स एप्रोच में, हम समाधान और परीक्षण के हर संभव संयोजन को उत्पन्न कर रहे हैं यदि यह एक वैध समाधान है। जबकि, बैकट्रैकिंग में, हर बार जब आप कोई समाधान उत्पन्न करते हैं, तो आप परीक्षण कर रहे हैं यदि यह सभी स्थिति को संतुष्ट करता है, और उसके बाद ही हम बाद के समाधानों को उत्पन्न करना जारी रखते हैं, अन्यथा हम बैकट्रैक करेंगे और समाधान खोजने के एक अलग रास्ते पर जाएंगे।

Some Examples of Algorithms:
एल्गोरिदम के कुछ उदाहरण

  • Exchanging values of two variables.

दो वैरियेबल के मूल्यों का आदान-प्रदान ।

Step 1: Start
Step 2: Input first number as A
Step 3: Input first number as B
Step 4: Set temp = A
Step 5: Set A = B
Step 6: Set B = temp
Step 7: Print A, B
Step 8: End

Summation of a set of numbers
संख्याओ के समूह का योग

Step 1: Start
Step 2: Set count=1 and sum=0
Step 3: Read value of count i.e., how many numbers of values to read
Step 4: Repeat the 1<=count
Read value of n
sum=sum+n
Step 5: Display value of sum
Step 6: Stop

Chapter wise Model Paper Link

About Me