Ali Ahmed55 نشر 28 يناير أرسل تقرير نشر 28 يناير السلام عليكم هي الDynamic programming عبار عن خورزميه والا مفهوم برمجي ؟ 2 اقتباس
0 محمد عاطف17 نشر 28 يناير أرسل تقرير نشر 28 يناير وعليكم السلام ورحمة الله وبركاته. إن ال (Dynamic Programming) البرمجة الديناميكية هي تقنية في البرمجة وليست خوارزمية بنفهسا . ولكننا نستخدمها في الخوارزميات لحل المشاكل المعقدة عن طريق تقسيمها إلى مشاكل فرعية أبسط وحل كل مشكلة فرعية مرة واحدة وتخزين الحلول في جدول لتجنب الحسابات المتكررة.وبالتالي يمكن استخدامها لاحقا بدون الحاجة لإعادة حسابها. وهذا يؤدي إلى تقليل التعقيد الزمني بشكل كبير. وإليك المقال التالي من موسوعة حسوب لشرح وتقاصيل أكثر : https://wiki.hsoub.com/Algorithms/Dynamic_Programming 1 اقتباس
0 عبدالباسط ابراهيم نشر 28 يناير أرسل تقرير نشر 28 يناير وعليكم السلام ورحمة الله وبركاته. البرمجة الديناميكية (Dynamic Programming) هي في الواقع منهجية أو تقنية لحل المشاكل البرمجية، وليست خوارزمية محددة. يمكن اعتبارها مفهوم برمجي أو أسلوب في حل المشكلات. والفكرة الأساسية للبرمجة الديناميكية تقوم على تقسيم المشكلة الكبيرة إلى مشاكل فرعية أصغر حل المشاكل الفرعية مرة واحدة وتخزين نتائجها استخدام هذه النتائج المخزنة لحل المشاكل الأكبر https://wiki.hsoub.com/Algorithms/Dynamic_Programming 1 اقتباس
0 Ali Ahmed55 نشر 28 يناير الكاتب أرسل تقرير نشر 28 يناير الف شكرااا جدا لحضرتكم جزاكم الله كل خير 1 اقتباس
0 Mustafa Suleiman نشر 28 يناير أرسل تقرير نشر 28 يناير ذلك هو مفهوم برمجي لتصميم تصميم خوارزميات بمعنى Programming Concept/Algorithmic Paradigm وليس خوارزمية محددة بذاتها فمن خلاله تستطيع حل مسائل معقدة عن طريق تقسيمها إلى مسائل فرعية أصغر، وحل كل مسألة فرعية مرة واحدة فقط (بتخزين النتائج) بمعنى المسائل الفرعية تتكرر أثناء الحل، لذا نحفظ نتائجها في ذاكرة (مصفوفة، جدول) بدل إعادة حسابها، الأمر الذي يقلل الوقت الحسابي، وهناك طريقتان لتطبيق ذلك المفهوم الأولى Memoization (Top-Down)، عن طريق حل المشكلة بشكل تعاودي (Recursion) + حفظ النتائج في Cache، كحساب Fibonacci(n) مع تخزين القيم memo = {} def fib(n): if n <= 1: return n if n not in memo: memo[n] = fib(n-1) + fib(n-2) return memo[n] الثانية Tabulation (Bottom-Up) عن طريق حل المسائل الفرعية من الأصغر إلى الأكبر باستخدام Iteration + جدول، مثل ملء جدول Fibonacci[0..n] بشكل تسلسلي. def fib(n): if n <= 1: return n table = [0] * (n+1) table[0], table[1] = 0, 1 for i in range(2, n+1): table[i] = table[i-1] + table[i-2] return table[n] 1 اقتباس
0 Ali Ahmed55 نشر 28 يناير الكاتب أرسل تقرير نشر 28 يناير بتاريخ 6 ساعة قال Mustafa Suleiman: ذلك هو مفهوم برمجي لتصميم تصميم خوارزميات بمعنى Programming Concept/Algorithmic Paradigm وليس خوارزمية محددة بذاتها فمن خلاله تستطيع حل مسائل معقدة عن طريق تقسيمها إلى مسائل فرعية أصغر، وحل كل مسألة فرعية مرة واحدة فقط (بتخزين النتائج) بمعنى المسائل الفرعية تتكرر أثناء الحل، لذا نحفظ نتائجها في ذاكرة (مصفوفة، جدول) بدل إعادة حسابها، الأمر الذي يقلل الوقت الحسابي، وهناك طريقتان لتطبيق ذلك المفهوم الأولى Memoization (Top-Down)، عن طريق حل المشكلة بشكل تعاودي (Recursion) + حفظ النتائج في Cache، كحساب Fibonacci(n) مع تخزين القيم memo = {} def fib(n): if n <= 1: return n if n not in memo: memo[n] = fib(n-1) + fib(n-2) return memo[n] الثانية Tabulation (Bottom-Up) عن طريق حل المسائل الفرعية من الأصغر إلى الأكبر باستخدام Iteration + جدول، مثل ملء جدول Fibonacci[0..n] بشكل تسلسلي. def fib(n): if n <= 1: return n table = [0] * (n+1) table[0], table[1] = 0, 1 for i in range(2, n+1): table[i] = table[i-1] + table[i-2] return table[n] الف شكراا جدا لحضرتك اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هي الDynamic programming عبار عن خورزميه والا مفهوم برمجي ؟
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.