Algorithm Design Techniques in DAA in Hindi
Algorithm Design Technique in Hindi
Algorithm के लिए एक right design technique को select करना एक Complex But, बहुत ही Important work है।
आप Programming के लिए किसी भी programming Language का Use करें लेकिन algorithm design techniques को सीखना important होता है. क्योंकि algorithm design technique सभी languages में काम में आता है।
कुछ मुख्य Algorithm Design Techniques निम्नलिखित हैं
- Divide and conquer
- Greedy Method
- Dynamic Programming
- Backtracking
- Branch & Bound
- Linear Programming
Divide and Conquer Algorithm Design Technique
divide and conquer एप्रोच में, एक problem को छोटे छोटे sub-problems में डिवाइड कर लिया जाता है. फिर उसके बाद इन sub-problems को एक एक करके solve किया जाता है और End में सभी solutions को combine करके main problem का solution Receive किया जाता है।
Divide and Conquer Algorithm में प्रत्येक level में निम्नलिखित तीन steps होते हैं:-
- Divide : Main problem को sub – problems में विभाजित किया जाता है.
- Conquer : sub – problems को एक एक करके solve किया जाता है.
- Combine : सभी sub – problems के solutions को एक साथ mixed कर main problem के solution को Retrieve किया जाता है।
divide and conquer approach को नीचे दिए गए algorithms में use किया जाता है
- Binary search
- Quick sort
- Merge sort
- Integer multiplication
- Matrix inversion
- Matrix multiplication
Greedy Method
Greedy method का उपयोग optimization problem ( अनुकूलन समस्या ) को हल करने के लिए किया जाता है. optimization problem वह होती है जिसमें हमें input values का एक set दिया जाता है, जिसे या तो Increase या Decrease करने की आवश्यकता होती है।
इस greedy method को Complex problems में apply करना बहुत ही Easy होता है. यह Decide करता है कौन सा step अगले step में सबसे सही solution प्रदान करेगा. इसे greedy इसलिए कहा जाता है क्योंकि यह हर step पर सबसे अच्छा solution Search करने की कोशिश करता है। इसमें पहले step को इस प्रकार choose किया जाता है कि वह तुरंत benefit देता है।
Dynamic programming
Dynamic programming एक bottom up approach है, इसमें हम सभी Possible small problems को solve करते हैं और फिर बड़ी problems के solution को Receive करने के लिए उन्हें combine करते हैं।
divide and conquer method के Opposite, dynamic programming कई बार sub-problems के solution का फिर से Use करता है।
Fibonacci Series के लिए recursive algorithm Dynamic Programming का Example है।
Backtracking algorithm in Hindi
Combination related problems को solve करने के लिए backtracking एक optimization Technique है। जिसका Use programs में और real life दोनों में किया जाता है।
Eight queen problem, Sudoku puzzle And Maze Etc. popular Examples है जिसमें backtracking का Use किया जाता है।
backtracking में, हम एक possible solution के साथ Start करते हैं, जो सभी Important conditions को Complete करता है। फिर हम अगले level पर जाते हैं और यदि वह level संतोषजनक solution नहीं देता है, तो हम एक level वापस Reverse आते हैं और एक नए option के साथ Start करते हैं।
Branch and Bound algorithm
Branch and Bound algorithm में एक दिए हुए sub-problem, जिसे bound नहीं किया जा सकता है, को कम से कम दो नए restricted sub-problems में Divide किया जाता है।
यह Algorithm non-convex problems में global optimization के लिए method हैं।
इसका उपयोग depth bounded search एवं depth-first search में किया जाता है।
Linear Programming
linear programming में बहुत सारें optimization job को डिस्क्राइब किया गया है जहाँ, optimization criteria और constraints दोनों लिनियर फंक्शन होते हैं।
यह सबसे अच्छे Result प्राप्त करने की एक technique है जैसे कि – maximum profit, shortest path, अथवा lowest cost.
इस programming में, variables का एक set होता है और हमें linear equations के set को satisfied करने के लिए absolute Value assign करनी होती है।
0 Comments