فهرست مطالب

ویژگیهای برنامه. 2

1. توضیح الگوریتم. 6

2.راهنمای کار با برنامه. 8

2.1.            مقدمه. 8

2.2.                 نصب برنامه. 8

2.3.                          استفاده از برنامه. 8

2.3.1.   فایل.. 8

2.3.2.        دادهها 9

2.3.3.   آمار 37

2.3.4.                    جدول زمانبندی.. 37

 

 


 

ویژگی­های برنامه

این نرم­افزار به صورت متن باز بوده و به صورت رایگان قابل استفاده می­باشد، کاربران می­توانند تحت قوانین GNU AGPL به توزیع و تغییر آن بپردازند.

قابلیت سفارشی کردن و تغییر زبان آن. در حال حاضر زبان­های فارسی و انگلیسی در این نرم افزار موجدند.

الگوریتم تولید کاملا خودکار که اجازه تولید نیمه خودکار و همچنین دستی را نیز می­دهد.

پیاده سازی مستقل از چارچوب نرم­افزاری و قابل اجرا روی لینوکس، ویندوز، مک و دیگر محیط­هایی که می­توانند از نرم­افزار QT[1] پشتیبانی کنند.

دارای قالب ورودی قدرتمند و انعطاف پذیر از نوع XML که اجازه ویرایش توسط یک ویرایشگر xml را نیز به ما می­دهد.

قابلیت مشاهده جدول زمانبندی تولید شده به صورت ناکامل بدون نیاز به متوقف کردن عملیات تولید جدول(به صورت html یا از روی دیسک سخت).

جدول زمانبندی نتیجه شده می­تواند به صورت xml یا html ذخیره شود.

حالت­های مختلف برای تقسیم بندی دانشجویان: از طریق سال، گروه و زیرگروه. این نرم افزار اجازه ایجاد سال و گرئه با همپوشانی را می­دهد و اجازه داشتن زیرگروه­های متداخل را نمی­دهد. همچنین می­توان گروه­های اختصاصی نیز تعریف کرد.

هر محدودیت یک درصد وزنی دارد، از 0.0% تا 100.0%(برخی از محدودیت­های خاص فقط می­توانند درصد وزنی 100% داشته باشند).

بیشینه ساعات در هر روز(دوره): 60( می­تواند افزایش یابد، ولی به نظر نمی­آید نیازی باشد!)

بیشینه تعداد روزهای کاری در هر هفته:28( می­تواند افزایش یابد، ولی به نظر نمی­آید نیازی باشد!)

بیشینه تعداد اساتید: 700

بیشینه گروه­های دانشجویان: 15000( می­تواند افزایش یابد، ولی به نظر نمی­آید نیازی باشد!)

بیشینه تعداد دروس: 1000( می­تواند افزایش یابد، ولی به نظر نمی­آید نیازی باشد!)

تعداد نا محدود برای برچسب[2] کلاس­ها

بیشینه تعداد کلاس­ها :5000( می­تواند افزایش یابد، ولی به نظر نمی­آید نیازی باشد!)

بیشینه تعداد اتاق­ها:1000( می­تواند افزایش یابد، ولی به نظر نمی­آید نیازی باشد!)

بیشینه تعداد ساختمان­ها:100( می­تواند افزایش یابد، ولی به نظر نمی­آید نیازی باشد!)

مدت زمان قابل تغییر برای هر کلاس درس(هر کلاس درس می­تواند 1 ساعت، 2 ساعت و یا بیشتر باشد)

قابلیت اختصاص چند استاد و یا چند گروه دانشجویان برای هر درس.

بیشینه تعداد محدودیت­های زمانی:10000( می­تواند افزایش یابد، ولی به نظر نمی­آید نیازی باشد!)

بیشینه تعداد محدودیت­های مکانی:10000( می­تواند افزایش یابد، ولی به نظر نمی­آید نیازی باشد!)

مجموعه بزرگ و انعطاف پذیری از محدودیت­های زمانی:

محدودیت­های اساسی و اجباری زمانی

محدودیت بیشنیه فاصله­های زمانی[3] در هر هفته

محدودیت حداقل روزها بین بین درس­ها(به منظور ایجاد توازن در کلاس­ها در هفته)

محدودیت زمانی ترجیهی یک کلاس

محدودیت زمان­های ترجیهی برای یک کلاس

محدودیت زمان­های ترجیهی برای چند کلاس (می­توان یک گروه از درس­ها را با توجه به استاد، موضوع درس، برچسب درس یا دانشجویان و مجموعه­ای از دوره­های زمانی و زمان­هخای ترجیهی را مشخص کرد)

محدودیت روی زمان­های تفریح

محدودیت بیشینه ساعت­های روزانه برای دانشجویان

محدودیت بیشینه ساعت­های روزانه برای اساتید

محدودیت در دسترس نبودن یک گروه از دانشجویان

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

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

محدودیت بیشنیه فاصله­های زمانی یک استاد در هر هفته

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

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

محدودیت عدم همپوشانی کلاس­ها

محدودیت حداقل فاصله­ها بین کلاس­ها

محدودیت دو کلاس متوالی و پی در پی

محدودیت دو کلاس هم گروه

محدودیت دو کلاس متوالی(نه الزاما پی در پی)

محدودیت کلاس­هایی که روز دانشجویان را پایان می­دهند

محدودیت بیشینه فاصله­های زمانی هر استاد در یک روز

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

محدودیت بیشینه ساعت­های متوالی برای دانشجویان

محدودیت­ بیشینه ساعت بازه­های زمانی روزها در هر هفته برای اساتید

محدودیت­ بیشینه ساعت بازه­های زمانی روزها در هر هفته برای دانشجویان

مجموعه بزرگ و انعطاف پذیری از محدودیت­های مکانی:

محدودیت­های اساسی و اجباری مکانی

محدودیت عدم در دسترس بودن اتاق­ها

محدودیت اتاق ترجیهی یک کلاس

محدودیت اتاق ترجیهی یک درس

محدودیت اتاق ترجیهی برای یک برچسب درسی

محدودیت روی بیشینه تعویض ساختمان در یک روز برای اساتید

محدودیت روی بیشینه تعویض ساختمان در یک روز برای دانشجویان

محدودیت حداقل فاصله زمانی بین تغییر ساختمان­ها برای هر استاد

محدودیت حداقل فاصله زمانی بین تغییر ساختمان­ها برای دانشجویان

محدودیت استادی که یک اتاق ترجیهی دارد

محدودیت گروه دانشجویانی که یک اتاق ترجیهی دارند

حداکثر تغییر ساختمان­ها در روز برای یک استاد

حداکثر تغییر ساختمان­ها در روز برای همه استاد

حداکثر تغییر ساختمان­ها در روز برای گروه دانشجویان

حداکثر تغییر ساختمان­ها در روز برای همه دانشجویان

 

 

 


 

1.        توضیح الگوریتم

این نرم افزار از الگوریتم اکتشافی[4] استفاده می­کند، به این ترتیب که کلاس­ها را به ترتیب مرتب کرده و از مشکل ترین آن­ها شروع می­کند. در صورتی که امکان چیدن این کلاس نباشد، به عنوان یک کلاس با ویژگی غیر قابل چیده شدن مطرح می­شود، در نتیجه کاربر می­تواند با تغییر خصوصیات آن به رفع مشکل به وجود آمده اقدام نماید. این الگوریتم کلاس­ها را به صورت بازگشتی جا به جا می­کند تا برای کلاس­های جدید فضا ایجاد شود و در حالتی که امکان قرارگیری کلاس جدید در جدول زمانبندی نباشد به عقب باز گشته[5] و ترتیب رسیدگی به کلاس­ها را تغییر می­دهد. کد مربوط به این عملیات در شاخه زیر قرار دارد:

src/engine/generate.cpp

وقتی که یک کلاس قرار است در محل زمانی خود قرار بگیرد، در صورتی که چند بازه زمانی مختلف برای آن وجود داشته باشد، بازه­ای انتخاب می­شود که کمترین تعداد کلاس­های مخالف[6] وجود داشته باشد و به طور بازگشتی بین این حالت­های مختلف جا به جا می­شود. برای این که از افتادن به درون حلقه­های تکراری جلوگیری شود، از یک آرایه­ی مرجع از کلاس­ها استفاده شده است که در هر بار کلاس چیده شده در زمانبندی از داخل این آرایه حذف می­شود.

بیشترین عمق(سطح) برای بازگشت در این الگوریتم 14 در نظر گرفته شده است. بیشترین تعداد فراخوانی­های بازگشتی معادل با دو برابر کلاس­های داخلی(2*nInternalActivities) است. برای این عدد مقادیر دیگری نیز امتحان شده اند نظیر 2 * (تعداد کلاس­های قرار گرفته در زمانبندی +1 )، عدد کنونی الزاما بهترین عدد ممکن نیست و ممکن است با توجه به حالت­های دیگر نتیجه بهتری نیز به دست بیاید، اما در بین اعداد امتحان شده و ورودی­های آزمایشی انتخاب شده برای برنامه این عدد از بقیه اعداد نتیجه بهتری در برداشت.

