الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

جدولة مساقات الجامعه باستخدام خوارزمية الجنتك

بدأه منصور قاسم في 3 مايو 2012 · 28 رد · 6,969 مشاهدة · في الذكاء الاصطناعي وتطبيقاته
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ياليت تفيدنا بما عندك الله يجزيك كل الخير عن مشكلة جدولة مساقات الجامعه باستخدام خوارزمية الجنتك

اي شي برنامج

او شروحات عنها

لانه مشروع تخرج

منتظرك

#2

مالمقصود بمساقات الجامعة

#3
altae13 كتب:

مالمقصود بمساقات الجامعة

يا اخي الجدول الزمني الخاص بالكرسات

يعني كيف تعمل توزيع للمدرسين والقاعات والطلاب على الكرسات بشكل كفؤ بدون وجود اي تعارض زمني باستخدام الخوارزمية الجينية

يعني الجدول الاسبوعي

ياريت احد يفيدنا بشئ

الله يجزيه كل الخير

تم تعديل هذه المشاركة بواسطة منصور قاسم في 6 مايو 2012 في 20:26

#4

السلام عليكم طبعا هذا مشروعي وانا هسه داشتغل عليه من سنه ونصف تقريبا وعندي بعض المشاكل !!!!!

انت في اي مكان متواقف حتى استطيع ممكن ان أفيدك او أساعدك حدد سؤالك بالظبط !!!

لان المشروع يحتوي على مجموعه كبيرة من التساهلات والاستفسارات

#5
altae13 كتب:

السلام عليكم طبعا هذا مشروعي وانا هسه داشتغل عليه من سنه ونصف تقريبا وعندي بعض المشاكل !!!!!

انت في اي مكان متواقف حتى استطيع ممكن ان أفيدك او أساعدك حدد سؤالك بالظبط !!!

لان المشروع يحتوي على مجموعه كبيرة من التساهلات والاستفسارات

#6

اخي انا لسة بدات في المشروع يعني طلب مني ان اقدم خلفية عامة عن هذه المشكلة

يعني لسة لم ادخل في صميم العمل حتى استطيع احدد سؤالي بالظبط

ولكن اريد اجمع وافهم اكبر قدر عن المشكلة

يعني اذا في معك دكمنت عن هذه المشكلة او مراجع جيده او اي شيئ يمكن تساعني في البداية

وإن شاء الله اكون على تواصل معك في الايام المقبلة حتى اذا في شيئ نتواصل انا واياك.

ربنا يحفظك اخي ويزيدك علما الى علمك ولا يحرمنا توجيهاتك

#7

السلام عليكم اخي أنا اريد أساعدك لكن المصادر الي عندي كله باللغه الروسية كوني ادرس في روسيا لكن سوف أساعدك قدر المستطاع ان شاء الله

سوف إبداء معك من البداية كما أنا عملت في مشروعي وطبعا مشروعي هو تكوين جدول دراسي الى اسبوع واحد بدون تضاربات في نظام الجامعات

أنا استخدمت لغه سي شارب في برمجه الخور زمية الجينية و استخدمت SQL server 2008 في بناء قاعده البيانات

اولا نأتي على قاعده البيانات تتكون من خمس جداول رئيسية

1- جدول الأساتذة

2- جدول مجموعات الطلبه (مرحله اولى شعبه ا و مرحله اولى شعبه ب وهكذا يعني أنا بمشروعي هناك ثمانية مجموعات لكل مجموع رقم

3- جدول المواد الدراسية

4- جدول القاعات الدرسية وهل قاعه عملي او نظري

5- جدول الوقت ونقصد بالوقت هنا وقت المحاضرات يعني يوم الأحد هناك ثلاث محاضرات يعني ثلاث أوقات الوقت الاول 8-10 والوقت الثاني 10-12 والوقت الثالث من 12-2

يعني يكون عدنا في كل يوم ثلاث محاضرات ! أنا عندي خمس ايام من الأحد الى الخميس يعني يكون عدنا 15 وقت يتم ادخل تلك الأوقات في جدول الوقت

000000000

بعد ما دخلنا البيانات الى تلك الجداول الخمسة

الان نحتاج الى جدول اخر ونسمي هذا الجدول Block

ماذا يوجد في هذا الجدول ؟

في هذا الجدول راح نربط المادة الدراسية مع الاستاذ ومع مجموعه الطلبه وهل الماده الدراسية عملي او نظري وكم مرة تتكرر هذه الماده بألاسبوع

الجدول يتكون من

رقم البلوك ويجب ان يكون ترقيمي تلقائي

1-رقم الماده الدراسية

2-رقم الاستاذ

3-رقم المجموعة اقصد الطلبه

4-نوع البلوك هل هو علمي او نظري

5-كم مرة يتكرر هذا البلوك باالاسبوع يعني مثلا لو كان هناك ماده اسمه سي شارب وتدرس نظري ست ساعات يعني تتكرر 3 مرات بألاسبوع

العمل في جدول البلوك كلش مهم اذا عندك سؤال على هذا الجدول أنا موجود قبل ان ننتقل الى مساله الوقت وألقاعه الدراسية

الى هنا يكفي البوم ونكمل في وقت اخر ان شاء الله

اعذرني اذا أتأخر عليك لأني طالب دراسات واكثر الوقت اكون مشغول

1
#8
altae13 كتب:

السلام عليكم اخي أنا اريد أساعدك لكن المصادر الي عندي كله باللغه الروسية كوني ادرس في روسيا لكن سوف أساعدك قدر المستطاع ان شاء الله

سوف إبداء معك من البداية كما أنا عملت في مشروعي وطبعا مشروعي هو تكوين جدول دراسي الى اسبوع واحد بدون تضاربات في نظام الجامعات

أنا استخدمت لغه سي شارب في برمجه الخور زمية الجينية و استخدمت SQL server 2008 في بناء قاعده البيانات

اولا نأتي على قاعده البيانات تتكون من خمس جداول رئيسية

1- جدول الأساتذة

2- جدول مجموعات الطلبه (مرحله اولى شعبه ا و مرحله اولى شعبه ب وهكذا يعني أنا بمشروعي هناك ثمانية مجموعات لكل مجموع رقم

3- جدول المواد الدراسية

4- جدول القاعات الدرسية وهل قاعه عملي او نظري

5- جدول الوقت ونقصد بالوقت هنا وقت المحاضرات يعني يوم الأحد هناك ثلاث محاضرات يعني ثلاث أوقات الوقت الاول 8-10 والوقت الثاني 10-12 والوقت الثالث من 12-2

يعني يكون عدنا في كل يوم ثلاث محاضرات ! أنا عندي خمس ايام من الأحد الى الخميس يعني يكون عدنا 15 وقت يتم ادخل تلك الأوقات في جدول الوقت

000000000

بعد ما دخلنا البيانات الى تلك الجداول الخمسة

الان نحتاج الى جدول اخر ونسمي هذا الجدول Block

ماذا يوجد في هذا الجدول ؟

في هذا الجدول راح نربط المادة الدراسية مع الاستاذ ومع مجموعه الطلبه وهل الماده الدراسية عملي او نظري وكم مرة تتكرر هذه الماده بألاسبوع

الجدول يتكون من

رقم البلوك ويجب ان يكون ترقيمي تلقائي

1-رقم الماده الدراسية

2-رقم الاستاذ

3-رقم المجموعة اقصد الطلبه

4-نوع البلوك هل هو علمي او نظري

5-كم مرة يتكرر هذا البلوك باالاسبوع يعني مثلا لو كان هناك ماده اسمه سي شارب وتدرس نظري ست ساعات يعني تتكرر 3 مرات بألاسبوع

العمل في جدول البلوك كلش مهم اذا عندك سؤال على هذا الجدول أنا موجود قبل ان ننتقل الى مساله الوقت وألقاعه الدراسية

الى هنا يكفي البوم ونكمل في وقت اخر ان شاء الله

اعذرني اذا أتأخر عليك لأني طالب دراسات واكثر الوقت اكون مشغول

#9

والله لست ادري كيف اعبر عن شكري وتقديري لك

والله اعدتي لي الامل في ان اواصل في هذا الموضوع

فلكي جزيل الشكر

الحمد لله اشتغلت فصلين كاملة في الدكمنت وبا ابدا في الفصل الثالث إن شاء الله ذه الاسبوع

وفي الجانب العملي بدانا في انشاء قاعدة البيانات حسب التعليمات إن شاء الله بتكون ناجحه

متواصلين إن شاء الله

الله معك

#10

السلام عليكم

اليوم ان شاء الله نكمل !!!

توقنا في جدول البلوك الي هو يعتبر عامل اساسي ولتبسيط اكثر

احنا عدنا ثلاث متغيرات X,Y,Z

Z :- هو يمثل البلوك اي رقم البلوك ومن خلال رقم البلوك احنا نعرف مايلي (رقم الاستاذ و رقم المجموعه و نوع المحاضرة و رقم الماده الدراسية و عدد مرات تكرر تلك الماده !!! يعني عدنا في جدول البلوك خمس متغيرات مع رقم البلوك يكونوا ست والي الست متغيرات احنا عارفينهم يعني نكدر ندخلهم بيدنا !! مفهوم ؟؟

X: هو الوقت يعني وقت المحاضرة وهذا المتغير الي احنا بندور عليه الي يكون بيه التضاربات ! ناتي الى هذا المتغير بالتفصيل

اولا احنا عدنا جدول في قاعده البيانات اسمه الوقت ويحتوي على رقم الوقت واسم الوقت ورقم اليوم وتسلسل المحاضرة . بطريقه ابسط ! مثال بالتسلسل حسب الجدول

رقم الوقت واسم الوقت ورقم اليوم وتسلسل المحاضرة

الوقت الاول1 . 08-10 .السبت .1

الوقت الثاني2 . 10-12 .السبت .2

الوقت الثالث3. 12-02 .السبت .3

------------------ ---------------------------------

الوقت الاول4. 1.08-10 ,الاحد .1

الوقت الثاني5 . 10-12 .الاحد .2

الوقت الثالث6. 12-02 .الاحد .3

---------------------------------------------------------وهكذ على اساس احنا عدنا ثلاث محاضرات باليوم الواحد بحيث يكون لدينا 15 وقت !

Y:-القاعه الدراسية وهذا المتغير الي احنا بندور عليه ايظا الي يكون بيه التضاربات !!! وكذلك لدينا جدول القاعات الدراسية

رقم القاعه . اسم القاعه .رقم نوع القاعده . ورقم القسم

فرضنا في جدولي هناك اربع قاعات نظري وثلاث قاعات عملي لكل قسم تقريبا !

درسنا انتهاء الى هذا اليوم ونكمل بالايام القادمه ان شا ءالله

ادعو لنا وللوالدين بالمغفرة والرحمه !!!!

تم تعديل هذه المشاركة بواسطة altae13 في 13 مايو 2012 في 02:59

#11
altae13 كتب:

السلام عليكم

اليوم ان شاء الله نكمل !!!

توقنا في جدول البلوك الي هو يعتبر عامل اساسي ولتبسيط اكثر

احنا عدنا ثلاث متغيرات X,Y,Z

Z :- هو يمثل البلوك اي رقم البلوك ومن خلال رقم البلوك احنا نعرف مايلي (رقم الاستاذ و رقم المجموعه و نوع المحاضرة و رقم الماده الدراسية و عدد مرات تكرر تلك الماده !!! يعني عدنا في جدول البلوك خمس متغيرات مع رقم البلوك يكونوا ست والي الست متغيرات احنا عارفينهم يعني نكدر ندخلهم بيدنا !! مفهوم ؟؟

X: هو الوقت يعني وقت المحاضرة وهذا المتغير الي احنا بندور عليه الي يكون بيه التضاربات ! ناتي الى هذا المتغير بالتفصيل

اولا احنا عدنا جدول في قاعده البيانات اسمه الوقت ويحتوي على رقم الوقت واسم الوقت ورقم اليوم وتسلسل المحاضرة . بطريقه ابسط ! مثال بالتسلسل حسب الجدول

رقم الوقت واسم الوقت ورقم اليوم وتسلسل المحاضرة

الوقت الاول1 . 08-10 .السبت .1

الوقت الثاني2 . 10-12 .السبت .2

الوقت الثالث3. 12-02 .السبت .3

------------------ ---------------------------------

الوقت الاول4. 1.08-10 ,الاحد .1

الوقت الثاني5 . 10-12 .الاحد .2

الوقت الثالث6. 12-02 .الاحد .3

---------------------------------------------------------وهكذ على اساس احنا عدنا ثلاث محاضرات باليوم الواحد بحيث يكون لدينا 15 وقت !

Y:-القاعه الدراسية وهذا المتغير الي احنا بندور عليه ايظا الي يكون بيه التضاربات !!! وكذلك لدينا جدول القاعات الدراسية

رقم القاعه . اسم القاعه .رقم نوع القاعده . ورقم القسم

فرضنا في جدولي هناك اربع قاعات نظري وثلاث قاعات عملي لكل قسم تقريبا !

درسنا انتهاء الى هذا اليوم ونكمل بالايام القادمه ان شا ءالله

ادعو لنا وللوالدين بالمغفرة والرحمه !!!!

#12

عذرا على التاخير والله كنت مشغول في وفاة اخي اسأل الله ان يتغمده يواسع رحمته.

--------------- للنجاحات أناس يقدرون معناه ، وللإبداع أناس يحصدونه ، لذا اقدرجهودكي المضنية ، فأنتي أهل للشكر والتقدير ..فوجب علي تقديرك ...فلكي مني كل الثناء والتقدير .--------------

مشكوووووووووره مشكوووووووور على الاهتمام والمتابعه

يعطيك الف عافيه ولك مني كل الود والاحترام ودمت بود الرحمن

والله لن انساك من دعائي في ظهر الغيب

متواصلين إن شاء الله

#13

وعليكم السلام ورحمه الله وبركاته

البقاء لله وان شاء الله اخر الاحزان وانا لله وانا اليه راجعون

انا متواصل معك بعون الله

واتمنى بان تراجع المكتوب في الردود السابقه واي استفسار ان شاء الله انا موجود

#14

آمين يارب

#15

اكمل معكم النقاش

عندي سؤال كيف قمت بتمثيل هذه البيانات في لغة البرمجة لتتمكن من تطبيق الخوارزمية الجينية ؟؟

#16

:wink: عرف ما يلي :-

1:- Hard constraints

2:- Soft constraints

3:- fitness function

4:- Conflict matrix

5:- Violation

6:- genetic algorithm

7:- population based algorithms

8:- meta heuristics

#17

بالنسبه الى ترميز انا استخدمت طريقة

تمثيل التباديل permutation Encoding

لكن سوف اشرح لك طريقة الترميز وعليك ان تتخيل طريقة الترميز التي عملت بها

الخورزميات الجينيه هناك

1- جين Gen

2- كرموسوم Chromosome في داخل كل كرموسوم هناك مجموعه من الجينات وحسب المشكله الموجوده في مشكلتي هناك 3 جينات في كل كرموسوم الاول يمثل البلوك والثاني الوقت والثالث القاعده الدراسية

لو فرضنا لدينا 100 بلوك اي لدينا 100 محاضره في الاسبوع الى ثمان مجموعات من الطلبه

ولدينا ليكن ثمانيه قاعات دراسية خمسه نظري وثلاثه عملي

ولدينا 15 وقت في كل يوم 3 محاضرات والاسبوع هو عباره غن خمسه ايام عمل اي لدينا 15 وقت خلال الاسبوع

وهذا الجدول يوضح عمليه التوزيع

e6a9335ddd.jpg

3- فرد Individual

الفرد كل فرد يتكون من مجموعات من الكرموسومات وبما ان لدينا 100 بلوك اذا نحتاج الى 100 كرموسوم للوقت و100 كرموسوم للقاعات الدراسية خلال الاسبوع .وكذلك الفرد يملك خاصية اخرى هي الفت نيس اي عدد التضاربات الموجوده بالجدول .

بهذا التمثيل نستطيع ان نقول بان كل فرد هو عباره عن جدول اسبوعي كامل لكن هذا الجدول اكيد يحتوي على عدد من التضاربات .

4- تجمع Population

التجمع هو يحتوي على مجموعه من الافراد واي فرد يكون عدد التضارب بيه اقل هو الجدول المثالي ....

اتمنى بان الصورة وضحت واسف على التقصير .................

#18
altae13 كتب:

الخورزميات الجينيه هناك

1- جين Gen

2- كرموسوم Chromosome في داخل كل كرموسوم هناك مجموعه من الجينات وحسب المشكله الموجوده في مشكلتي هناك 3 جينات في كل كرموسوم الاول يمثل البلوك والثاني الوقت والثالث القاعده الدراسية

لو فرضنا لدينا 100 بلوك اي لدينا 100 محاضره في الاسبوع الى ثمان مجموعات من الطلبه

ولدينا ليكن ثمانيه قاعات دراسية خمسه نظري وثلاثه عملي

ولدينا 15 وقت في كل يوم 3 محاضرات والاسبوع هو عباره غن خمسه ايام عمل اي لدينا 15 وقت خلال الاسبوع

وهذا الجدول يوضح عمليه التوزيع

3- فرد Individual

الفرد كل فرد يتكون من مجموعات من الكرموسومات وبما ان لدينا 100 بلوك اذا نحتاج الى 100 كرموسوم للوقت و100 كرموسوم للقاعات الدراسية خلال الاسبوع .وكذلك الفرد يملك خاصية اخرى هي الفت نيس اي عدد التضاربات الموجوده بالجدول .

هل اطلعت على الدراسات السابقه في موضوع University Course Timetable Problem ?

هل تعرف كيف يحسب ال objective function ?

ما يمثل كل جين ؟

كل فرد يتكون من مجموعه من الكروموسومات ؟ كيف هذا ؟

اقبل نصيحتي , قبل ان تكتب حرف كود واحد افهم المشكه وكيف تمثل ؟

وطبعا ما تزعلوا لكن الحق احق ان يتبع والعلم لا يوجد فيه مجاملات , اسلوب ابدأ برمجه من اول يوم لا يفيد اذا لم تكن تعرف المشكله جيدا

بالتوفيق

#19
H-T كتب:

هل اطلعت على الدراسات السابقه في موضوع University Course Timetable Problem ?

هل تعرف كيف يحسب ال objective function ?

ما يمثل كل جين ؟

كل فرد يتكون من مجموعه من الكروموسومات ؟ كيف هذا ؟

اقبل نصيحتي , قبل ان تكتب حرف كود واحد افهم المشكه وكيف تمثل ؟

وطبعا ما تزعلوا لكن الحق احق ان يتبع والعلم لا يوجد فيه مجاملات , اسلوب ابدأ برمجه من اول يوم لا يفيد اذا لم تكن تعرف المشكله جيدا

بالتوفيق

بارك الله بيك على النصيحه .....

انا ابدا ماازعل واشكرك على المعلومات لكن ارجو منك بان تشرحنا انت واجاوب على اسئلتك ! وخلي نستفاد منك ومن معلوماتك الجيده والقيمه ان شاء الله

#20

طيب اخوي ما عليه اساعدك باذن الله بس اتمنى انت كمان تكمل , اولا :-

الخوارزميه الجينيه باختصار هي خوارزميه تستخدم لتحسين الحلول , الفكره من الخورازميه انه التزاوج بين ابوين من خلال التصالب وحدوث الطفرات بنسب معينه وبقية اجزاء الخوازميه للحصول على ابناء افضل من الاباء , الان كيف نعرف انه الحل هذا افضل من غيره او بمعنى اخر كيف نحسب الفتنس فنكشن او ما يسمى Objective function , عندك نوعين من القيود والقيد هنا هو ال Constraints , هناك نوعين , الاول صعبه يجب حلها بشكل تام (التضاربات) مثل ان لا تكون مادتين في نفس الغرفه واليوم والفتره الزمنيه , اذا هذه تسمى hard constraints , الان هذه القيود يجب حلها مئه بالمئه (طبعا اقصد يجب ان لا تكون اي نوع من هذه التضاربات نهائيا في الحل النهائي ) جيد ؟ الان النوع الاخر من القيود يسمى Soft constraints وهذه القيود نحاول ان نقللها ونحسنها مثل ان تكون المحاضرات التابعه لنفس الماده في نفس الغرفه وكل محاضره تتوزع في غرفه اخرى تعطى شيء اسمه عقوبه , بقيمه معينه كأن نقول انه اذا حصل هذا الامر لهذه الماده فنعطيها 5 نقاط ( طبعا بالنسبه للقيود الصعبه Hard constraint نحسب لها قيم ايضا ولكن تكون نقاطها كبيره كأن نقول اذا وجد مادتين لنفس المدرس في نفس الغرفه والفتره الزمنيه واليوم نعيطها 1000 نقطه , الان نحسب هذه القيم لكل القيود الاخرى وهذا الذي يسمى ال Fitness Function , جيد لحد الان ؟

الان لنرجع كيف نمثل الجدول ككروموسوم ؟

كل جين يمثل حدث معين , اقصد بالحدث انه ماده اكس (محاضره) في غرفه في يوم وفي فتره زمنيه معينه , لاحظ التالي :-

لدينا يومين ومحاضرات واربع فترات زمنيه وثلاث غرف , كيف نمثل الحل ؟

ضعه في جدول عادي ومن ثم اجعل الجدول ككرومسوم , والجينات هي الاحداث اللي ذكرناها سابقا , الان مالذي نريده من الخوارزميه الجينيه ان تفعله ؟

في بداية الخوارزميه الجينيه وهذا ما يحدث دائما , نعمل انشاء لما يسمى population وهو نفس هذه الجداول ولكن عشوائيا , الكروموسومات تحتوي على نفس المحتويات بالضبط ولكنها تختلف من حيث توزعيها , لان العمليه عشوائيه , اذا الان لدينا جداول عشوائيه نوزع فيها المحاضرات بشكل عشوائي , وهنا نحسب الفتنس فنكشن , كيف نحسبه لكل هذه الجداول اللي هي نفسها كروموسومات ؟ نفس الطريقه اللي شرحتها لك سابقا , القيود الصعبه نعيطها قيم عاليهوالقيود السهله نعطيها قيم صغيره , ومن ثم تكمل اجزاء الخوارزميه الجينيه , اتمنى تكونوا عارفين كيف تعمل الخوارزميه الجينيه , يوجد شروحات كثيره عليها في المنتدى ,,

تحياتي

تم تعديل هذه المشاركة بواسطة H-T في 7 ديسمبر 2012 في 21:53

#21

السلام عليكم ورحمه الله وبركاته

في البدايه اشكرك على الشرح الممتع لكن اين اجوابه اسئلتك التي وضعتها ؟

كل فرد يتكون من مجموعه من الكرموسومات فعلا كل فرد يتكون من مجموعه من الكرموسومات وكل كرسوم يتكون من جينات وكل جين يمثل صفه معينه .. وكذلك جسم الانسان هو فرد ويوجد بداخل كل انسان مجموعات من الكرموسومات وكل كرموسوم يحتوي على جينات معينه وهكذا ......

. انا ايظا عملت مثل ماحضرت ذكرت هذا الشي في مشروعي وارجو ان تقراء الموضوع بتركيز والى النهاية

ماذا نريده من الخورزميه الجينيه هو الوصول الى افضل الحلول اي الحصول على جدول يحتوي على اقل عدد من التضاربات وانا فعلا وصلت الى هاي النتيجه !

* اللغه المستخدمه هي لغه سي شارب واستخدمت اس كيو ال سيرفر في بناء قاعده البيانات .

الجدول المستخدمه....

جدول للمراحل الطلبه

جدول للمواد الدراسية

جدول الى الاساتذه

جدول للقاعات الدراسية

جدول الوقت

جدول البلوك سوف اشرح لكم ماالمقصود من هذا الجدول وشنو الفائده منه لاحقا .

الشروط الصعبه هي

1- عدم وجود محاضرتين في نفس الوقت لنفس للطلاب

2- عدم وجود محاضرتتين في نفس الوقت لنفس الاستاذ

3- عدم وجود محاضرتين في نفس الوقت في نفس القاعده الدراسية

الشروط السهله هي

1- اذا كانت الماده الدراسية تحتاج الى عملي ونظري فان من الافضل ان يكون بالبدايه النظري ومن ثم العملي

2- هناك بعض الاساتذه الذين هم يختارون موعد محاضرتهم اي في ايام معينه يكون متواجدين بالجامعه فيجب مراعاه ذلك .

3- اذا كانت الماده الدراسية تتكرر في الاسبوع اكثر من مره فيجب عدم تكرر تلك الماده في نفس اليوم .

هذا الشروط التي انا حققتها في مشروعي وكانت مطلوبه مني !

الجدول الدراسي او الجدول الاسبوعي يحتاج الى ماده دراسية ونوع المحاضرة عملي او نظري واستاذ وطلبه وقاعده دراسيه ووقت المحاضرة

بمان نحن نعرف المواد الدراسية ونعرف الاستاذ ونعرف مراحل الطلبه ونوع المحاضرة لذلك انا اقترحت انا اعمل جدول يجمع تلك المعلومات وهو جدول البلوك

اي يحتوي على رقم البلوك ورقم الاستاذ ورقم المرحله للطلبه ورقم الماده الدراسبة ونوع الماحضره لاننا نعرف بان هذا الاستاذ يدرس هذه الماده ويدرس تلك المرحله لذلك

اي رقم البلوك عندما يكون = 1 يعني هناك استاذ وماده ومرحله ونوع المحاضرة اي توضيح اكثر

بلوك 1 والاستاذ علي رقمه 3 والماده سي شارب رقمه 5 ونوع الماحضرة عملي ورقمه 2 ومرحله الطلبه 1 اي المرحله الاولى شعبه أ

وهكذا الى ان ندخل كل المعلومات ونربط فيما بينهم في جدول واحد والافضل ان يكون جدول متسلسل وترقيم تلقائي

الان نحن حصلنا عن متغير واحد وهو البلوك يحتوي على نصف المعلومات ...

الان ماذا نحتاج للمحاضرة الواحده ؟

نحتاج الى وقت والى قاعاده دراسية

لدينا 15 وقت خلال الاسبوع اي ثلاث محاضرات باليوم وهناك خمسه ايام اذا لدينا 15 وقت وتكون الاوقات من 1-2-3- ..... 15

1 يعني يوم الاحد الساعه 8-10

2 يعني يوم الاحد من الساعه 10- 12

3 يعني يوم الاحد من الساعه 12- 2

4 يعني يوم الاثنين من الساعه 8-10

وهكذا الى ال 15 يعني يوم الخميس من الساعه 12- 2

وبما ان كل بلوك يحتاج الى وقت سوف نقوم بتوزيع الاوقات على عدد البلوكات عشوائيا اي لكل بلوك وقت ويكون الوقت محصورة من 1 الى 15 بما ان عشوائيا سوف يتم توليد عدد من التظاربات .

نفس الحال بالنسبة الى القاعات الدراسية لدينا سبع قاعات دراسية اذا يتم توزيعهم عشوائيا على البلوكات لكل بلوك قاعده دراسية مع مراعاه البلوك هل هو عملي ام نظري يعني لدينا اربع نظري وثلاثه عملي اقصد القاعات فيجب ان يتم التوزيع عشوائيا اعتمادا على البلوك اذا كان عملي فااخذ رقم القاعه عشوائيا من 7.5.6

واذا كان البلوك نظري فااخذ رقم القاعه من 1.2.3.4

اذا اصبح لدينا جدول كامل من ثلاث متغيرات

بلوك ووقت وقاعه

وهذا الجدول يمثل فرد واحد وبداخل الفرد يوجد كرموسومات وهما الوقت والقاعه اي لدينا جدول دراسي الان يحتوي على عدد من التضاربات

ناتي الان الى حساب عدد التضاربات الموجوده في هذا الجدول الدراسي حسب الشروط الموجوده لدينا . ناتي الان الى تخزين هذا الجدول او هذا الفرد في قائمه ونرجع الى تهئيه فرد جديد بنفس الطريقه ويتم تخزينه في نفس القائمه الى ان نحصل على 1000 فرد على سبيل المثال

وهذا القائمه تسمى التجمع اي

Population

وبعدها نذهب الى عمليه التصلب والطفره وسوف اشرحهم في وقت اخرى ان شاء الله ...

#22

اشكرك اخي الطائي واتمنى منك ان تشرح كيف يتم حساب الفيتنس فنكشن لكل فردي وكيف يتم عمل التزاوج و الطفرات و ايضا ما هو اقل عدد يمكن ان أبدأ بتوليده في اول population علما انه ليس لدي قيد القاعدة الدراسية لان الحالة التي اعالجها تُخصص لكل فوج دراسي قاعة دراسية محددة اذن فهذه نقطة ايجابية

شكرا للجميع

#23

:wink: عرف ما يلي :-

1:- Hard constraints :- القيود الصعبه والتي يجب ان تحل نهائيا في النهايه , وهناك طرق كثيره لحلها , الكثير من الباحثين استخدموا علم يسمى Graph Coloring واخرين استخدموا طرق اجرائيه اخرى مثل Largest degree او greedy heuristic او حتى خوارزميات ال Meta heuristic والكثير الكثير , وفي حالة الخوارزميه الجينيه , الغالبيه يعلموا انشاء الحل المبدأي عشوائيا لذا الحلول الاولى يكون بها قيود صعبه ومن هنا خرجت افكار كثيره لحل هذه المشكله اثناء عمل الخورازميه الجينيه , مثل repair function اي تصحيح وحل التضاربات بطرق اجرائيه مبسطه كالتبديل والنقل , او اعطاء التتضاربات الصعبه قيم اعلى فتكون لها الاولويه في الحل اثناء عمل الخارزميه الجينيه كما ذكرتلك سابقا كرقم 100000 مثلا او اعلى .

2:- Soft constraints :- القيود السهله وهي التي نريد ان نقلل منها وهذا الهدف من الخوارزميه الجينيه , Minimize the soft constraints violations ,وكل قيد يحسب له عقوبه خاصه فيه (غالبا يجب ان تختلف القيم )

3:- fitness function :- تساوي مجموع القيم التي تمثل التضاربات الصعبه والسهله ( لكل ماده او محاضره على حده) ومن ثم جمعها لكل المحاضرات في الجدول او الكرومسوم , ومن خلال خطوات عمل الخوارزميه الجينيه المرجوا منها تقليل قيمة الفتنس قدر المستطاع للقيود السهله وحل القسود الصعبه نهائيا و

4:- Conflict matrix :- ماتركس يتم فيها حساب التضاربات بين كل مادتين في الداتا لديك ومن خلالها تستطيع حساب القيود الصعبه وحساب القيود السهله ( على حسب الداتا لديك )

يعني مثلا مصفوفة التضاربات تتكون من محورين X و Y وكلا المحورين يمثل نفس المواد ومن ثم كل تضارب بين مادتين نضع 1 وعدم التضارب نضع 0 , يعني لنفرض مادتين لهما نفس المدرس فهذا يعني التقاطع بينهم يكون 1 , هذه المصفوفه الهدف منها تسهيل الحل من الناحيه البرمجيه فقط ولكنها طبقت وشرحت اكاديميا ويوجد دراسات نفذت باستخدامها ونشرت اوراق بحثيه عليها و

5:- Violation :- الاكراه او العقوبه التي تحدث جراء التضاربات سواء كانت تابعه للقيود الصعبه او السهله .

6:- genetic algorithm :- :wink:

7:- population based algorithms :- نوع من انواع ال meta heuristic algorithms سميت هكذا لانها لا تتعتمد على single solution بل تستخدم اكثر من solution على عكس ال simulated annealing او tabu search او ال ant algorithm , ال SA مثلا تبدأ بحل واحد وتكمل الخوارزميه هكذا وتقوم بتحسين هذا الحل من خلال اعتماد حلول سئيه بناءا على دردجة الحراره ومقدار والذي يؤثر في acceptance criterion وهو مقدار احتمالي يحسب بناءا على قيمة التحسين في الحل القديم (اي الفرق بين الفتنس فنكشن القديم الذي حسبناه للحل السابق و الفتنس فنكشن الجديد الذي حسبناه للحل الجديد ) ودرجة الحراره الحاليه , اووووه الغالشغله طويله , ما علينا , المهم الفرق بين ال simulated annealing و genetic algorithm انه الاولى تعتمد على حل واحد ويصار لتحسينه والثانيه تعتمد على تجمع اكثر من حل

8:- meta heuristics :- طرق اجرائيه تعتبر اكثر منطقيه لحل المشاكل الصعبه والمساعده في تحسين الحلول والوصول الى الحلول المثلى , مثل ال geneitic algrithim و SA و ant algo و tabu search و Monte Carlo algo وغيرهم

H-T كتب:

هل اطلعت على الدراسات السابقه في موضوع University Course Timetable Problem ?

هل تعرف كيف يحسب ال objective function ?

ما يمثل كل جين ؟

كل فرد يتكون من مجموعه من الكروموسومات ؟ كيف هذا ؟

اقبل نصيحتي , قبل ان تكتب حرف كود واحد افهم المشكه وكيف تمثل ؟

اشرت لكل شيء في مشاركاتي وشرحتها وبالنسبه لل objective function هو نفسه ال fitness Function

-----------

اذا كنت طالب بكالورويوس فمجرد عملك للنظام يعتبر مشروع تخرج , لكن لو كنت طالب دراسات عليا , ماجستير او دكتوراه , سيكون سؤالي لك ماهو ال contribution عندك ؟ ماهو objective ؟ وقبل كل هذا ماهو ال research question ؟

تحياتي

وبالمناسبه , القيد السهل الثاني لديك هو قيد صعب وليس قيد سهل , راجع مشرفك وراجع المراجع الموجوده .

بالتوفيق

#24
H-T كتب:

:wink: عرف ما يلي :-

1:- Hard constraints :- القيود الصعبه والتي يجب ان تحل نهائيا في النهايه , وهناك طرق كثيره لحلها , الكثير من الباحثين استخدموا علم يسمى Graph Coloring واخرين استخدموا طرق اجرائيه اخرى مثل Largest degree او greedy heuristic او حتى خوارزميات ال Meta heuristic والكثير الكثير , وفي حالة الخوارزميه الجينيه , الغالبيه يعلموا انشاء الحل المبدأي عشوائيا لذا الحلول الاولى يكون بها قيود صعبه ومن هنا خرجت افكار كثيره لحل هذه المشكله اثناء عمل الخورازميه الجينيه , مثل repair function اي تصحيح وحل التضاربات بطرق اجرائيه مبسطه كالتبديل والنقل , او اعطاء التتضاربات الصعبه قيم اعلى فتكون لها الاولويه في الحل اثناء عمل الخارزميه الجينيه كما ذكرتلك سابقا كرقم 100000 مثلا او اعلى .

2:- Soft constraints :- القيود السهله وهي التي نريد ان نقلل منها وهذا الهدف من الخوارزميه الجينيه , Minimize the soft constraints violations ,وكل قيد يحسب له عقوبه خاصه فيه (غالبا يجب ان تختلف القيم )

3:- fitness function :- تساوي مجموع القيم التي تمثل التضاربات الصعبه والسهله ( لكل ماده او محاضره على حده) ومن ثم جمعها لكل المحاضرات في الجدول او الكرومسوم , ومن خلال خطوات عمل الخوارزميه الجينيه المرجوا منها تقليل قيمة الفتنس قدر المستطاع للقيود السهله وحل القسود الصعبه نهائيا و

4:- Conflict matrix :- ماتركس يتم فيها حساب التضاربات بين كل مادتين في الداتا لديك ومن خلالها تستطيع حساب القيود الصعبه وحساب القيود السهله ( على حسب الداتا لديك )

يعني مثلا مصفوفة التضاربات تتكون من محورين X و Y وكلا المحورين يمثل نفس المواد ومن ثم كل تضارب بين مادتين نضع 1 وعدم التضارب نضع 0 , يعني لنفرض مادتين لهما نفس المدرس فهذا يعني التقاطع بينهم يكون 1 , هذه المصفوفه الهدف منها تسهيل الحل من الناحيه البرمجيه فقط ولكنها طبقت وشرحت اكاديميا ويوجد دراسات نفذت باستخدامها ونشرت اوراق بحثيه عليها و

5:- Violation :- الاكراه او العقوبه التي تحدث جراء التضاربات سواء كانت تابعه للقيود الصعبه او السهله .

6:- genetic algorithm :- :wink:

7:- population based algorithms :- نوع من انواع ال meta heuristic algorithms سميت هكذا لانها لا تتعتمد على single solution بل تستخدم اكثر من solution على عكس ال simulated annealing او tabu search او ال ant algorithm , ال SA مثلا تبدأ بحل واحد وتكمل الخوارزميه هكذا وتقوم بتحسين هذا الحل من خلال اعتماد حلول سئيه بناءا على دردجة الحراره ومقدار والذي يؤثر في acceptance criterion وهو مقدار احتمالي يحسب بناءا على قيمة التحسين في الحل القديم (اي الفرق بين الفتنس فنكشن القديم الذي حسبناه للحل السابق و الفتنس فنكشن الجديد الذي حسبناه للحل الجديد ) ودرجة الحراره الحاليه , اووووه الغالشغله طويله , ما علينا , المهم الفرق بين ال simulated annealing و genetic algorithm انه الاولى تعتمد على حل واحد ويصار لتحسينه والثانيه تعتمد على تجمع اكثر من حل

8:- meta heuristics :- طرق اجرائيه تعتبر اكثر منطقيه لحل المشاكل الصعبه والمساعده في تحسين الحلول والوصول الى الحلول المثلى , مثل ال geneitic algrithim و SA و ant algo و tabu search و Monte Carlo algo وغيرهم

اشرت لكل شيء في مشاركاتي وشرحتها وبالنسبه لل objective function هو نفسه ال fitness Function

-----------

اذا كنت طالب بكالورويوس فمجرد عملك للنظام يعتبر مشروع تخرج , لكن لو كنت طالب دراسات عليا , ماجستير او دكتوراه , سيكون سؤالي لك ماهو ال contribution عندك ؟ ماهو objective ؟ وقبل كل هذا ماهو ال research question ؟

تحياتي

وبالمناسبه , القيد السهل الثاني لديك هو قيد صعب وليس قيد سهل , راجع مشرفك وراجع المراجع الموجوده .

بالتوفيق

والله معلوماتك رائعه جدا واشكرك على التفاعل معي

واتمنى بان تزودنا اكثر واكثر من المعلومات

بخصوص مشاركتي بالموصوع هنا لاجل الاخ starwassime الذي احتاج مساعده من الموقع وانا حبيت انا اقدم له المساعده بما املك من علم ولو كان بجزء بسيط جدا واسوف اكمل لك اخي بالايام القادمه تكمله الموضوع ان شاء الله

اما الاخ H-T فا والله اعجبتني بطريقه شرحلك واشكرك مره ثانية واتمنى بان تشرح لنا تلك المصطلحات الاضافية لان ليس لديا معلومات كافية بالموضوع النظري وان تصلح لنا اذا اخطئنا وبخصوص القيد السهل الثاني فعلا انو من الشروط الصعبه انا اخطات بالكتابه ....

#25

شكرا للأخ H-T على الشرح الذي يقدمه وأتمنى منه أن يشرح لنا كيف يتم تمثيل الكرومزومات او الصبغيات في لغة برمجة لاني قرأت ان هناك العديد من التمثيلات لعل أفضلها من خلال ما قرأت في هذه الحالة هو التمثيل بال binary 0/1 لان هذه النقطة لازالت ملغة بالنسبة الي اذ كيف سنقوم بتحويلها للشكل الثنائي و كيف سيتم قرائتها من output الخوارزمية الجينية شكرا على المساعدة

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…