زمان کنونی: ۰۱ دى ۱۴۰۳, ۰۶:۳۹ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

الگوریتم ایجاد درخت دوردویی بهینه

ارسال:
  

jaroon پرسیده:

الگوریتم ایجاد درخت دوردویی بهینه

سلاممن الگوریتم ایجاد درخت دوردویی بهینه که توی کتاب قدسی به دو روش بازگشتی و پویا گفته شده رو نمیفهمم.کسی میتونه توضیح بده؟

۰
ارسال:
  

mahditorki پاسخ داده:

RE: درخت دودویی جستجوی بهینه

درخت جستجوی دودویی بهینه به روش برنامه نویسی پویا:
اگر n کلید متمایز k[1]<k[2]<..<k[n] موجود باشد و احتمال آنکه k[i] را جستجو کنیم p[i] باشد درخت جستجوی دودویی بهینه درختی است که در آن Sigma(C[i]*P[i]) که در آن i=1 to n است مینیمم شود.
اگر A[i][j] همان مینیمم زمان جستجو برای BST با کلید های K[i] تا K[j] باشد و K[i]<=k[j] به ازای هر i,j
داریم: A[i][i]=P[i] چون فقط K[i] موجود است و یک مقایسه لازم دارد پس A[i][i]=1*P[i]=p[i]
لذا جواب ما a[1][n] است حال فرض کنید bst بهینه را یافته ایم و ریشه آن K[m] است بنا بر اصل بهینگی هر دو زیر درخت چپ و راست بهینه اند و داریم:
A[1][n]=A[1][m-1]+P[1]+P[2]+...+P[m-1]+P[m]+A[m+1][n]+P[m+1]+...P[n]=A[1][m-1]+A[m+1][n]+ Sigma(P[t]) t=1 to n

سبز‌: مینیمم زمان جستجو در زیر درخت چپ
قرمز:هر یک از نود های زیر درخت چپ را بخواهیم جستجو کنیم بخاطر مقایسه با ریشه یک مقایسه اضافی دارد.
مشکی:خود ریشه یک مقایسه نیاز دارد.
آبی پر رنگ: مانند سبز در مورد زیر درخت راست.
آبی کمرنگ:مانند قرمز

لذا فرمول کلی برابر است با:
A[1][n]= Min( A[i][m-1]+A[m+1][j]+ Sigma(P[t]) t=i to j) and i<j
A[i][i]=P[i]
البته این رابطه فقط مقدار مینیمم را می دهد برای بدست آوردن خود درخت باید ماتریس دیگری برای ذخیره ریشه زیر درخت از K[i] تا K[j] بکار ببریم.
مرتبه الگوریتم ظاهرا O(n^3) است
ر.ک کتاب طراحی الگوریتم پوران پژوهش صفحه ۱۵۸ تا ۱۶۰ Sleepy



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  تعداد برگ درخت؟؟؟؟؟؟؟ rad.bahar ۴ ۴,۹۰۴ ۱۵ آذر ۱۴۰۲ ۱۱:۵۳ ق.ظ
آخرین ارسال: mohamadrra
  دو سوال در مورد درخت BST(درخت جستجوی دودویی) امیدوار ۳ ۵,۶۴۴ ۱۰ دى ۱۳۹۹ ۱۲:۰۴ ق.ظ
آخرین ارسال: marzi.pnh
  زمان جستجوی درخت fateme.sm ۰ ۱,۷۹۳ ۰۶ دى ۱۳۹۹ ۱۰:۴۱ ب.ظ
آخرین ارسال: fateme.sm
  مرتبه ایجاد درخت rad.bahar ۱ ۳,۴۱۳ ۳۰ مهر ۱۳۹۹ ۰۳:۳۴ ب.ظ
آخرین ارسال: rad.bahar
  عمق درخت ???? rad.bahar ۱ ۲,۴۲۶ ۱۱ مهر ۱۳۹۹ ۰۳:۳۱ ب.ظ
آخرین ارسال: عزیز دادخواه
  محاسبه ارتفاع درخت.... baharkhanoom ۳ ۸,۱۶۲ ۰۹ اردیبهشت ۱۳۹۹ ۰۶:۴۸ ب.ظ
آخرین ارسال: mohsentafresh
  تعداد درخت فراگیر ss311 ۰ ۲,۳۳۴ ۰۶ بهمن ۱۳۹۸ ۰۵:۰۶ ب.ظ
آخرین ارسال: ss311
  ایجاد شغل در زمینه خدمات hiradupvc ۱ ۲,۹۳۳ ۲۱ دى ۱۳۹۸ ۰۵:۱۴ ب.ظ
آخرین ارسال: parisa1140
  درخت دسترس پذیری برای شبکه های پتری αɾια ۱ ۲,۴۲۲ ۰۹ تیر ۱۳۹۸ ۰۶:۳۰ ب.ظ
آخرین ارسال: αɾια
  مشکل عدم ایجاد پروژه/فایل جدید در نت بینز αɾια ۳ ۱۱,۳۸۷ ۲۰ اردیبهشت ۱۳۹۸ ۰۳:۳۴ ب.ظ
آخرین ارسال: Silver1992

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close