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

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

ارسال:
  

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
  سئو چیست؟ - سئو - بهینه سازی سایت msnmsn ۲ ۲۵ ۲۳ آبان ۱۳۹۸ ۰۱:۱۳ ب.ظ
آخرین ارسال: xiaomi
  درخت دسترس پذیری برای شبکه های پتری αɾια ۱ ۲,۱۵۰ ۰۹ تیر ۱۳۹۸ ۰۶:۳۰ ب.ظ
آخرین ارسال: αɾια

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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