نمایش نتایج 1 تا 10 از 10

نام تاپیک: راهنمایی در مورد کوله پشتی0-1

  1. #1

    Question راهنمایی در مورد کوله پشتی0-1

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

  2. #2
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    در مسئله کوله پشتی صفر و یک x شی داریم که هر کدام دارای ارزش p هستند و وزن w را دارند.
    می خواهیم اشیایی را در داخل کوله پشتی قرار دهیم که بیشترین ارزش را برداریم و وزن اشیا از ماکزیمم وزنی که کوله پشتی می خواهد تحمل کند ، بیشتر نشود.
    هدف مسئله ماکزمم کردن مقدار

    و محدودیت آن درصورتیکه ماکزمم گنجایش کوله پشتی c باشد بصورت زیر است

    این الگوریتم پیاده سازی های مختلفی دارد ، شما باید مشخص کنید کدام راه حل مد نظرتان است. قبلا در مورد روش حریصانه در این بخش هم بحث شده می توانید به آن بحث مراجعه کنید. اطلاعات تکمیلی را از اینجا بگیرید
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  3. #3
    راه حل مورد نظر من از برنامه سازی پویاست.
    روش حریصانه این مسئله بیشتر مربوط به کوله پشتی غیر 0-1 میشه.
    من خودم هم ایده ای برای این مسئله دارم:
    به این ترتیب که در ابتدا ظرفیت ماکزیمم کوله پشتی را دریافت کنیم,
    بعد از روی wها حالات مختلفی را که جمع wها برابر(M:ظرفیت کوله پشتی) میشود را پیدا کنیم ,یعنی ماکزیمم وزنی که کوله پشتی میتواند تحمل کند به ازای حالات مختلف جمع زدنها,
    بعد با توجه به وزنهای استخراج شده ,ارزش(P) هر کدام از حالتها را بدست می آوریم و ماکزیم p ها ی بدست آمده حالات 0-1 را مشخص میکنیم.
    مثلا m=7
    p1,p2,p3,p4=3,1,4,5
    w1,w2,w3,w4=2,4,3,1
    w2+w3=7 p2+p3=5
    w1+w4+w2=7 p1+p4+p2=7
    ماکزیمم P ها در حالت دوم قرار دارد پس جواب مسئل{1,1,0,1 }= {x1,x2,x3,x3}
    آیا این ایده درسته؟

  4. #4
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    روش حریصانه این مسئله بیشتر مربوط به کوله پشتی غیر 0-1 میشه.
    بهتره این جمله را این طور تصحیح کنید که روش حریصانه برای کوله پشتی غیر 0-1 جواب بهینه را می دهد.
    نکته دیگر اینکه الگوریتم پویا برای کوله پشتی 0-1 بهترین جواب را می دهد(با کمترین هزینه)
    ایده شما تا حدی درست است اگر در مورد "ارزش(P) هر کدام از حالتها را بدست می آوریم" توضیح بیشتری می دادید شاید بهتر می شد راهنمایی کرد.
    در الگوریتم های پویا شما باید مسئله را از جز به کل حل کنید (این مرحله مانند روش تقسیم و حل است) و آنها را ذخیره کنید و در مراحل بعد با استفاده از نتایج بدست آمده بقیه الگوریتم را حل کنید.
    توجه کنید هدف مسئله کوله پشتی بدست آوردن ماکزمم ارزش است نه کدام آیتم ها

    البته می توان با توجه به پیاده سازی آیتم هایی که لازم است را بدست آورید .
    این لینک این مسئله بطور کامل توضیح داده ، اگر سوالی بود بپرسید
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  5. #5
    این سورس کد کوله پشتی 0-1که با توجه به منطق همین لینکه
    اما برنامه اشکال داره،جواب نمیده ،میشه در این مورد هم کمک کنید؟
       #include "iostream.h"
    #include "conio.h"
    void main() {
    clrscr();
    int i,j,n,l,p[10][20];
    int weight,w[10],P[10];
    cout<<"enter weight";
    cin>>weight;
    cout<<"enter your namber of objects";
    cin>>n;
    for(i=0;i<n;i++){
    cout<<"enter w["<<i<<"]"<<"\n";
    cin>>w[i];
    cout<<"enter p["<<i<<"]"<<"\n";
    cin>>P[i]; }
    for(i=0;i<n;i++){
    p[i][0]=0;
    for(j=0;j<weight;j++){
    p[0][j]=0;
    for(i=1;i<n;i++){
    for(j=1;j<weight;j++)
    if(w[i]<=j){
    if(p[i-1][j]<P[i]+p[i-1][j-w[i]]){
    p[i][j]=(P[i]+p[i-1][j-w[i]]);
    if(p[i-1][j]>P[i]+p[i-1][j-w[i]])
    p[i][j]=p[i-1][j-w[i]];}
    else
    p[i][j]=p[i-1][j];
    }
    }

    }
    cout<< p[n][weight];}

    getch();}

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    پست
    854
    نقل قول نوشته شده توسط whitehat مشاهده تاپیک
    بهتره این جمله را این طور تصحیح کنید که روش حریصانه برای کوله پشتی غیر 0-1 جواب بهینه را می دهد.
    همون کوله پشتی کسری دیگه.
    آیا نوع های دیگه ای از الگوریتم کوله پشتی هست ؟؟؟

  7. #7
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    اما برنامه اشکال داره،جواب نمیده ،میشه در این مورد هم کمک کنید؟
    چه پیغام خطایی می دهد؟
    همون کوله پشتی کسری دیگه.
    بله
    آیا نوع های دیگه ای از الگوریتم کوله پشتی هست ؟؟؟
    خیر (البته اگه bounded و unbounded را یکی بگیرید) -به لینکی که در پست 2 آمده مراجعه کنید
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  8. #8
    خطاها رو از بین بردم ولی خروجی فقط 0 چاپ میکنه!
    یعنی اصلا حلقه ها اجرا نمیشه!!!!!!
    نمیدونم کجاش اشکال داره؟
    (در کد برنامه نسخه اصلاح شده رو گذاشتم)

  9. #9
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    ورودی ها را چه اعدادی می دهید؟
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  10. #10

    نقل قول: راهنمایی در مورد کوله پشتی0-1

    حل مسئله کوله پشتی با الگوریتم sa رو نیاز دارم. اگه میشه راهنمایی کنید

تاپیک های مشابه

  1. تقاضایی راهنمایی و کمک در کار با Dreamweaver
    نوشته شده توسط احمد کاوه در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: پنج شنبه 29 مهر 1389, 12:41 عصر
  2. آقا چه چیزایی با javascript قابل حل هست چه چیزایی با .net
    نوشته شده توسط odiseh در بخش ASP.NET Web Forms
    پاسخ: 13
    آخرین پست: جمعه 02 فروردین 1387, 04:44 صبح
  3. دوستانی که با interbase آشنایی دارند لطفا راهنمایی کنند
    نوشته شده توسط mehdi_moosavi در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: شنبه 01 بهمن 1384, 14:11 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •