PDA

View Full Version : سوال: الگوریتم برنامه ریزی دروس



mina.m
شنبه 13 خرداد 1385, 02:27 صبح
با سلام

من می خواهم با ++C برنامه امتحانی بنویسم که فایلی را به عنوان ورودی دریافت کند که همان چارت درسی می باشد و دروس هم نیاز و پیش نیازرا مشخص کند و نیز تاریخ شروع و پایان امتحانات را نیز به عنوان ورودی بگیرد و باید طوری عمل کند که هیچ تداخلی بین تاریخ روز و ساعت امتحانات دروس همنیاز و غیر پیش نیاز به وجود نیاید , وقتی می خواهد در وهله اول در یک حلقه for چک کند که آیا دانشجو چنین درسی را گرفته باید از یک بانک اطلاعاتی که حاوی اطلاعات دانشجو و چارت درسی است و در ورودی دریافت شده کمک بگیرد , آیا می توانم برای این برنامه در هر مرحله که می خواهد چک کند و ببیند که آیا دانشجو درس را گرفته یا نه , اگر گرفته آیا هم نیاز و پیش نیاز دارد و به همین ترتیب الی اخر و در آخرین مرحله تداخل تاریخی و ساعتی برنامه را چک کند , از ماتریس تلاقی استفاده کنم و دو موضوعی که می خواهم تداخلشان بررسی شود به عنوان سطر و ستون این ماتریس قرار بگیرند و اگر تداخل نداشت درایه ماتریس 1 و در صورت وجود تلاقی آن را 0 قرار دهد و در نهایت وقتی بررسی ها تمام شد ( در حلقه های for تو در تو ) همه اطلاهات وارد یک آرایه دو بعدی شود و و با اطلاعات تاریخ و ساعت که در آرایه هایی جداگانه هستند ادغام گردند ?

لطفا من را راهنمایی کنید و نظرتان را راجع به الگوریتم من بگویید و تقاضا می کنم الگوریتم پیشنهادیتان را هم عنوان کنید .

از لطفتان سپاسگزارم.

mohandese_hiclass
یک شنبه 21 خرداد 1385, 11:23 صبح
دوست عزیز فکر نکنم این الگوریتم شما جواب بده البته اگه جوابه بهینه مطرح نباشه میشه با الگوریتم شما یه کارایی کرد ولی ممکنه برنامه شما در آخر امتحانات یک ورودی رو پشت سر هم یا در یک روز بندازه البته این در صورتی هست که بهینه سازی مد نظر شما نباشه این مسئله ای که شما طرح کردید جزئ مسائل سخت و بهینه سازس هستش که الگوریتم خطی و ریاضی برای چنین مسائلی جواب نمیده این نوع مسائل باید دو چیز رو حل کنن محدودیت سخت و محدودیتهای نرم
که شما فقط محدودیت سخت رو ذکر کردید و از محدو دیتهای نرم غافل شدید.
در این زمینه یکس از دانشجویان دکتری شریف هم کار میکنه شما در نظر بگیرید اگه به این آشونی با الگوریتمهای p حل می شد هیچ وقت یه دکتر رو این مسئله وقت نمی زاشت
این نوع مسائل و مسائلی از این قبیل که مسائل زمانبندی هستن در حال حاضر هم در انگلیس و چند کشور مطرح دنیا کار میشه البته این مسئله به نسبت اون مسائل اسونتره دو روش مطرح برای حل این مسائل هستن که تو دنیت روی این مسائل بیشتر کار میشه یکس الگوریتمهای ژنتیکی و دیگری برنامه نویسش منطقی هستش از من می شنوید به فکر حل چنین مسائلی با الگوریتمهای خطی نباشید چون این مسائل با دنیای واقعی سرو کار دارن و فضاس حالت چنین مسائلی زیاد هستش
باز اگه کمکی داشتید باز من درخدمتتون هستم من در این زمینه ها دو سه تا مقاله نوشتم
و پروزه پایان دوره دانشگاهیم هم در مورد زمانبندی اتوماتیک دروس دانشگاهی بود که فضای حالتش از مسئله شما خیلی زیادتره
دیگه خیلی نوشتم باز من در خدمتم اگه اشکالی بود

به لینکه زیر هم سری بزنید مفیده
http://www.algorithmnevis.com/forum/index.php?board=5.0

mina.m
یک شنبه 21 خرداد 1385, 22:33 عصر
سلام
از راهنمایی شما ممنونم , من دانشجوی دوره لیسانس نرم افزارم و چیزی که استاد درس طراحی الگوریتم از ما خواسته نوشتن برنامه ای است که حداقل تداخل زمانی و تاریخی رو داشته باشد وسواد فعلیم هم در حد الگوریتم های ژنتیک نیست . من این برنامه را با اشاره گر ها در زبان C نوشتم که با این وجود از لخاظ حافظه مشکلی ندارد . لطفا با توجه به شرایطی که خدمتتان عرض کردم من را راهنمایی کنید .
با تشکر

mina.m
یک شنبه 21 خرداد 1385, 22:57 عصر
سلام
میشه لطف کنید و محدودیت های نرم افزای این مسئله رو بیشتر برام باز کنید وراجع به اونها توضیح بدین , منظور شما استفاده از چه روش برنامه نویسی است ( پویا , حریصانه , ....) یا استفاد از الگوریتمهای کلاس NP ؟ لطفا بیشتر توضیح بدهید .
از لطفتان سپاسگزارم

mohandese_hiclass
دوشنبه 22 خرداد 1385, 19:07 عصر
سلام
از راهنمایی شما ممنونم , من دانشجوی دوره لیسانس نرم افزارم و چیزی که استاد درس طراحی الگوریتم از ما خواسته نوشتن برنامه ای است که حداقل تداخل زمانی و تاریخی رو داشته باشد وسواد فعلیم هم در حد الگوریتم های ژنتیک نیست . من این برنامه را با اشاره گر ها در زبان C نوشتم که با این وجود از لخاظ حافظه مشکلی ندارد . لطفا با توجه به شرایطی که خدمتتان عرض کردم من را راهنمایی کنید .
با تشکر

دوست عزیز می تونید یه آرایه دو بعدی که یک بعدش روزهای هفته و دومی بازه ها باشند بعد به صورت تصادفی درسها رو تو آرایه بچینی دو تابع هم می نویسی که از کنتاکتها جلوگیری کنه و اگه کنتاکت بوجود اومد واسه اون د رس به صورت تصتدفی یه مکان دیگه انتخاب می کنید به همین ترتیب تا آخر ادامه می دید

mohandese_hiclass
دوشنبه 22 خرداد 1385, 19:12 عصر
با برنامه نویسی معمولی و خطی که شما ذکر کردید این مسائل حل ناپذیرند و بهترین و کاراترین الگوریتم برای چنین مسائلی همون الگوریتم ژنتیک با ترکیب روشها و الگوریتمهای دیگه هست