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

پیدا کردن با ارزش ترین مسیر در یک ماتریس

ارسال:
  

kamal3401 پرسیده:

پیدا کردن با ارزش ترین مسیر در یک ماتریس

سلام من یک سوالی دیدم و نمیدونم به کدووم بحث طراحی الگوریتم مربوط میشه!! احساس میکنم این مسئله جزو مسئله های مهم و کاربردی طراحی الگوریتم

فرض میکنیم یک ماتریسی داریم در ابعاد N*M که تو هر کدوم از خانه های این ماتریس به تعداد [tex]C_{i.j}[/tex] سکه وجود داره!!
حالا عامل هوشمندی رو وارد ماتریس میکنیم که از محل یک و یک شروع به حرکت میکنه تا به محل N*M برسه
این عامل هوشمند فقط میتونه در دو جهت حرکت کنه(یک خانه به سمت راست یا یک خانه به سمت پایین)
الگوریتمی پیدا کنید که این عامل هوشمند در مسیری حرکت کند که حاوی بیشترین تعداد سکه باشد
مشاهده‌ی وب‌سایت کاربر
نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

Behnam‌ پاسخ داده:

RE: پیدا کردن با ارزش ترین مسیر در یک ماتریس

(۱۶ خرداد ۱۳۹۵ ۰۸:۲۱ ب.ظ)kamal3401 نوشته شده توسط:  سلام من یک سوالی دیدم و نمیدونم به کدووم بحث طراحی الگوریتم مربوط میشه!! احساس میکنم این مسئله جزو مسئله های مهم و کاربردی طراحی الگوریتم

فرض میکنیم یک ماتریسی داریم در ابعاد N*M که تو هر کدوم از خانه های این ماتریس به تعداد [tex]C_{i.j}[/tex] سکه وجود داره!!
حالا عامل هوشمندی رو وارد ماتریس میکنیم که از محل یک و یک شروع به حرکت میکنه تا به محل N*M برسه
این عامل هوشمند فقط میتونه در دو جهت حرکت کنه(یک خانه به سمت راست یا یک خانه به سمت پایین)
الگوریتمی پیدا کنید که این عامل هوشمند در مسیری حرکت کند که حاوی بیشترین تعداد سکه باشد

این مسأله با dynamic programming حل میشه.
به صورت بازگشتی باید تابع cost رو اجرا کنید:
[tex]cost(i,j)=C_{i, j}+\max\{cost(i+1, j),\: cost(i, j+1)\}[/tex]
نقل قول این ارسال در یک پاسخ

ارسال:
  

kamal3401 پاسخ داده:

RE: پیدا کردن با ارزش ترین مسیر در یک ماتریس

(۱۶ خرداد ۱۳۹۵ ۰۸:۵۶ ب.ظ)behnam5670 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۸:۲۱ ب.ظ)kamal3401 نوشته شده توسط:  سلام من یک سوالی دیدم و نمیدونم به کدووم بحث طراحی الگوریتم مربوط میشه!! احساس میکنم این مسئله جزو مسئله های مهم و کاربردی طراحی الگوریتم

فرض میکنیم یک ماتریسی داریم در ابعاد N*M که تو هر کدوم از خانه های این ماتریس به تعداد [tex]C_{i.j}[/tex] سکه وجود داره!!
حالا عامل هوشمندی رو وارد ماتریس میکنیم که از محل یک و یک شروع به حرکت میکنه تا به محل N*M برسه
این عامل هوشمند فقط میتونه در دو جهت حرکت کنه(یک خانه به سمت راست یا یک خانه به سمت پایین)
الگوریتمی پیدا کنید که این عامل هوشمند در مسیری حرکت کند که حاوی بیشترین تعداد سکه باشد

این مسأله با dynamic programming حل میشه.
به صورت بازگشتی باید تابع cost رو اجرا کنید:
[tex]cost(i,j)=C_{i, j}+\max\{cost(i+1, j),\: cost(i, j+1)\}[/tex]

فکر نکنم این الگوریتم درست باشه
ممکنه در جهت راست که حرکت میکنه تعداد سکه کمتری نسبت به جهت پایین باشه ولی تو ادامه مسیر تعداد سکه های اون قسمت بیشتر باشه
مشاهده‌ی وب‌سایت کاربر یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

Behnam‌ پاسخ داده:

RE: پیدا کردن با ارزش ترین مسیر در یک ماتریس

(۱۶ خرداد ۱۳۹۵ ۰۹:۱۱ ب.ظ)kamal3401 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۸:۵۶ ب.ظ)behnam5670 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۸:۲۱ ب.ظ)kamal3401 نوشته شده توسط:  سلام من یک سوالی دیدم و نمیدونم به کدووم بحث طراحی الگوریتم مربوط میشه!! احساس میکنم این مسئله جزو مسئله های مهم و کاربردی طراحی الگوریتم

فرض میکنیم یک ماتریسی داریم در ابعاد N*M که تو هر کدوم از خانه های این ماتریس به تعداد [tex]C_{i.j}[/tex] سکه وجود داره!!
حالا عامل هوشمندی رو وارد ماتریس میکنیم که از محل یک و یک شروع به حرکت میکنه تا به محل N*M برسه
این عامل هوشمند فقط میتونه در دو جهت حرکت کنه(یک خانه به سمت راست یا یک خانه به سمت پایین)
الگوریتمی پیدا کنید که این عامل هوشمند در مسیری حرکت کند که حاوی بیشترین تعداد سکه باشد

این مسأله با dynamic programming حل میشه.
به صورت بازگشتی باید تابع cost رو اجرا کنید:
[tex]cost(i,j)=C_{i, j}+\max\{cost(i+1, j),\: cost(i, j+1)\}[/tex]

فکر نکنم این الگوریتم درست باشه
ممکنه در جهت راست که حرکت میکنه تعداد سکه کمتری نسبت به جهت پایین باشه ولی تو ادامه مسیر تعداد سکه های اون قسمت بیشتر باشه


یا جواب رو با دقت نخوندید یا dynamic programming رو بلد نیستید.
در فرمول ننوشتم که [tex]cost(i,\: j)=C_{i,\: j}+\max\{C_{i+1,\: j},\: C_{i,\: j+1}\}[/tex]
نوشتم [tex]cost(i,j)=C_{i, j}+\max\{cost(i+1, j),\: cost(i, j+1)\}[/tex]. وقتی به صورت بازگشتی اجرا میشه، خود اون تابع‌های cost این مشکلی که شما گفتید رو حل میکنند، چون تا آخرش اون مسیر رو به صورت انشعابی ادامه میدهند!

روی یک ماتریس ۳ در ۳ امتحان کنید. تابع [tex]cost(0,0)[/tex] به تابع‌های [tex]cost(0,1)[/tex] و [tex]cost(1,0)[/tex] منشعب میشه که تابع [tex]cost(0,1)[/tex] خودش به [tex]cost(1,1)[/tex] و [tex]cost(0,2)[/tex] تبدیل میشه (همچنین تابع منشعب دوم، یعنی [tex]cost(1,0)[/tex] هم خودش دو تا میشه و هر کدوم دنبال ماکزیمم میگردند...)
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

kamal3401 پاسخ داده:

RE: پیدا کردن با ارزش ترین مسیر در یک ماتریس

(۱۶ خرداد ۱۳۹۵ ۰۹:۲۰ ب.ظ)behnam5670 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۹:۱۱ ب.ظ)kamal3401 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۸:۵۶ ب.ظ)behnam5670 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۸:۲۱ ب.ظ)kamal3401 نوشته شده توسط:  سلام من یک سوالی دیدم و نمیدونم به کدووم بحث طراحی الگوریتم مربوط میشه!! احساس میکنم این مسئله جزو مسئله های مهم و کاربردی طراحی الگوریتم

فرض میکنیم یک ماتریسی داریم در ابعاد N*M که تو هر کدوم از خانه های این ماتریس به تعداد [tex]C_{i.j}[/tex] سکه وجود داره!!
حالا عامل هوشمندی رو وارد ماتریس میکنیم که از محل یک و یک شروع به حرکت میکنه تا به محل N*M برسه
این عامل هوشمند فقط میتونه در دو جهت حرکت کنه(یک خانه به سمت راست یا یک خانه به سمت پایین)
الگوریتمی پیدا کنید که این عامل هوشمند در مسیری حرکت کند که حاوی بیشترین تعداد سکه باشد

این مسأله با dynamic programming حل میشه.
به صورت بازگشتی باید تابع cost رو اجرا کنید:
[tex]cost(i,j)=C_{i, j}+\max\{cost(i+1, j),\: cost(i, j+1)\}[/tex]

فکر نکنم این الگوریتم درست باشه
ممکنه در جهت راست که حرکت میکنه تعداد سکه کمتری نسبت به جهت پایین باشه ولی تو ادامه مسیر تعداد سکه های اون قسمت بیشتر باشه


یا جواب رو با دقت نخوندید یا dynamic programming رو بلد نیستید.
در فرمول ننوشتم که [tex]cost(i,\: j)=C_{i,\: j}+\max\{C_{i+1,\: j},\: C_{i,\: j+1}\}[/tex]
نوشتم [tex]cost(i,j)=C_{i, j}+\max\{cost(i+1, j),\: cost(i, j+1)\}[/tex]. وقتی به صورت بازگشتی اجرا میشه، خود اون تابع‌های cost این مشکلی که شما گفتید رو حل میکنند، چون تا آخرش اون مسیر رو به صورت انشعابی ادامه میدهند!

روی یک ماتریس ۳ در ۳ امتحان کنید. تابع [tex]cost(0,0)[/tex] به تابع‌های [tex]cost(0,1)[/tex] و [tex]cost(1,0)[/tex] منشعب میشه که تابع [tex]cost(0,1)[/tex] خودش به [tex]cost(1,1)[/tex] و [tex]cost(0,2)[/tex] تبدیل میشه (همچنین تابع منشعب دوم، یعنی [tex]cost(1,0)[/tex] هم خودش دو تا میشه و هر کدوم دنبال ماکزیمم میگردند...)


درسته من اشتباه تحلیل کردم
ممنون
مشاهده‌ی وب‌سایت کاربر یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

Behnam‌ پاسخ داده:

RE: پیدا کردن با ارزش ترین مسیر در یک ماتریس

(۱۶ خرداد ۱۳۹۵ ۰۹:۲۹ ب.ظ)kamal3401 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۹:۲۰ ب.ظ)behnam5670 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۹:۱۱ ب.ظ)kamal3401 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۸:۵۶ ب.ظ)behnam5670 نوشته شده توسط:  
(16 خرداد ۱۳۹۵ ۰۸:۲۱ ب.ظ)kamal3401 نوشته شده توسط:  سلام من یک سوالی دیدم و نمیدونم به کدووم بحث طراحی الگوریتم مربوط میشه!! احساس میکنم این مسئله جزو مسئله های مهم و کاربردی طراحی الگوریتم

فرض میکنیم یک ماتریسی داریم در ابعاد N*M که تو هر کدوم از خانه های این ماتریس به تعداد [tex]C_{i.j}[/tex] سکه وجود داره!!
حالا عامل هوشمندی رو وارد ماتریس میکنیم که از محل یک و یک شروع به حرکت میکنه تا به محل N*M برسه
این عامل هوشمند فقط میتونه در دو جهت حرکت کنه(یک خانه به سمت راست یا یک خانه به سمت پایین)
الگوریتمی پیدا کنید که این عامل هوشمند در مسیری حرکت کند که حاوی بیشترین تعداد سکه باشد

این مسأله با dynamic programming حل میشه.
به صورت بازگشتی باید تابع cost رو اجرا کنید:
[tex]cost(i,j)=C_{i, j}+\max\{cost(i+1, j),\: cost(i, j+1)\}[/tex]

فکر نکنم این الگوریتم درست باشه
ممکنه در جهت راست که حرکت میکنه تعداد سکه کمتری نسبت به جهت پایین باشه ولی تو ادامه مسیر تعداد سکه های اون قسمت بیشتر باشه


یا جواب رو با دقت نخوندید یا dynamic programming رو بلد نیستید.
در فرمول ننوشتم که [tex]cost(i,\: j)=C_{i,\: j}+\max\{C_{i+1,\: j},\: C_{i,\: j+1}\}[/tex]
نوشتم [tex]cost(i,j)=C_{i, j}+\max\{cost(i+1, j),\: cost(i, j+1)\}[/tex]. وقتی به صورت بازگشتی اجرا میشه، خود اون تابع‌های cost این مشکلی که شما گفتید رو حل میکنند، چون تا آخرش اون مسیر رو به صورت انشعابی ادامه میدهند!

روی یک ماتریس ۳ در ۳ امتحان کنید. تابع [tex]cost(0,0)[/tex] به تابع‌های [tex]cost(0,1)[/tex] و [tex]cost(1,0)[/tex] منشعب میشه که تابع [tex]cost(0,1)[/tex] خودش به [tex]cost(1,1)[/tex] و [tex]cost(0,2)[/tex] تبدیل میشه (همچنین تابع منشعب دوم، یعنی [tex]cost(1,0)[/tex] هم خودش دو تا میشه و هر کدوم دنبال ماکزیمم میگردند...)


درسته من اشتباه تحلیل کردم
ممنون

خواهش میکنم.
به عنوان تمرین اگر خواستی مسأله رو برای حالتی حل کن که امکان حرکت به بالا هم داشته باشی (منتهی هر خونه نباید بیشتر از یک بار ویزیت بشه، لذا نمیتونی فقط یه جمله اضافه کنی که مثلاً [tex]cost(i-1,\: j)[/tex] رو هم بیاری داخل ماکزیمم. روشش فرق میکنه)
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  پیدا کردن دستگیره manager_66 ۵ ۴,۴۱۲ ۲۸ آذر ۱۴۰۰ ۱۲:۴۴ ب.ظ
آخرین ارسال: blackhalo1989
  تا به حال شده خدا فرصت زندگی کردن دوباره رو بهت بده؟مرگ از جلوی چشمات رد شده؟ abraham ۲۱ ۱۴,۶۵۷ ۲۰ دى ۱۳۹۹ ۱۰:۵۶ ب.ظ
آخرین ارسال: raam
  جایی برای پیدا کردن توابع آماده جاوااسکریپت f.b ۷ ۴,۰۳۵ ۲۰ آذر ۱۳۹۹ ۰۴:۰۸ ب.ظ
آخرین ارسال: calm
Sad ذخیره ماتریس پایین مثلثی / بالا مثلثی به شیوه سطری یا ستونی shayesteNEY ۵ ۹,۹۳۵ ۲۲ مهر ۱۳۹۹ ۱۱:۲۸ ب.ظ
آخرین ارسال: Negiiin
  پیدا کردن موضوع پایان نامه k1.technology ۲ ۷,۷۶۱ ۲۱ خرداد ۱۳۹۹ ۱۲:۵۴ ب.ظ
آخرین ارسال: bankabzar
  رنگ کردن رئوس گراف( ارشد علوم کامپیوتر ۹۸ ) ss311 ۰ ۱,۸۹۹ ۰۳ اسفند ۱۳۹۸ ۱۲:۴۳ ب.ظ
آخرین ارسال: ss311
  مسدود کردن سایت و نرم افزار تلگرام wiisconsin ۶ ۶,۵۱۵ ۲۴ بهمن ۱۳۹۸ ۰۵:۳۸ ق.ظ
آخرین ارسال: one hacker alone
  انخاب مسیر آینده ؟ آینده دکترا چه خواهد شد ؟ shivap ۱۰ ۱۰,۳۶۷ ۰۲ آذر ۱۳۹۸ ۱۲:۳۶ ق.ظ
آخرین ارسال: WILL
  پر استفاده ترین مدل های هواپیما در ایران abolfazlda ۱ ۲,۷۴۶ ۱۱ آبان ۱۳۹۸ ۰۱:۴۶ ب.ظ
آخرین ارسال: marvelous
  ضرب ماتریس ها roller1829 ۰ ۱,۸۴۴ ۱۹ مهر ۱۳۹۸ ۰۲:۴۸ ب.ظ
آخرین ارسال: roller1829

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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