اما این برنامه چگونه به زمان­های آزاد و فواصل بین کلاس­های دانشجویان رسیدگی می­کند؟ برای این منظور برای هر زیرگروه مجموع ساعت­های هفتگی محاسبه شده، سپس هنگام تولید جدول، مجموع زمان ساعت­های درسی و فواصل بین آن­ها نباید از بیشتر از مجموع همه ساعت­های هفتگی برای هر زیرگروه شود.

 ساختار جواب به صورت آرایه­ای از زمان­ها(times[MAX_ACTIVITIES]) و اتاق­های(rooms[MAX_ACTIVITIES) است، همانطور که قبلا گفته شد کلاس­ها به تریتب سختی شرایط آن­ها چیده شده و سخت ترین آن­ها اول قرار می­گیرد. عملیات مرتب­سازی در generat_pre.cpp انجام می­شود. همچنین در این فایل تعدادی ماتریس ساخته می­شود که کار با آن­ها به مراتب از کار کردن مستقیم با لیست محدودیت­ها راحت تر است. تولید زمانبندی به صورت بازگشتی انجام می­شود. فرض کنید به کلاس شماره n رسیده باشیم، permutation[added_act] (permutation[i]  added_act - از 0 تا gt.rules.nInternalActivities کلاس­ها را به صورت مرتب نگه می­دارد، سخت ترین اول قرار دارد، و این ترتیب ممکن است در هنگام ایجاد جدول تغییر کند.) در این الگوریتم هر بازه زمانی کنترل می­شود و برای هر بازه کلاس­هایی که با permutation[added_act] تداخل دارند مشخص می­شوند. سپس این بازه­های زمانی مرتب شده  و بازه­ای که کمترین لیست از کلاس­هایی برخوردی را دارد اول قرار می­گیرد. سپس برای اولین، دومین و ... آخرین بازه: کلاس­ها از داخل این بازه خالی شده  و permutation[added_act] داخل آن­ قرار گرفته و تلاش می­شود دیگر کلاس­ها با روشی مشابه به صورت بازگشتی درون جدول زمانبندی قرار بگیرند. بیشترین سطح برای بازگشت 14 است و بیشترین تعداد فراخوانی برای این روش، random_swap(act, level) برابر 2* nInternalActivities است.

در صورتی که امکان قرار دادن permutation[added_act] با این روش نبود(از محدودیت 2* nInternalActivities عبور کردیم)، سپس بهترین بازه زمانی انتخاب می­شود و permutation[added_act] درون آن قرار گرفته و دیگر کلاس­های دارای تلاقی با آن از این بازه خارج شده و در لیست کلاس­های رسیدگی نشده قرار می­گیرند. با این روش مقدار added_act ممکن است کم شود. سپس مسیر همه تلاش­ها و کلاس­های پاک شده در بازه­های زمانی و فعالیت­های صورت گرفته در باره قرار دادن این کلاس در زمانبندی ذخیره شده تا در آینده از مراجعه دوباره به آن­ها جلوگیری شود.

در صورتی که سطح بازگشت بزرگتر یا مساوی 5 بود، عملیات random_swap فقط در بازه زمانی اول(بهترین بازه) جستجو می­کند. بنابر این در سطح صفر برای همه بازه­های زمانی عملیات جستجو صورت می­گیرد، برای سطوح 1 تا 4 هم به همین صورت، در سطح صفر فقط بازه اول(بهترین) و برای سطوح 6 به بعد هم باز فقط اولین بازه زمانی(بهترین) بررسی می­شود. وقتی به سطح 13 رسیدیم، به سطح 4 برگشته و بازه بعدی را انتخاب می­کنیم و به همین ترتیب کار را ادامه می­دهیم.


 

2.      راهنمای کار با برنامه

2.1.     مقدمه

این مستند شامل یک راهنمای جامع به همراه تعداد زیادی مثال می­باشد. در این مستند سعی شده است تا نحوه کار کردن با برنامه به صورت کاملا ساده توضیح داده شود تا افرادی که دارای دانش اولیه کار با رایانه هستند توانایی کار کردن با این نرم افزار را داشته باشند. در صورتی که قسمتی از راهنما دچار ابهام بود و یا نکات تکمیلی به نظر شما خواننده گرامی رسید، خوشحال خواهم شد در صورتی که با آدرس­های پست الکترونیکی زیر، آن را با من نیز در میان بگذارید:

Ha_Sadeghi@ce.sharif.edu

hamed_sadeghineshat@sfu.ca

2.2.    نصب برنامه

تنها کاری که باید برای اجرای این برنامه انجام داد، انتقال پوشه حاوی فایل­های آن به محل مورد نظر است.

2.3.   استفاده از برنامه

این نرم­افزار یک برنامه کاملا ساخت یافته به صورت QT-Application است، شما باید این راهنما را به دقت مطالعه کنید تا بتوانید از همه راهنمایی­ها و هشدارها در زمینه استفاده صحیح از برنامه مطلع شوید.

2.3.1. فایل

در این برنامه شما امکان ذخیره و باز کردن فیال را دارید. این برنامه دارای گزینه مستقلی برای چاپ برنام تولید شده در محیط برنامه نیست. پس از عملیات ایجاد جدول زمانبندی، جداول تولید شده در پوشه result قرار می­گیرند. در  قسمت چاپ جدول در این مستند می­توانید با نحوه چاپ جدول آشنا شوید.

مجموعه داده­های خود را به صورت منظم و مداوم ذخیره کنید، مخصوصا اگر می­خواهید محدودیت­ها را اضافه و یا ویرایش کنید. در حال حاضر این نرم­افزار قابلیت برگشت[7] ندارد. در برخی موارد بازگرداندن آخرین تغییر بسیار دشوار است. همچنین در صورتی که برنامه نتوانست بعد از مدت زمانی طولانی راه حلی برای شرایط مشخص شده پیدا کند، شاید بخواهید تغییرات را به شرایط قبلی بازگردانید ولی این­که آخرین تغییرات کدام بوده اند ذخیره نشده اند، در نتیجه باید این کار را به صورت دستی انجام دهید.

مجموعه داده­های ذخیره شده تنها شامل تنظیمات اولیه، کلاس­ها و محدودیت­ها می­باشد و جدول­های زمانبندی تولید شده را شامل نمی­شود.

در صورتی که می­خواهید جدول­های تولید شده نیز ذخیره شوند، باید مسیر زیر را دنبال کنید:

جدول ذخیره داده­ها+جدول با نام.... . در این صورت جداول تولید شده در فایل xml نیز ذخیره می­شوند. توجه داشته باشید که جداول به صورت خودکار در پوشه result ذخیره می­شوند.

2.3.2.داده­ها

داده­ها شامل تنظیمات اولیه، کلاس­ها و محدودیت­ها می­باشد و جدول­های زمانبندی تولید شده را شامل نمی­شود.

2.3.2.1.تنظیمات اولیه

2.3.2.1.1.                     نام و توضیحات[8] موسسه

نام و توضیحات در مورد موسسه داده های اختیاری هستند. نام وشخص شده برای موسسه در در محل عنوان بالای همه جداول تولید شده چاپ می­شوند. توضیحات نیز در ابتدای جدول زمانبندی چاپ می­شوند. از توضیحات برای بیان مشکلات، آخرین محدودیت­های اضافه شده، محدودیت­های لازم و یا محدودیت­هایی که باید ویرایش شوند استفاده می­شود. مواظب به روزرسانی مداوم توضیحات باشید، توضیحات قدیمی همانند توضیحات غلط ممکن است مسئله ساز شوند.

2.3.2.1.2.                     روزهای هر هفته و ساعت­های(دوره[9]) هر روز

بیشتر موسسات آموزشی فقط نیازمند روزهای شنبه تا چهارشنبه (برخی موسسات پنجشنبه) هستند. این عبارت­ها در جدول هم چاپ می­شوند. منظور از ساعت همان یک بازه­زمانی است. ساعت­ها نیز در جدول چاپ می­شوند، لذا توصیه می­شود از عبارات کوتاه شده استفاده شود. شما می­توانید از هر عبارتی به جای بازه­های زمانی استفاده کنید.

 

 

شما باید همواره موظب باشید که همه دوره­ها طول یکسان داشته باشند، چرا که این برنامه بین طول­های مختلف فرقی نمی­گذارد و هنگام تخصیص بازه زمانی همه آن­ها را یک بازه زمانی(با طول مشابه برابر 1) در نظر می­گیرد. (مگر مواردی که بازه­ای را به منظور خاصی اضافه می­کنید، مثلا در مثال 4، می­توان بازه 10:00-09:35 را اضافه کرد و آن را همیشه برای زمان تفریح و یا زمان خالی (با منظور کردن یک محدودیت زمان تفریح) در نظر گرفت.)

مثال 1

مثال 2

مثال 3

مثال 4

مثال 5

1st Period
2nd Period
3th Period
4th Period
5th Period
6th Period

Period 1
Period 2
Period 3
Period 4
Period 5
Period 6

1
2
3
4
5
6

08.05 – 08.50
08.50 – 09.35
10.00 – 10.45
10.50 – 11.35
11.50 – 12.35
12.35 – 13.20

08.05
08.50
10.00
10.50
11.50
12.35

 

بنابراین با مثال­های بالا، یک کلاس با طول 1، همواره 45 دقیقه و فعالیت با طول 2، 90 دقیقه زمان می­گیرد. فعالیت­ها نمنی­توانند طولی به صورت غیر صحیح (مثلا 1.5) داشته باشند. در صورتی که موسسه شما دارای کلاس­هایی با مدت زمان نختلف است، مثلا کلاس­ها 90 دقیقه­ای، 120 دقیقه­ای و 60 دقیقه­ای، بازه­های زمانی را به صورت 30 دقیقه­ای تعریف نید. به این صورت کلاس­های 60 دقیقه­ای، 90 دقیقه­ای و 120 دقیقه­ای به ترتیب طول­هایی برابر 2، 3 و 4 خواهند داشت. در صورتی که برنامه نتوانست جدولی برای شما تولید کند، باید به فکر افزایش تعداد بازه­ها و یا افزایش تعداد روز­ها باشید. در صورتی که برنامه خیلی راحت و بدون مشکل هم به نتیجه رسید، روزها و بازه­های زمانی را کنترل کنید، شاید تعداد آن­ها خیلی زیاد باشد!

2.3.2.1.3.                     اساتید، درس­ها، برچسب کلاس­ها و اتاق­ها

 

برای اضافه کردن اساتید، درس­ها، برچسب کلاس­ها و اتاق­ها و ساختمان­ها. این اسامی نیز در جدول چاپ می­شوند، لذا از اسامی کوتاه­ استفاده کنید. منظور از برچسب کلاس، یک توضیح اختیاری برای یک کلاس است. به طور مثال تمرین و یا آزمایشگاه. در صورتی که یک کلاس با طول 2 واحد بخواهد در بازه­های فرد(اول، دوم، سوم و ..) شروع شود، برچسب فعالیت باید فرد باشد، در صورتی که یک کلاس حتما باید صبح برگزار شود، برچسب آن می­تواند صبح باشد.

 

توصیه می­شود قبل از اضافه کردن برچسب فعالیت­ها، فصل مربوط به محدودیت­ها و بخش مربوط به زمان­های ترجیهی را به طور کامل مطالعه­کنید.

برای اضافه کردن برچسب فعالیت­ها خیلی مواطب باشید، پیشنهاد من این است که از برچسب فقط برای اعمال محدودیت استفاده کنید، البته ابتدا تلاش کنید تا محدودیت را بدون برچسب اعمال کنید، چون بسیار راحت تر است.

در مورد اتاق­ها، هر اتاق ظرفیت 1 دارد، بنابر این همواره یک کلاس می­تواند در یک اتاق برگزار شود. شما الزامی به اضافه کردن ساختمان ندارید، فقط وقتی ساختمان اضافه کنید که می­خواهید از محدودیت­های مربوط به آن استفاده کنید(مانند بیشینه تغییر بین ساختمان­ها). در صورتی که ساختمان­های متعددی اضافه کردید، مواظب باشید که در ساختمان­های مختلف، اتاق­های هم نام نباید وجود داشته باشند، لذا بهتر است قسمتی از نامن ساختمان را نیز در نام اتاق منظور کنید.

2.3.2.1.4.                     سال­ها، گروه­ها و زیرگروه­ها

فهمیدن تفاوت بین سال­ها، گروه­ها، زیرگروه­ها، کلاس[10]­ها، بخش­ها و دسته­[11]ها بسیار مهم است، اما ساده نیست! لطفا مثال­ها و تعاریف را به دقت مطالعه کنید.

سال: مجموعه­ای از دانشجویان که در یک سطح از دروس هستند(و یا با هم در یک سال وارد موسه شده اند)

گروه: مجموعه­ای از دانشجویان که کلاس­های مشابهی دارند. لذا این افراد اساتید مشابه و دروس مشابهی در زمان مشابه دارند.

دسته: مجموعه­ای از گروه­ها که ممکن است کلاس­هایی را به صورت موازی و در یک زمان با هم داشته باشند.

 

کلاس(بخشی از تقسیم بندی اول): مجموعه­ای از دانشجویان که کلاس­های مشابه دارند. این نرم افزار اجازه استفاده از عبارتclass را نمی­دهد، برای این که این عبارت به معانی دیگر نیز در زبان گفتگو به کار می­رود. با توجه به شرایط گوناگون، یک دانشجو می­گوید که او کلاس A یا کلاس1 و یا کلاس 1A را دارد. در این مثال برنامه به 1 می­گوید سال، A یک بخش از یک طبقه  و 1A یک گروه.

مثال :

در یک مدرسه ابتدایی آلمانی 4 سال وجود دارد، اما در آنجا تعدادی گروه مختلف وجود دارد. مثلا گروه های 1A, 1B, 1C, 2A, 2B, 2C, 3A, 3B, 4A, 4B . برای وارد کردن اولین سال این مثال عدد 1 را وارد کنید. سپس با انتخاب دسته­ها، سال را به صورت خودکار تقسیم کنید. تعداد دسته­ها را به 3 افزایش داده و آن­ها را A و B و C در نخستین دسته بنامید.سپس به گروه­ها نگاه کنید و ببینید چه اتفاقی افتاده است.

درس(بخش از دسته دوم): مجموعه ای از دانش­ آموزان که معمولا کلاس­های یکسان دارند.

 

course

subject (duration)

Biology
Chemistry
Physics

Biology (4), chemistry (1), physics (2)
Biology (1), chemistry (4), physics (2)
Biology (2), chemistry (1), physics (4)

 

 

2.3.2.2.              کلاس­ها 

 

یک کلاس معمولا دارای یک موضوع درسی، یک مجموعه از دانشجویان، یک استاد و یک طول مشخص است. کلاس­ها همچنین می­توانند شامل برچسب کلاس، چند مجموعه از دانشجویان و نیز چند استاد باشند.

 

2.3.2.2.1.                     قبل از اضافه کردن کلاس

قبل از اینکه به اضافه کردن کلاس بپردازید، باید یک طرح کلی از کلاس­ها را آماده کنید. در حال حاضر این نرم­افزار کمکی در این مرحله ارائه نمی­کند. این طرح اولیه می­تواند شامل موارد زیر باشد:

·         آیا همه دانشجویان تعداد کافی و درست از کلاس­ها را دارند؟

·         آیا همه اساتید تعداد کافی و درست از کلاس­ها را دارند؟

·         آیا امکان دارد که کلاس­های مختلف یک موضوع درسی به صورت موازی برگزار شوند؟

2.3.2.2.2.                     اضافه کردن یک کلاس

برای اضافه کردن یک کلاس، کافی است که دانشجویان، موضوع درس و اساتید را انتخاب کنید. برای این منظور کافی است گزینه مورد نظر را انتخاب کرده و سپس کلید Enter را فشار دهید و یا می توانید روی گزینه موردنظرتان دبل کلیک کنید.

 

معمولا یک کلاس دارای یک موضوع درسی، یک مجموعه از دانشجویان و یک استاد است. در این صفحه باید تعداد ساعت­های این کلاس را نیز در قسمت "تقسیم کن به ... کلاس در هر هفته" مشخص کنید. محدودیت حداقل تعداد روزهای لازم بین دو کلاس در اینجا یکی از مهمترین محدودیت ها است.

مثال:

درس جغرافی هفته­ای 1 جلسه برگزار می­شود. برای اضافه کردن آن کافی است مجموعه دانش­آموزان، استاد و نام درس را انتخاب کرده و آن را به کلاس­های دیگر اضافه کرد(با فشرد کلید"کلاس کنونی را اضافه کن").

درس هنر در دو جلسه متوالی در یک روز هفته برگزار می­شود. بعد از اضافه کردن دانشجو،استاد و نام درس، طول را برابر 2 قرار می­دهیم.

درس زبان، در 4 بجلسه غیر متوالی و در روزهای مختلف برگزار می­شود، بعد از اضافه کردن دانشجو،استاد و نام درس، عدد مربوط به قسمت­های کلاس را از یک به 4 افزایش داده و با افزایش درصد وزنی به 100، برای هر روز طول 1 را انتخاب می­کنیم. در صورتی که بخواهیم این حالت را اضافه کنیم، ولی کلاس­ها لازم نباشد جلسات حتما در 4 روز متفاوت برگزار شوند، درصد وزنی را برابر 95 قرار می­دهیم.

بعد از اضافه کردن همه کلاس­ها، به قسمت آمارها رفته و کلاس­ها را کنترل کنید.

2.3.2.2.3.                     اضافه کردن کلاس­های دو هفته یکبار

به طور کلی دو راه برای اضافه کردن کلاس­های دو هفته یکبار وجود دارد

2.3.2.2.4.                     اضافه کردن کلاس­ها با تیمی از اساتید

منظور از این عبارت این است که 2 یا جند استاد به گروهی از دانشجویان در یک بازه زمانی درس بدهند. در این گونه موارد مواظب اتاق خانگی باشید، چون اتاق خانگی یک استاد اجازه اضافه کردن تیم اساتید را نمی­دهد. در این گونه موارد از اتاق ترجیهی استفاده کنید.

برای تیم اساتید، یک کلاس باید حداقل 2 استاد داشته باشد. کافیست یک کلاس را با همه اساتید مورد نظر گروه دانشجویان و درس مربوطه اضافه کنید.

یک کلاس به 4 کلاس در طول هفته تقسیم شده است. فقط یکی از این جلسات باید توسط 2 استاد اداره شود. برای این حالت دو راه مختلف وجود دارد:

راه اول: یک کلاس ایجاد کرده و آن را به 4کلاس مختلف تقسیم کنید برای آن فقط یک استاد انتخاب کنید، در این حالت شماره یکی از این 4 جلسه را به خاطر بسپارید و سپس یک کلاس یک جلسه­ای با استاد دیگر بدون گروهی از دانشجویان بسازید. حالا با استفاده از محدودیت شروع مزمان با کلاس دیگر را برای کلاس احیر درست کرده و برای کلاس دیگر همان شماره را وارد کنید.

راه دوم: یک ککلاس را با سه جلسه و یک استاد اضافه کرده و سپس کلاس دیگری را به صورت تک جلسه ای با دو استاد اضافه کنید.

2.3.2.3.             محدودیت­ها

2.3.2.3.1.                     وزن محدودیت­ها

هر محدودیتی یک وزن دارد. در صورتی که این محدودیت 100% باشد، یعنی این محدودیت حتما باید اعمال شود. در صورتی که وزن آن کمتر باشد، به این معنی است خوب است اعمال شود ولی الزامی نیست. این برنامه با توجه به مقدار درصد وزنی، برای اعمال محدودیت تلاش می­کند.

همواره قبل از اضافه کردن یک محدودیت جدید، از قابل تولید بودن جدول مطمئن شوید، ممکن است محدودیت جدید قابل تولید شدن نباشد. با اضافه شدن هر محدودیت جدید، سرعت تولید جدول کمتر می­شود، لذا فقط محدودیت­های لازم را اضافه کنید.

چگونه یک محدودیت درست و مناسب اضافه کنیم؟ به نظر من همه محدودیت­ها باید وزنی نزدیک 100% داشته باشند، مخصوصا در مورد محدودیت­هایی که دارای یک مقدار دیگر بیشینه نیز باشند(مانند روزها، دورها و فاصله­ها) محدودیت در مورد حداقل روزها بین کلاس­ها از حساسیت کمتری برخوردار است، چون این محدودیت باید همیشه 100% باشد.

خوب است که ابتدا یستی از محدودیت­ها تهیه شده و بر اساس اهمیت مرتب شوند. اما توصیه نمی­شود که مهمترین محدودیت دارای درصد وزنی 100 باشد، بعدی 99 و تا آخر.

2.3.2.3.2.                     محدودیت­های اجباری اساسی برای زمان و مکان

محدویت­های اساسی عبارتنداز:

·         محدودیت­های زمانی: محدودیت­های اجباری اساسی برای زمان

·         محدودیت­های مکانی: محدودیت­های اجباری اساسی برای مکانی

این محدودیت­ها همیشه باید درصد وزنی 100 داشته باشند و باید همیشه در داده­ها منظور شوند. محدودیت­های اساسی اجباری برای زمان برای تضمین این مسئله است که یک استاد در یک لحظه چند درس را ارائه ندهد. محدودیت­های اساسی اجباری برای مکان تضمین می­کنند که در یک لحظه در یک اتاق چند درس ارائه نشود.

2.3.2.3.3.                     در دسترس نبودن اساتید، دانشجویان یا اتاق­ها و زمان­های تفریح[12]

محدودیت­های در دسترس نبودن و زمان­های تفریح عبارتند از:

·         محدودیت­های زمانی(اساتید) یک استاد در دسترس نیست.

·         محدودیت­های زمانی(دانشجویان) مجموعه­ای از دانشجویان در دسترس نیستند

·         محدودیت­های مکانی(اتاق­ها) یک اتاق در دسترس نیست

·         محدودیت­های زمانی(ترکیبی) زمان­های تفریح(در دسترس نبودن همه اساتید + همه دانشجویان)

ممکن است در برخی شرایط اساتید، دانشجویان و یا اتاق­ها در دسترس نباشند. این محدودیت­ها باید درصد وزنی 100% داشته باشند. در صورتی که یک استاد و یا گروهی از دانشجویان محدودیت در دسترس نبودن داشته باشد، ممکن است این بازه "آزاد" یک فاصله زمانی[13]باشد. بنابر این در صورتی که از محدودیت­هایی در مورد فواصل زمانی هم استفاده می­کنید؛ توجه بیشتری داشته باشید.

مثال:

یک استاد روزهای 3یکشنبه و سه­شنبه در موسسه­ی دیگری تدریس می­کند. در این صورت می­توان از محدودیت در دسترس نبودن استاد استفاده کرد.

یک گروه از دانشجویان در روز­های دوشنبه در بازه­های اول و دوم باید در موسسه دیگری حاضر باشند. در این صورت می­توان از محدودیت در دسترس نبودن مجموعه­ای از دانشجویان استفاده کرد. در جدول زمانبندی دانشجویان علامت ----- ظاهر می­شود.

یک واحد درسی با دانشکده­ی دیگری به صورت مشترک ارائه می­شود. در این صورت با مسئول زمانبندی دانشکده دیگر صحبت کرده و مشخص کنید که کدام دانشکده در کدام بازه زمانی می­تواند از کلاس استفاده کند. برای در نظر گرفتن محدودیت می­توان از محدودیت در دسترس نبوردن اتاق استفاده کرد.

محدودیت زمان تفریح، راه ساده­ای برای بیان کردن در دسترس نبودن همه اساتید و دانشجویان است.

یک موسسه تمام وقت در صبح و بعد از ظهر شنبه تا پنجشنبه کلاس دارد، اما نباید در بعد از ظهر پنجشنبه کلاس داشته باشد. برای این منظور محدودیت زمان تفریح را برای تعریف بعد از ظهرهای پنجشنبه به عنوان زمان تفریح اضافه کنید(در دسترس نبودن همه دانشجویان + همه اساتید)

زمان ناهار دانشجویان و اساتید همیشه در بازه هفتم قرار دارد. از محدودیت زمان تفریح برای بازه هفتم همه روزهای هفته استفاده کنید. البته شاید بهتر باشد تا از ابتدا بازه هفتم را در بین بازه­ها وارد نکنیم!

2.3.2.3.4.                     حداقل تعداد روزها بین گروهی از کلاس­ها(جلسات مختلف آن کلاس)

این محدودیت از محدودیت­های زمانی است: حداقل تعداد روزها بین گروهی از کلاس­ها. می­توانید قسمت اضافه کردن کلاس را نیز برای این محدودیت مطالعه کنید. در صورتی که جلسات مختلف کلاس باید در روزهای مختلف باشند ولی این ازام اجباری نیست، می­توانید محدودیت حداقل روزها را با وزنی کمتر از 100 اضافه کنید. در صورتی که یک کلاس را اضافه کنید، این کار به طور خودکار انجام می­شود. بنابر این، در حالت ایده آل همه کلاس­ها در روزهای مختلف قرار دارند و در بدترین حالت همه محدودیت­ها نادیده گرفته شده و جلسات مختلف کلاس در یک روز قرار می­گیرند.

اگر بخواهیم کلاس­ها در روزهای مختلف قرار بگیرند ولی اجباری در آن نباشد، و در صورت قرار گرفتن در یک روز بخواهیم به صورت متوالی قرار بگیرند، محدودیت حداقل روزهای بین جلسات را اضافه کرده و سپس در محل متوالی بودن جلسات، علامت می­زنیم. بنابراین در حالتت ایده آل همه حلسات در روزهای مختلف قرار می­گیرند و در غیر این صورت اگر در یک روز قرار بگیرند، حداکثر دو جلسه می­توانند به صورت متوالی قرار بگیرند. بنابراین غیر ممکن است که 3 جلسه مختلف یک کلاس در یک روز قرار بگیرند. در بد ترین حالت، در روزهای مختلف هر کدام دو جلسه متوالی داریم.

در قرار دادن محدودیت­ها، مواظب باشید که دانشجویان دارای بازه­های خالی باشند، در غیر این صورت در صورت پر بودن زمان دانشجویان، با اضافه کردن محدودیت­های 100%، جدول زمانبندی غیرقابل تولید می­شود.

همچنین مواظب حالتی که دانشجویان بازه زمانی خالی در جدول نداشته باشند باشید، جدول ممکن است غیر قابل تولید شود، زیرا در جدول­هایی که کاملا پر هستند، کلاس­های دروس مشابه به صورت موازی زمانبندی می­شوند

به مثال زیر توجه کنید:

درس

کلاس(طول)

علوم طبیعی
هنر
زبان خارجی

زیست شناسی(2)، شیمی(2)، فیزیک(2)
هنر (6)
فرانسه(4) ،انگلیسی(2)

در صورتی که استاد زیست شناسی بخواهد قفط یک کلاس با طول 2 بگیرد، اساتید فیزیک و شیمی هم باید فقط یک کلاس ب طول 2 بگیرند و یا کلاس­های دوجلسه­ای با طول 1 بگیرند. در صورتی که استاد هنر بخواهد 3 جلسه با طول بگیرد، ولی استاد فرانسه بخواهد 4 جلسه با طول 1 داشته باشد، جدول غیر قابل حل می­شود.

هر دو استاد دلایل کافی دارند که چرا جلسه­ای با طول 1 یا دوجلسه متوالی می­خواهند. درس فرانسه باید به صورت 4 جلسه متوالی باشد تا یادگیری بهتر صورت پذیرد و درس هنر به صورت عملی است و بهتر است که جلساتی با طول 2 داشته باشد.

بنا بر این بهتر است در مورد تداخل­های اینچنینی زودتر فکر کرد. با اساتید صحبت کنید و شرایط را توضیح دهید و یک راه حل پیدا کنید. یک راه حل احتمالی به این ترتیب است: استاد فرانسه 4 جلسه مجزا با درصد وزنی 100% داشته باشد(با محدودیت حداقل تعداد روزها). این به این معنی است که استاد درس هنر فقط می­تواند برای کلاسش 4 جلسه داشته باشد که 2تا از آن­ها دارای طول 2 و 2تای دیگر طول 1 دارند. در این صورت دیگر نیازی به محدودیت حداقل روزها نیست، چرا که محدودیت کلاس فرانسه خود به خود این محدودیت را نیز اعمال می­کند. همچنین نرم­افزار در مورد پی در پی بودن کلاس­های زبان­های فرانسه و انگلیسی نیز مراقب خواهد بود، چون درس­های علوم طبیعی نیاز به کلاس­هایی با طول 2 دارند. نگاهی هم به دروس علوم طبیعی بیاندازیم. این بدین معناست که غیرممکن است همه درس­ها دارای تنها یک جلسه کلاس با طول 2 باشند. در صورتی که فیزیک و انگلیسی توسط یک استاد تدریس شوند، بنابراین فیزیک نمی­تواند دارای 2 بازه متوالی باشد. در صورتی که فیزیک و فرانسه توسط یک استاد تدریس شوند، پس هیچ درسی از علوم طبیعی نمی­تواند 2 بازه متوالی داشته باشد.

2.3.2.3.5.                      بیشینه و حداقل بازه­های زمانی در یک روز

محدودیت­های بیشینه و حداقل بازه­های زمانی در هر روز عبارتند از:

·         محدودیت زمانی(اساتید): بیشینه ساعت­های روزانه برای یک استاد

·         محدودیت زمانی(اساتید): بیشینه ساعت­های روزانه برای همه اساتید

·         محدودیت زمانی(اساتید): حداقل ساعت­های روزانه برای یک استاد

·         محدودیت زمانی(اساتید): حداقل ساعت­های روزانه برای همه اساتید

·         محدودیت زمانی(دانشجویان): بیشینه ساعت­های روزانه برای یک گروه از دانشجویان

·         محدودیت زمانی(دانشجویان): بیشینه ساعت­های روزانه برای همه گروه­های  دانشجویان

·         محدودیت زمانی(دانشجویان): حداقل ساعت­های روزانه برای یک گروه از دانشجویان

·         محدودیت زمانی(دانشجویان): حداقل ساعت­های روزانه برای همه گروه­های  دانشجویان

 

محدودیت­های بیشینه و حداقل بازه­های زمانی در متوازن شدن چینش کلاس­ها در روزها موثرند.

گروه

کلاس­ها در هر هفته

1A, 1B
2A, 2B
3A, 3B
4A, 4B

20, 19
21, 20
25, 24
30, 29

 

فرش کنید در هر هفته 5 روز و در هر روز 6 ساعت داشته باشید، بنابراین کلا 30 باز در طول هفته داریم. دانشجویان تعداد متفاوتی از کلاس­ها(جلسات) را در هر هفته دارند.

بنا بر این بدون اعمال هیچ گونه محدودیتی، ممکن است گروه 1B 6 جلسه از شنبه تا 2 شنبه، یک جلسه در سه شنبه و صفر جلسه در چهارشنبه داشته باشد.

دانشجویان در سال اول و دوم، نمی­توانند مدت زمان زیادی را روی یک موضوع خاص تمرکز کنند، بنابراین بهتر است تا بیشینه ساعت­های روزانه را محدود کنیم. محدودیت بیشینه ساعت­های روزانه برای یک گروه از دانشجویان با بیشینه 4 و درصد وزنی 100% را برای سال اول وارد کنید. نمی­توان برای دیگر سال­ها نیز این محدودیت­را اضافه کرد، چرا که در این صورت جدول غیر قابل حل می­شود.(البته ممکن است بتوانید این محدودیت را به سال­های دیگر با درصد وزنی کمتر اعمال کنید.)

محدودیت بیشینه ساعت­های روزانه برای یک گروه از دانشجویان با بیشینه 5 و درصد وزنی 100% را برای سال دوم وارد کنید. نمی­توان برای سال­های 3 و 4 نیز این محدودیت را اضافه کرد.

دیگر نیازی به اضافه کردن محدودیت بیشینه ساعت­های روزانه برای یک گروه از دانشجویان با بیشینه 6 نیست، چرا که جدول شما روزانه فقط 6 بازه زمانی دارد.

شما نیازی به اضافه کردن محدودیت حداقل ساعت­های روزانه برای یک گروه از دانشجویان برای گروه­های 4A و 4B ندارید، چون نیازی نیست! شما نمی­توانید این محدودیت را با 5 بازه برای گروه 3A وارد کنید، ولی ممکن است بسیار دشوار باشد. شما نمی­توانید این محدودیت را برای گروه 3B وارد کنید. بنابراین پیشنهاد می­کنم که محدودیت 4 بازه زمانی در هر روز را برای سال سوم وارد کنید. این کار در صورتی که سال2 حداقل 4 بازه در هر هفته بگیرد، مفید است.

شما می­توانید محدودیت حداقل ساعت­های روزانه برای یک گروه از دانشجویان را با حداقل 4 بازه برای گروه 1A وارد کنید، ولی ممکن است بسیار دشوار شود. شما نباید این محدودیت را برای گروه 1B وارد کنید. بنابراین پیشنهاد می­کنم محدودیت حداقل 3 بازه در هر روز را برای سال 1 وارد کنید.

به جای استفاده از محدودیت بیشینه بازه­ها در هر روز می­توانید از زمان­های ترجیهی استفاده کنید. این دو روش یکشان نیستند، ولی خیلی شبیه­اند، سریع تر بوده و ممکن است قدری قوی­تر باشد.

این کار را می­توان برای اساتید هم انجام داد، اما مواظب باشید، چرا که محدودیت بیشینه بازه­ها در هر روز تنها زمانی مفید است که موسسه شما تعداد زیادی بازه در هر روز داشته باشد.

محدودیت حداقل بازه­های روزانه برای یک استاد همیشه مفید نیست(به نظر من). قبل از اضافه کردن این محدودیت لازم است که از محددیت بیشینه بازه­ها در هر روز را برای داشتن یک جدول متعادل استفاده کرد. در مورد استفاده کردن از محدودیت بیشینه روزها در هر هفته برای تک تک اساتید فکر کنید، این کار ممکن است خیلی بهتر باشد، چرا که این محدودیت بسیار محکم تر است و نیازی بهاین نیست که استاد خود را با برنامه­های موسسه تطبیق دهد.

در مورد محدودیت حداقل ساعت­های روزانه برای همه اساتید احتیاط کنید. در صورتی که از این محدودیت با مقدار 2 استفاده کنید ولی در زمان مشابه استادی داشته باشید که تنها یک بازه در کل هفته تدریس می­کند، جدول قابل تولید نیست. دو راه حل برای این کار وجود دارد:

1-     به جای این که محدودیت حداقل ساعت­های روزانه برای همه اساتید را وارد کنید، برای تک تک اساتید به صورت جداگانه محدودیت حداقل ساعت­های روزانه را وارد کنید.

2-     برای استادی که مشکل دارد یک کلاس با نام استاد ولی بدون دانشجو وارد کنید. در صورتی که محدودیت اتاق خانگی برای استاد دارید، احتیاط کنید.

 

2.3.2.3.6.                     بیشینه روزها در هر هفته

این محدودیت عبارت است از:

            محدودیت­ زمانی(اساتید): بیشینه روزها در هر هفته برای یک استاد

 

این محدودیت در صورتی که دارای قرارداد همکاری با موسسه باشیم که طی آن باید تعدادی روزهای مشخص استاد با موسسه همکاری کند، اهمیت پیدا می­کند.

در صورتی که محدودیت بیشینه روزهای هفته را با مقدار 3 و درصد وزنی 100% وارد کنید و این استاد دارای کلاسی باشد که 4 جلسه دارد و دارای محدودیت حداقل تعداد روزهای بین جلسات با درصد وزنی 100 باشد، جدول غیر قابل تولید می­شود. احتیاط کنید، اکثر کلاس­ها این محدودیت را دارند.

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

در صورتی که نیاز به محدودیتی نظیر بیشینه روزها در هر هفته برای گروهی از دانشجویان داشتید، کافی است که یک کلاس با برای آن گروه از دانشجویان اضافه کنید ولی استادی به آن اضافه نکنید و به طول آن را به اندازه مورد نیاز مشخص کنید.

برای اضافه کردن محدودیت­های بیشینه روزها در هفته برای گروهی از دانشجویان و نیز بیشینه روزها برای همه اساتید، در مورد اثرات مشابه آن در محدودیت­های حداقل ساعت­های روزانه برای یک گروه از دانشجویان و حداقل ساعت­های روزانه برای همه اساتید بررسی کنید.

2.3.2.3.7.                     فاصله­های زمانی[14]

محدودیت­های بیشینه فاصله­های زمانی عبارتند از:

·         محدودیت­ زمانی (اساتید): بیشینه فواصل زمانی هر هفته برای یک استاد

·         محدودیت­ زمانی (اساتید): بیشینه فواصل زمانی هر هفته برای همه اساتید

·         محدودیت­ زمانی (اساتید): بیشینه فواصل زمانی هر روز برای یک استاد

·         محدودیت­ زمانی (اساتید): بیشینه فواصل زمانی هر روز برای همه اساتید

·         محدودیت­ زمانی (دانشجویان): بیشینه فواصل زمانی هر هفته برای یک گروه از دانشجویان

·         محدودیت­ زمانی (دانشجویان): بیشینه فواصل زمانی هر هفته برای همه گروه­های دانشجویان

منظور از فاصله زمانی، یک بازه زمانی استفاده نشده بین دو کلاس، بین یک کلاس و یک زمان تفریح و یا بین دو زمان تفریح است. این بدین معناست که مثلا بازه­های زمانی اول و آخر که بنا به دلیلی استفاده نمی­شوند، فاصله زمانی نیستند(چون بین دو فعالیت قرار نمی­گیرند) و یا مثلا زمان­های تفریح که کلاسی در آن­ها نیست به عنوان فاصله­زمانی محسوب نمی­شوند. از اینجا به بعد به جای عبارت فاصله زمانی، از معادل انگلیسی آن، یعنی گپ استفاده می­کنم.

در صورتی که به هر دلیلی، نباید بین کلاس­های دانشجویان فاصله باشد، و کلاسها باید به صورت پشت سرهم زمانبندی شوند، محدودیت بیشینه گپ­ها در هر هفته برای همه دانشجویان را برابر صفر قرار دهید و وزن آن­ را 100% منظور کنید.

اگر قرار باشد برای دانشجویان یک سال گپ داشته باشیم و برای دانشجویان سال دیگر نیازی به گپ نباشد، از محدودیت بیشینه گپ­ها در هرهفته برای یک گروه از دانشجویان استفاده می­کنیم و برای گروه­هایی که نباید گپ داشته باشند، مقدار آن را صفر و وزن آن را 100% در نظر می­گیریم.

در صورتی که دانشجویان یک سال اجازه داشته باشند که در هر هفته یک گپ داشته باشند، برای آن سال محدودیت بیشینه گپ­ها در هر هفته برای یک گروه از دانشجویان را با مقدار 1 و درصد وزنی 100% اضافه می­کنیم.

در ابتدا با درصد وزنی 100% و مقادیر زیاد بیشینه گپ­های هفته برای همه اساتید شروع کنید و سعی کنید تا جدول را تولید کنید، اگر نشد مقدار را مرحله به مرحله کاهش دهید.

به نظر می­آید که عادلانه باشد که از محدودیت بیشینه گپ­ها در هر هفته برای همه اساتید استفاده کنیم به جای اینکه برای هر استاد به صورت جداگانه از محدودیت بیشینه گپ­ها در هر هفته برای یک استاد استفاده کنیم.

در صورتی که از محدودیت بیشینه گپ­ها در هر هفته برای یک استاد به جای بیشنیه گپ­ها برای همه اساتید استفاده کردید، مواظب باشید که برای همه اساتید محدودیت را اعمال کنید.

در صورتی که اکثر اساتید، حداکثر 3 گپ در هفته داشته باشند و برخی از آن­ها 2 گپ، محدودیت بیشینه فاصله­های زمانی برای همه اساتید در هفته را با مقدار 3 و درصد وزنی 100% اعمال کرده ، سپس برای بقیه اساتید که گپ آن­ها 3 نیست، محدویت بیشینه فواصل زمانی در یک هفته برای ایک استاد را با مقدار 2(یا کمتر) و با وزن 100% وارد کنید.

در صورتی که اکثر اساتید گپ 2 داشته باشند و برخی از آن­ها گپ 3، دیگر نمی­توان مانند حالت قبل عمل کرد، چون همیشه مقدار کمتر از اولویت بیشتری برخودار است. برایاین کار باید محدودیت بیشینه فواصل زمانی در هفته برای همه اساتید را با مقدار 2 وارد کرد و سپس برای آن دسته از اساتیدی که نیاز به 3گپ دارند یک کلاس با نام درس گپ با طول 1 اضافه کرد. در این حالت در مورد اتاق خانگی اساتید مراقب باشید.

شما محدودیت بیشینه 2 گپ در هفته برای همه اساتید را وارد کرده­اید، اما در این حالت برخی از اساتید دو گپ به صورت متوالی در یک روز دارند و شما نمی­خواهید این حالت اتفاق بیفتد. برای این منظور، محدودیت بیشینه 1 گپ در هر روز را نیز برای اساتید به طور همزمان وارد کنید.

شاید کسی باشد که بگوید من به محدودیت حداقل تعداد گپ­ها در هر هفته نیاز داردم. در این برنامه محدودیتی با این عنوان و موضوع وجود ندارد، اما دو محدودیت هستند که می­توانند این کار را انجام دهند:

1-     استفاده از محدودیت بیشینه ساعت­های متوالی.

2-     می­توان مانند حالت قبل از کلاس­های بدون دانشجو استفاده کرد و به همراه آن در صورت نیاز از محدودیت زمان ترجیهی.

2.3.2.3.8.                     بیشینه ساعت­های متوالی

محدودیت­های بیشینه ساعت­های متوالی عبارتند از:

·         محدودیت زمانی(اساتید): بیشینه ساعت­های متوالی برای یک استاد

·         محدودیت زمانی(اساتید): بیشینه ساعت­های متوالی برای همه اساتید

·         محدودیت زمانی(دانشجویان): بیشینه ساعت­های متوالی برای یک گروه از دانشجویان

·         محدودیت زمانی(دانشجویان): بیشینه ساعت­های متوالی برای همه دانشجویان

 

این محدودیت می­تواند به منظور اعمال حداقل گپ­ها در هر روز به کار برود. در صورتی که یک نفر بیشیینه ساعت­های متوالی با مقدار 4 را بگیرد، این بدین معنی است که وی نمی­تواند به بیش از 3 ساعت متوالی تدریس کند. بنابر این در صورتی که او در روز 4 ساعت کار کند، بنابراین او خداقل یک گپ می­گیرد. در صورتی که او در هفته 7 ساعت تدریس کند، حداقل 2 گپ در روز می­گیرد.

2.3.2.3.9.                     دانشجویانی که زود شروع می­کنند

محدودیت­های دانشجویانی که زود شروع می­کنند، عبارت انداز:

·         محدودیت­زمانی(دانشجویان) : گروه دانشجویان که زودتر شروع می­کنند

·         محدودیت­زمانی(دانشجویان) : همه دانشجویان که زودتر شروع می­کنند

در صورتی که از این محدودیت استفاده کنید، روز دانشجویان همیشه در اولین بازه زمانی با یک کلاس شروع می­شود. ( مگر زمانی که از محدودیت در دسترس نبودن اساتید، دانشجویان و یا اتاق­ها و زمان تفریح استفاده کرده­ باشید)

در صورتی که اکثر دانشجویان با سرویس به موسسه می­آیند، همه آن­ها در ساعت اول می­رسند و در این ساعت معمولا اجازه گپ داده نمی­شوند. به این منظور از محدودیت همه دانشجویان که زودتر شروع می­کنند با درصد وزنی 100% استفاده کنید تا همه آن­ها در اولین بازه زمانی کلاس داشته باشند.

در صورتی که اکثر دانشجویان با سرویس به موسسه می­آیند، همه آن­ها در ساعت اول می­رسند و در این ساعت به سال اولی­ها اجازه گپ داده نمی­شود ولی سال بالایی­ها می­توانند گپ داشته باشند. به این منظور از محدودیت گروه دانشجویان که زودتر شروع می­کنند با درصد وزنی 100% استفاده کنید تا همه سال اولی­ها در اولین بازه زمانی کلاس داشته باشند.

در صورتی که اکثر دانشجویان با سرویس به موسسه می­آیند، همه آن­ها در ساعت اول می­رسند و در این ساعت معمولا اجازه گپ داده نمی­شوند. اما هیچ کدام از دانشجویان اجازه ندارند زود تر از ساعت چهارم، پنجم و یا ششم به خانه برگردند. به این منظور از محدودیت همه دانشجویان که زودتر شروع می­کنند با درصد وزنی 100% استفاده کنید تا همه آن­ها در اولین بازه زمانی کلاس داشته باشند و همچنین از محدودیت از محدودیت حداقل ساعت­های روزانه برای همه دانشجویان با مقدار 4 و درصد وزنی 100% استفاده کنید.

2.3.2.3.10.                 دو کلاس پی در پی

محدودیت دو کلاس پی در پی عبارت است از:

·         محدویت زمانی(کلاس­ها): 2 کلاس پی در پی اند

حدودیت دو کلاس پی در پی بدین معنی است که دو کلاس در یک روز قرار دارند و هیچی گپ، زمان تفریح یا کلاس دیگری بین آن­ها نیست.

مثال

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

برای رسیدن به هدف بالا، می­توان محدودیت دو کلاس پی در پی هستند را به آن فعالیت­ها اضافه کرد.

2.3.2.3.11.                 دو کلاس متوالی (نه پی در پی)

محدودیت دو کلاس متوالی عبارت است از:

·         محدودیت زمانی (کلاس­ها): 2 کلاس متوالی­اند.

 

معنی محدویت دو کلاس متوالی اند این است که کلاس اول قبل از کلاس دوم زمانبندی شود.(نه الزاما در یک روز)

در صورتی که دانشجویان درس فیزیک و آزمایشگاه آن را بخواهند در یک روز داشته باشند، می­توانی از این محدودیت استفاده کرد.

در استفاده کردن از این محدودیت احتیاط کنید، چرا که اعمال آن باعث می­شود قوانین سختی برای تولید جدول اعمال شود.

به نظر من این محدودیت بسیار خوب است، ولی در مورد استفاده نا به جا از آن احتیاط کنید! فرض کنید استادی دو درس ارائه دهد و بخواهد این دو درس به ترتیب باشند(موضوع دو درس مربوط بوده و به هم وابسته اند)، مثلا یکی در شنبه و دیگری در یکشنبه. اعمال این محدودیت با محدودیت دو کلاس متوالی قابل اجرا است ولی مشکلی که درست می­شود این است که ممکن است که جدول زمانبندی بسیار مقید شده است. فرض کنید بنا بر دلایلی مانند مریضی، استاد درس نتواند روز دیگری بیاید و به این ترتیب مجبور است کلاس روز دیگر را هم تعطیل کند، چرا که این دروس به هم وابسته اند! برای این کار بهتر است از محدودیت دو کلاس پی در پی استفاده کنید که هر دو کلاس در یک روز باشند.

2.3.2.3.12.                 حداقل فاصله­های زمانی (گپ) بین مجموعه­ای از کلاس­ها

محدودیت حداقل فاصله­های زمانی(گپ) بین مجموعه­ای از کلاس­ها عبارت است از:

·         محدودیت زمانی(کلاس­ها): حداقل فاصله­های زمانی(گپ) بین مجموعه از کلاس­ها

منظور از محدودیت حداقل فاصله­های زمانی(گپ) بین دو مجموعه ای از کلاس­ها، به معنی حداقل تعداد بازه­های زمانی بین دو کلاس است. بنابراین می­توان این محدودیت را نقطه مقابل محدودیت دو کلاس پی در پی در نظر گرفت.

 

2.3.2.3.13.                 زمان­های ترجیهی

 

 

محدودیت­های زمانی­های ترجیهی عبارت اند از:

·         محدودیت زمانی(کلاس­ها): یک کلاس یک زمان ترجیهی شروع دارد.

·         محدودیت زمانی(کلاس­ها): یک کلاس مجموعه­ای از باز­های زمانی ترجیهی دارد.

·         محدودیت زمانی(کلاس­ها): مجموعه­ای از کلاس­ها، مجموعه­ای از باز­های زمانی ترجیهی دارند.

·         محدودیت زمانی(کلاس­ها): مجموعه­از زیر کلاس­ها، مجموعه­ای از باز­های زمانی ترجیهی دارند.

·         محدودیت زمانی(کلاس­ها): یک کلاس مجموعه­ای از زمان­های ترجیهی شروع دارد.

·         محدودیت زمانی(کلاس­ها): مجموعه­ای از کلاس­ها، مجموعه­ای از زمان­های شروع ترجیهی دارند.

·         محدودیت زمانی(کلاس­ها): مجموعه­ای از زیرکلاس­ها، مجموعه­ای از زمان­های شروع ترجیهی دارند.

 

محدودیت زمان­های ترجیهی یک محدودیت بسیار مهم و قدرتمند است، شما با این محدویت­ها تقریبا توانایی انجام هر کاری را دارید! مخصوصا محدودیت مجموعه­از زیر کلاس­ها، مجموعه­ای از باز­های زمانی ترجیهی دارند، بسیار سودمند است. این محدودیت می­تواند در مورد کلاس­هایی که استاد یکسان دارند، دانشجویان یکسانی دارند و موضوع درسی یا برچسب یکسانی دارند خیلی مفید باشد.

تفاوت میان زمان شروع ترجیهی و بازه زمانی ترجیهی چیست؟

در صورتی که کلاس مربوط به این محدودیت­ها دارای طول یک باشد، عملا تفاوتی بین آن­ها نیست، این تفاوت برای زمانی است که طول کلاس­ها حداقل 2 باشد. به مثال زیر توجه کنید:

1st Period
2nd Period
3th Period
4th Period
5th Period
6th Period

allowed
allowed
allowed
not allowed
allowed
not allowed

 

در صورتی که از محدودیت بازه­ زمانی ترجیهی استفاد کنید، یک کلاس با طول دو می­تواند در بازه­ اول یا بازه دوم شروع شود، اما اگر از محدودیت زمان ترجیهی شروع کلاس استفاده کنید، کلاس می­تواند در بازه­های 1، 2، 3 و 5 شروع شود که البته برخی از این بازه­ها قابل زمانبندی نیستند ( مثلا بازه  3 و 5)، اما برنامه این را جزئ خطا حساب نمی­کند.

مثال

دروس اصلی در یک مدرسه 4 بار در هفته تدریس می­شوند. ممکن است حالتی انفاق بیفتد که طی آن یک مجموعه از دانش آموزان همیشه یکی از درس­های اصلی خود را در ساعت آخر داشته باشند که نتیجه خوبی ندارد، چرا که دانش آموزان در این زمان همیشه خسته­اند و بازدهی کمتری دارند.

برای جلوگیری از این اتفاق می­توان محدودیت مجموعه­از زیر کلاس­ها، مجموعه­ای از بازه­های زمانی ترجیهی دارند را اضافه کرد. بخش شماره 1 را انتخاب کنید، یک موضوع اصلی را انتخاب کنید، زمان­های ترجیهی کلاس­ها را در بازه­های 1 تا 4 را انتخاب کنید، محدودیت را اضافه کنید، این کار را یک بار دیگر نیز تکرار کنید اما این بار با بخش شماره 2. با این کار امکان ندارد که کلاس­­ها در بازه زمانی پنجم یا بازه­های دیرتر قرار بگیرند، با این کار حداقل دو کلاس هستند که در بازه چهارم یا بازه­های قبلی قرار دارند. پیشنهاد من برای وزن این محدودیت همان 100% می­باشد، اما در صورتی که محدودیت اعمال شده خیلی پیچیده باشد و پیاده کردن آن سخت، می­توان این مقدار را کمتر کرد و یا فقط وزن 100% را برای بخش اول در نظر گرفت. اما اگر تولید جدول همچنان ساده باشد، می­توان برای همه چهار جلسه مختلف کلاس این محدودیت را اعمال کرد. اما در اعمال این سیاست نیز دقت کنید، برخی از جلسات کلاس بهتر است در ساعات پایانی باشند(مانند جلسات حل تمرین گروهی)، لذا نباید همیشه این محدودیت را با این سبک اجرا برای کلاس­های مختلف به کار برد. بنا براین بدیهی است که نباید این محدودیت را برای همه کلاس­های جدول به کار برد، چرا که علاوه بر مشکل ذکر شده، این کار ممکن است سبب غیر قابل تولید شدن جدول نیز بشود. در بسیاری از موارد محدودیت زمان در دسترس بودن استاد نیز می­تواند نتیجه مشابه این محودیت را برای ما داشته باشد( و یا محدودیت در دسترس نبودن اتاق­ها).

در صورتی که یک استاد فقط در یک بازه زمانی خاص می­تواند حضور داشته باشد، می­توان از محدودیت زمان شروع ترجیهی برای یک کلاس استفاده کرد.

در همه مدارس، همه گروه­های مختلف دانش­آموزان حق دارند که در ساعت اول درس ریاضی را داشته باشند. برای این منظور می­توان با استفاده از محدودیت یک کلاس مجموعه­ای از زمان­های ترجیهی شروع دارد، این امر را میسر کرد.

در صورتی نیاز باشد که یک کلاس با طول 2 در بازه­های فرد آغاز شود، می­توان یک برچسب با عنوان "فرد" در نظر گرفت و محدودیت مجموعه­ای از کلاس­ها، مجموعه­ای از زمان­های شروع ترجیهی دارند را برای همه بازه­های اول، سوم و پنجم اضافه کرد. در این حالت از محدودیت مجموعه­ای از کلاس­ها، مجموعه­ای از بازه­های زمانی ترجیهی دارند استفاده نکنید، چرا که معنی این محدودیت با این مقادیر این می­شود که قابلیت اضفه شدن کلاس­هایی با طول وجود ندارد!

در صورتی که کلاس­ الزاما باید در صبح برگزار شود، می­توان یک برچسب با عنوان "صبح"را درست کرد و به آن کلاس نسبت داد، سپس با استفاده از محدودیت مجموعه­ای از کلاس­ها، مجموعه­ای از بازه­های زمانی ترجیهی دارند برای اعماب این نظر استفاده کرد.

 

2.3.2.3.14.                 زمان شروع مشابه

محدویت­های زمان شروع مشابه عبارتنداز:

·         محدودیت زمانی(کلاس­ها): مجموعه­ای از کلاس­ها که دارای زمان شروع مشابه­اند (ساعت+روز)

·         محدودیت زمانی(کلاس­ها): مجموعه­ای از کلاس­ها که دارای روز شروع مشابه­اند (هر ساعتی)

·         محدودیت زمانی(کلاس­ها): مجموعه­ای از کلاس­ها که دارای ساعت شروع مشابه­اند (هر روزی)

در همه مدارس، همه گروه­های مختلف دانش­آموزان حق دارند که در ساعت اول درس ریاضی را داشته باشند. برای این منظور می­توان با استفاده از محدودیت مجموعه­ای از کلاس­ها که دارای ساعت شروع مشابه­اند (هر روزی)، این امر را میسر کرد.

در حالت ساده­تر، شما نیازی به محدودیت مجموعه­ای از کلاس­ها که دارای زمان شروع مشابه­اند (ساعت+روز) ندارید، کافیست همه اساتید و دانشجویان مورد نیاز را به یک کلاس منتقل کنید. اما با نی کار فقط می­توانید یک اتاق بگیرید، در زیر مثال­هایی در این باره آمده است:

در کلاس­ها دانشجویان دختر و پسر وجود دارند، و شما می­خواهید که کلاس تربیت بدنی را به صورت جداگانه برای آن­ها برنامه ریزی کنید. شما این کار را با درست کردن یک دسته جدید می­توانید انجام دهید، اما در صورتی که جدول کاملا پر باشد، این به معنی برگزاری هم زمان دو کلاس می­شود. در صورتی که دو کلاس برای آن­ها در نظر گرفته باشید- با استاد و گروه دانشجویان متفاوت- می­توانید محدودیت مجموعه­ای از کلاس­ها که دارای زمان شروع مشابه­اند (ساعت+روز) را برای این دو گروه اضافه­ کنید. این کار در صورتی که تعداد گروه­ها و کلاس­ها در سال فرد نباشند، بسیار خوب عمل می­کند.

استاد درس ادبیات، در هفته چهار جلسه برای یک گروه از دانشجویان کلاس دارد. اما در یکی از این چهار جلسه، یک استاد دیگر هم برای تدریس به کلاس می­آید. بنابراین شما نمی­توانید این استاد را به کلاس اضافه کنید، چون در جلسه دیگر در جای دیگری مشغول به تدریس است. برایاین کار دو راه حل وجود دارد:

راه اول: اضافه کردن یک کلاس دیگر. در این کلاس استاد دیگر هم به کلاس اضافه می­شود و با استفاده از محدودیت مجموعه­ای از کلاس­ها که دارای زمان شروع مشابه­اند (ساعت+روز)، می­توان آن را با یکی از 4 جلیه دیگر کلاس منطبق کرد. در صورتی که یکی از استاید دارای کلاس خانگی باشد، این کار موجب می­شود که استاد دیگر نیز در همان اتاق تدریس کند.

راه دوم: یک کلاس با هر دو استاد به طول 1 اضافه کنید. کلاس دوم را برای درس ادبیات با استاد آن درس و طول 3 هم اضافه کنید. کلاس تکی را به محدودیت حداقل تعداد روزها برای کلاس­ها اخیر اضافه کنید.

 

2.3.2.3.15.                 نداشتن همپوشانی

 

محدویت­ نداشتن همپوشانی عبارت است از:

·         محدودیت زمانی(کلاس­ها): مجموعه­ای از کلاس­ها که همپوشانی ندارند

کلاس­هایی که دارای استاد مشترک، اتاق مشترک و یا مجموعه دانشجویان مشترک هستند، هیچگاه مشکل همپوشانی ندارند. ( با توجه به محدودیت­های اساسی اجباری زمانی و مکانی). بنابر این تنها در موارد خاص از این محدودیت استفاده می­شود.

مثال:

شما دو نفر دارید که بسیار ماهر هستند و دارای مهارت خاصی می­باشند و می­توانید که یکی از آن­ها در بعضی از زمان­ها در دسترس نیست(مثلا مریض است) و لذا باید فرد دیگر کار او را انجام دهد. بدیهی است که این کار فقط زمانی امکان دارد که شخص دوم در آن زمان کلاس دیگری نداشته باشد. برای این کار از محدودیت مجموعه­ای از کلاس­ها که همپوشانی ندارند می­توان استفاده کرد.

 

2.3.2.3.16.                 اتاق خانگی

محدودیت­های اتاق خانگی عبارتند از:

·         محدودیت مکانی(اساتید): استادی که اتاق خانگی دارد

·         محدودیت مکانی(اساتید): استادی که مجموعه­ای از اتاق­های خانگی دارد

·         محدودیت مکانی(اساتید): مجموعه­ای از دانشجویان که یک اتاق خانگی دارند.

·         محدودیت مکانی(اساتید): مجموعه­ای از دانشجویان که مجموعه­ای از اتاق­های خانگی دارند.

 

 

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

بسیاری از مؤسسات برای گروه­ها یا اساتید اتاق خانگی دارند. در صورتی که همه گروه­های دانشجویی ( و یا همه اساتید) اتاق خانگی داشته باشند، نیازی به اضافه کردن محدودیت اتاق خانگی نیست، چون در این حالت هیچ گاه تداخلی روی نمی­دهد. درصورتی محدودیت اتاق خانگی را اضافه کنید که برخی از گروه­ها (یا اساتید) دارای اتاق مشترک باشند و یا شما بخواهید کلاس­ خانگی را در جدول نشان دهید.

درصورت که یک کلاس بیش از یک استااد و یا بیش از یک گروه از دانشجویان داشته باشد، برنامه نمی­تواند از محدودیت اتاق خانگی استفاده کند، در این حالت باید از محدودیت اتاق ترجیهی استفاده کنید.

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

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

مثال:

همه اساتید باید اتاق خانگی داشته باشند اما متاسفانه تعداد اساتید از تعداد اتاق­ها در این مؤسسه بیشتر است. مؤسسه 5 روز کاری و در هر روز 6 بازه زمانی دارد. بنا بر این مؤسسه در طول هفته دارای 30 بازه زمانی است. حالا تعداد بازه­هایی را که هر استاد در طول هفته در اتاق خانگی­اش درس می­دهد بشمارید. خواهید دید که برخی از اساتید ساعت­های زیادی را در اتاق خانگی خود درس می­دهند ولی اساتیدی هم وجود دارند که ساعت­های کمتری در اتاق خانگی خود حضور دارند. این مسئله ممکن است به خاطر نیمه وقت بودن آن اساتید باشد و یا ممکن است این اساتید یک درس را در اتاق خانگی خود و درس دیگری را در آزمایشگاه تدریس کنند. برخی از اساتید هم کلا نیازی به اتاق خانگی ندارند، چرا که درس آن­ها در باید در یک اتاق خاص تدریس شود (مثلا آزمایشگاه). حالا دوباره تعداد اساتیدی که اتاق خانگی نیاز دارند را بشمارید، شاید در حال حاضر تعداد اتاق­ها کافی باشد. اگذ نبود می­توانید یکی از دوحالت زیر را بررسی کنید:

حالت اول: کنترل کنید که آیا دو استاد(یا بیشتر) می­توانند یک اتاق را به صورت مشترکی به عنوان اتاق خانگی استفاده کنند ؟ در این حالت نباید مجموع بیشینه ساعت­هایی که این اساتید درس می­دهند از بیشینه ساعت­های مؤسسه بیشتر باشد و نیز در یک زمان هم تدریس نککند. در این حالت می­توانید به این اساتید اتاق مشترک بدهید. (با استفاده از محدودیت استادی که اتاق خانگی دارد)

حالت دوم: شاید شما تا این اندازه خوش شانس نباشید که بتوانید به برخی از اساتید اتاق مشترک بدهید! در این حالت یک (یا بیشتر) استاد نیازمند دو(یا بیشتر) کلاس خانگی است. (محدودیت استادی که مجموعه­ای از اتاق­های خانگی دارد). قبل از استفاده از این استفاده از این محدودیت، در باره استفاده کردن از محدودیت یک کلاس که یک اتاقی ترجیهی دارد فکر کنید، شاید با این محدودیت هم بتوان مشکل ر حل کرد.

در باره اساتیدی که در یک کاتاق مخصوص تدریس می­کنند کنترل کنید که آیا می­توان اتاق خانگی به آن­ها اختصاص داد یا خیر. فرض کنید یک استاد درس ریاضی و فیزیک1 تدریس مس­کند و استاد دیگر درس زبان و فیزیک 2. دروس فیزیک باید در آزمایشگاه ارائه شوند و در نتیجه در هر زمان فقط یک استاد می­تواند در آزمایشگاه تدرس کند. حالا اگر یک اتاق را به عنوان اتاق خانگی این اساتید برای تدریس دو درس ریاضی و زبان در نظر بگیرید، وقتی یک استاد در آزمایشگاه است، استاد دیگر می­تواند در اتاق خانگی مشترک تدریس کند و بالعکس.

درمواردی که شما یک اتاق مخصوص را با دانشکده دیگری به صورت مشترک استفاده می­کنید، احتیاط کنید، در این موارد بایذ از محدودیت در دسترس نبودن اتاق نیز استفاده کنید. مثلا یک آزمایشگاه فیزیک وجود دارد ولی شما نمی­توانید همیشه از آن استفاده کنید، چرا که در برخی از زمان­ها دانشکده دیگر باید از این اتاق استفاده کند.

در برخی موارد بهتر است که اساتیدی که دارای کمترین تعداد بازه­های زمانی تدریس درس در اتاق خانگی هستند، با هم در یک اتاق شریک شوند.

 

2.3.2.3.17.                 اتاق ترجیهی

همانند محدودیت­های مروبط به زمان شروع مشابه، محدودیت­های اتاق ترجیهی عبارتند از:

·         محدودیت مکانی(درس): درسی که یک اتاق ترجیهی دارد.

·         محدودیت مکانی(درس): درسی که مجموعه­ای از اتاق­های ترجیهی دارد.

·         محدودیت مکانی(درس+کلاس): برچسب  درس + کلاس که یک اتاق ترجیهی دارد.

·         محدودیت مکانی(درس+کلاس): برچسب  درس + کلاس که مجموعه­ای از اتاق­های ترجیهی دارد.

·         محدودیت مکانی(کلاس): کلاسی که یک اتاق ترجیهی دارد.

·         محدودیت مکانی(کلاس): کلاسی که مجموعه­ای اتاق ترجیهی دارد.

 

محدودیت اتاق ترجیهی دارای اولویت بیشتری نسبت به محدودیت اتاق خانگی است. این محدودیت معمولا برای اتاق­های خاص استفاده می­شود.

مثال

درس شیمی همیشه باید در آزمایشگاه شیمی ارائه شود. محدودیت درسی که یک اتاق ترجیهی دارد را در صورتی که تنها یک آزمایشگاه شیمی دارید اضافه کنید و در صورتی که بیش از یک آزمایشگاه شیمی دارید از محدودیت درسی که مجموعه­ای از اتاق­های ترجیهی دارد استفاده کنید.

درس فیزیک همیشه باید در آزمایشگاه فیزیک اراوه شود، ولی در صورتی که این آزمایشگاه شلوف باشد می­توان در آزمایشگاه شیمی هم آن­ را ارائه داد. درحال حاضر امکانی برای پیاده سازی این حالت وجود ندارد، اما شرایط مشابهی قابل پیاده سازی است: درس فیزیک باید همیشه در آزمایشگاه فیزیک یا آزمایشگاه شیمی ارائه شود. برای این حالت محدودیت درسی که مجموعه­ای از اتاق­های ترجیهی دارد را اضافه کنید. اما با این کار ممکن است حتی در حالتی که آزمایشگاه فیزیک خالی است، آزمایشگاه شیمی اختصاص داده شود. برای جلوگیری از این اتفاق باید به صورتی دستی خودتان کنترل کنید.

درس زیست شناسی برای سال­های 3 تا 7 باید همیشه در آزمایشگاه زیست ارائه شود، اما نه برای سال­های 4 و 6. برای همه سال­های 3 تا 7 برجسبی با عنوان "نیازمند اتاق" اضافه کنید. محدودیت برچسب  درس + کلاس که یک اتاق ترجیهی دارد را با وزن 100% اضافه کنید. سپس محدودیت درسی که یک اتاق ترجیهی دارد را با وزن 100% اضافه کنید.

فرض کنید که شما باید چندین اتاق را برای یک کلاس اختصاص دهید. چند کلاس با یک موضوع و احتمالا یک استاد و بدون گروهی از دانشجویان اضافه کنید. محدودیت مجموعه­ای از کلاس­ها که دارای زمان شروع مشابه­اند (ساعت+روز) را برای اتصال همه کلاس­ها به هم اضافه کنید. شما نیازی به اضافه کردن استاد ندارید ولی اضافه کردن آن می­تواند در کنترل کردن نهایی جدول مفید باشد.

یک کلاس در هفته چهار جلسه دارد. تنها یکی از این چهار جلسه نیازمند آزمایشگاه است و در کلاس خانگی برگزار نمی­شود. برای این منظور کلاس را به حالت عادی اضافه کنید و محدودیت کلاسی که مجموعه­ای اتاق ترجیهی دارد را  برای یکی از این جلسات کلاس اضافه کنید.

 

2.3.2.3.18.                 ساختمان­ها

محدودیت­های مربوط به ساختمان عبارتند از:

·         محدودیت مکانی(اساتید): بیشینه تغییرات بین ساختمان­ها در یک روز برای یک استاد

·         محدودیت مکانی(اساتید): بیشینه تغییرات بین ساختمان­ها در یک روز برای همه اساتید

·         محدودیت مکانی(اساتید): بیشینه تغییرات بین ساختمان­ها در یک هفته برای یک استاد

·         محدودیت مکانی(اساتید): بیشینه تغییرات بین ساختمان­ها در یک هفته برای همه اساتید

·         محدودیت مکانی(اساتید): حداقل فاصله­های زمانی بین تغییرات ساختمان برای یک استاد

·         محدودیت مکانی(اساتید): حداقل فاصله­های زمانی بین تغییرات ساختمان برای همه اساتید

·         محدودیت مکانی(دانشجویان): بیشینه تغییرات بین ساختمان­ها در یک روز برای یک مجموعه از دانشجویان

·         محدودیت مکانی(دانشجویان): بیشینه تغییرات بین ساختمان­ها در یک روز برای همه مجموعه­های دانشجویان

·         محدودیت مکانی(دانشجویان): بیشینه تغییرات بین ساختمان­ها در یک هفته برای یک مجموعه از دانشجویان

·         محدودیت مکانی(دانشجویان): بیشینه تغییرات بین ساختمان­ها در یک هفته برای همه مجموعه­های دانشجویان

·         محدودیت مکانی(دانشجویان): حداقل فاصله­های زمانی بین تغییرات ساختمان برای یک مجموعه از دانشجویان

·         محدودیت مکانی(دانشجویان): حداقل فاصله­های زمانی بین تغییرات ساختمان برای همه مجموعه­های دانشجویان

 

این محدودیت­ها تنها زمانی استفاده می­شود که بیش از یک ساختمان داشته باشیم

مثال

فرض کنید که استاد یک درس را را باید در یک ساختمان و درس دیگر را در اتاقی در ساختمان دیگر ارائه دهد، در صورتی که این ساختمان ها با هم فاصله داشته باشد و کلاس­ها هم پشت سر هم باشد، شاید استاد نتواند به موقع در کلاس بعدی حاضر شود. برای حل مشکل می­توان از محدودیت حداقل فاصله­های زمانی بین تغییرات ساختمان برای یک استاد استفاده کرد.

در صورتی که مشکل بالا برای همه اساتید وجود داشته باشد، یعنی همه اساتید کلاس­هایی در ساختمان­های مختلف داشته باشند، می­توان از محدودیت حداقل فاصله­های زمانی بین تغییرات ساختمان برای همه اساتید استفاده کرد. به این ترتیب کلاس­ها بلافاصله پشت سر هم قرار نمی­گیرند.

مسئله بالا ممکن است برای گروه­های دانشجویان هم اتفاق بیفتد، بنابراین می­توان محدودیت­های متناظر حداقل فاصله­های زمانی بین تغییرات ساختمان برای یک مجموعه از دانشجویان و نیز حداقل فاصله­های زمانی بین تغییرات ساختمان برای همه مجموعه­های دانشجویان را به کار برد.

 

2.3.3.       آمار        

با استفاده از این قسمت قبل از تولید جدول زمانبندی، می­توانید اطلاعات مربوط به اساتید و دانشجویان را کنترل کنید. با استفاده از این گزینه می­توانید از درست اضافه شدن همه کلاس­ها مطلع شوید. همچنین برای اضافه کردن محدودیت هم استفاده از آمار وضعیت موجود می­تواند مفید باشد.

2.3.4.جدول زمانبندی

شاید همه جداول زمانبندی قابل تولید نباشند، در صورتی که برنامه نتوانست جدول را تولید کند، محدودیت­ها را کنترل کنید و برخی از آن­ها را تغییر داده یا حذف کنید. هیچ­ گاه تعداد زیادی محدودیت را یکباره اضافه نکنید و هر چند وقت یک بار یک فایل جدید ذخیره کنید تا از فایل­های مراحل قبل به عنوان پشتیبان بتوانید استفاده کنید.

2.3.4.1.تولید کردن یک جدول

دو راه مختلف برای تولید جدول وجود دارد:

·         جدول زمانبندی: تولید جدول جدید

·         جدول زمانبندی: تولید حالت­های مختلف

تولید یک جدول یک فرایند کاملا تصادفی است.  بنا بر این ممکن است تولید یک جدول چند ثانیه زمان ببرد ولی تولید جدول دیگر با همان خصوصیات زمان بیشتری را نیاز داشته باشد. همچنین نتیجه جدول در دفعات مختلف تولید احتمالا با یکدیگر فرق خواهد داشت، مگر در حالت­هایی که محدودیت­های کاملا محکمی وضع شده باشد.

در حالت اول، تنها یک جدول تولید می­شود. اما در حالت دوم با توجه به خواسته کاربر، به تعداد دلخواه جدول تولید می­شود.

2.3.4.2.              دیدن جدول

 

در صورتی که از گزینه تولید یک جدول استفاده کردید، می­توانید نتایج جدول را به صورت زیر ببینید:

جدول زمانبندی: دیدن(دانشجویان)

جدول زمانبندی: دیدن(اساتید)

جدول زمانبندی: دیدن(اتاق­ها)

همچنین می­توانید نتیجه را در پو[15]شه نتایج[16] در شاخه نصب برنامه مشاهده کنید. دیدن نتایج در آن­ها راحت تر نیز است. در آنجا جدول­های مختلفی با خصوصیات مختلف و نیز کاربردهای گوناگون قرار دارد.

2.3.4.3.             قبل از ایجاد جدول زمانبندی

 

توصیه می­کنم که قبل از تولید جدول چهار کار زیر را انجام دهید:

1.       از قبل با اساتید در مورد همه محدودیت­هایی که می­خواهید اعمال کنید هماهنگ کنید. شاید در برخی از موارد تغییراتی لازم باشد.

2.       فایل conflict.txt را که در پوشه نتایج قرار دارد برای آگاهی از تداخل­ها بررسی کنید.

3.       در صورتی که مؤسسه بخواهد از تاخیر اساتید در کلاس­ها جلوگیری کند، می­توانید فایل Teachers' Free Periods را که در پوشه نتایج است بررسی کنید.

4.       قبل از انتشار رسمی جدول و مطلع کردن دنشجویان، خوب است که اساتید با آن توافق کرده و نسخه­ای از آن را برای بررسی بیشتر داشته باشند.



[1] محیط متن باز تولید نرم افزار  که این نرم افزار با استفاده از آن تولید شده است. برای اطلاعات بیشتر می­توانید به qt.nokia.com  مراجعه کنید

[2] tag

[3] gap

[4] heuristic algorithm

[5] backtrack

[6] conflict

[7] undo

[8] comment

[9] period

[10] class

[11] category

[12] break

[13] gap

[14] gap

[15] folder

[16] result