A-07 - AS Nida
A-07 - AS Nida
A-07 - AS Nida
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
การประชุมวิชาการด้านการวิจัยดําเนินงานแห่งชาติ ประจําปี 2555<br />
วันที่<br />
6-7 กันยายน 2555 ณ โรงแรม พูลแมน บางกอก คิง เพาเวอร์ กรุงเทพฯ<br />
ตัวแบบกําหนดการจํานวนเต็ม และโปรแกรมสําเร็จรูปเพื่อแก้ปัญหาการจัดตารางสอบ<br />
Integer programming model and application program for exam timetabling problem<br />
วรวุฒิ หวังวัชรกุล 1 ศศิมาพร พัฒน์วิชัยโชติ 2<br />
ภาควิชาวิศวกรรมอุตสาหการ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ 50 ถนนงามวงศ์วาน<br />
แขวงลาดยาวเขตจตุจักร กรุงเทพฯ 10902<br />
E-mail: 1 fengwww@ku.ac.th, 2 lovenam_nam@hotmail.com<br />
บทคัดย่อ<br />
ในปัจจุบันการจัดตารางสอบของคณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ เป็นลักษณะของการรวมกลุ่มผู้ที่มีหน้าที่รับผิดชอบร่วมกัน<br />
เพื่อจัดตารางสอบในแต่ละภาคการศึกษา<br />
โดยก่อนการจัดตารางสอบของทางคณะฯ จะอ้างอิงตารางสอบวิชาพื้นฐานของส่วนกลาง<br />
เพื่อไม่ให้เกิดเวลาสอบ<br />
ซ้ําซ้อนของนิสิตแต่ละชั้นปี<br />
ทั้ง<br />
12 ภาควิชา รวม 180 รายวิชา ซึ่งในการจัดตารางสอบทําการจัดด้วยมือ<br />
ภายใต้เงื่อนไขทรัพยากรจํากัด<br />
ทําให้เสียเวลา และ<br />
เกิดข้อผิดพลาด จึงสร้างตัวแบบกําหนดการจํานวนเต็ม และแก้ปัญหาด้วยโปรแกรม Premium Solver in Excel ที่สามารถรองรับปัญหาขนาดใหญ่ได้<br />
โดย<br />
ผลที่ได้จากการทําโครงงานคือมีตัวแบบทางคณิตศาสตร์ที่เป็นมาตรฐานในการจัดตารางสอบมีประสิทธิภาพ<br />
สามารถรองรับข้อจํากัดได้หลากหลาย ลดเวลา<br />
และความผิดพลาดในการจัดตารางสอบด้วยมือ นอกจากนี้เพื่อเป็นการพัฒนาการจัดตารางสอบที่สามารถรองรับต่อผู้ใช้งานทั่วไปได้<br />
จึงทําการสร้างเป็น<br />
โปรแกรมสําเร็จรูปจัดตารางสอบของคณะวิศวกรรมศาสตร์ โดยใช้ Microsoft Visual Studio 2010 Ultimate สร้างฐานข้อมูลจาก Microsoft Access<br />
20<strong>07</strong> และใช้ Crystal Report for Visual Studio 2010 รายงานผลเป็นตารางสอบของคณะวิศวกรรมศาสตร์ มีการพัฒนา algorithm เป็นหลักการใน<br />
การจัดตารางสอบ โดยผลที่ได้จากการพัฒนาเป็นโปรแกรมสามารถลดเวลาในการจัดตารางสอบ<br />
อีกทั้งยังเป็นโปรแกรมที่มีประสิทธิภาพ<br />
เป็นมาตรฐานใน<br />
การจัดตารางสอบ และลดปัญหาตารางสอบซ้ําซ้อนของนิสิตได้<br />
คําสําคัญ: การจัดตารางสอบ, กําหนดการจํานวนเต็ม, วิธีฮิวริสติก<br />
Abstract<br />
At present, the exam timetabling for Faculty of Engineering, Kasetsart University is accomplished by a group of<br />
responsible people assigned each semester. The basic required course exam timetabling is first issued by the university. The<br />
faculty follows the schedule to prevent the time conflict for all the engineering students in 12 departments with the total of<br />
around 180 subjects per semester. The current timetabling process, completed manually, is time-consuming and prone to human<br />
error. We propose an integer programming formulation and solve with Premium Solver in Excel, capable of dealing with large-scale<br />
problems. The model is superior to the current procedure in accuracy and ability to cope with large-scale problems including a<br />
large number of operational constraints. To ensure that the exam timetabling is accessible and user-friendly, we develop an<br />
algorithm for an application program using Microsoft Visual Studio 2010 Ultimate, Microsoft Access 20<strong>07</strong> for database and Crystal<br />
Report for Visual Studio 2010 for report. In conclusion, the mathematical model and the application program are more efficient<br />
than the current method and can reduce the time-conflict problem for the students.<br />
Keywords: Exam timetabling, Integer programming, Heuristic procedure<br />
1. บทนํา<br />
1.1 ความสําคัญและที่มา<br />
ในปัจจุบันการจัดตารางสอบของคณะวิศวกรรมศาสตร์<br />
มหาวิทยาลัยเกษตรศาสตร์ เป็นลักษณะของการรวมกลุ่มผู้ที่มีหน้าที่<br />
รับผิดชอบ ร่วมกันจัดตารางสอบในแต่ละภาคการศึกษา โดยก่อนการ<br />
จัดตารางสอบของคณะวิศวกรรมศาสตร์จะอ้างอิงตารางสอบของ<br />
มหาวิทยาลัยเกษตรศาสตร์ เพื่อไม่ให้เกิดเวลาสอบซ้ําซ้อน<br />
เนื่องจาก<br />
การจัดตารางสอบเช่นนี้ในทุกภาคการศึกษาผู้ที่มีหน้าที่รับผิดชอบ<br />
จะต้องใช้เวลานาน เพราะจํานวนภาควิชาทั้ง<br />
12 ภาควิชา และรายวิชา<br />
1 อาจารย์ ภาควิชาวิศวกรรมอุตสาหการ คณะวิศวกรรมศาสตร์<br />
ของคณะวิศวกรรมศาสตร์ เฉลี่ยในแต่ละภาคการศึกษาประมาณ<br />
180<br />
วิชา ที่จัดการสอบ<br />
และเมื่อตารางสอบถูกจัดด้วยตัวแทนของแต่ละ<br />
ภาควิชาแล้ว จึงทําการตรวจสอบข้อผิดพลาดเกี่ยวกับวิชาที่สอบซ้ําซ้อน<br />
เมื่อพบข้อผิดพลาด<br />
จึงทําการปรับปรุงแก้ไข จนได้ตารางสอบที่เสร็จ<br />
สมบูรณ์<br />
นอกจากนี้ตารางสอบที่จัดทําขึ้น<br />
ได้ใช้หลักสูตรการเรียน<br />
การสอนของทางคณะวิศวกรรมศาสตร์ แต่ละภาควิชาและชั้นปี<br />
มาเป็น<br />
ตัวกําหนดในการจัดตารางสอบ ปัญหาที่เกิดขึ้นกับนิสิตบางกลุ่มที่ไม่ได้<br />
ลงทะเบียนเรียนตามหลักสูตรของทางคณะวิศวกรรมศาสตร์พบว่าวิชาที่<br />
ได้ลงทะเบียนเรียนมีการสอบซ้ําซ้อน<br />
อีกทั้งกฎระเบียบของคณะ
วิศวกรรมศาสตร์ ในปัจจุบัน กําหนดไว้ว่าไม่ให้มีการทําเรื่องขอสอบ<br />
ซ้ําซ้อนของนิสิตทุกชั้นปี<br />
จึงเป็นผลทําให้นิสิตที่กําลังจะจบการศึกษาใน<br />
ปีการศึกษานี้ไม่สามารถจบได้<br />
หรือแม้กระทั่งนิสิตชั้นปีอื่นๆที่มีการสอบ<br />
ซ้ําซ้อนในวิชาที่ลงทะเบียนเรียนก็ไม่สามารถเรียนได้<br />
ทําให้ใภาค<br />
การศึกษาต่อๆไป มีการสะสมวิชาที่ลงทะเบียนเรียนไม่ได้หลายวิชา<br />
เป็น<br />
ผลทําให้นิสิตไม่จบในระยะเวลาที่กําหนด<br />
1.2 วัตถุประสงค์การศึกษา<br />
1) สร้างตัวแบบทางคณิตศาสตร์เพื่อช่วยในการแก้ปัญหาการ<br />
จัดตารางสอบ และลดปัญหาในการสอบซ้ําซ้อน<br />
2) นําตัวแบบทางคณิตศาสตร์ที่สร้างมาประยุกต์ใช้กับ<br />
Microsoft Excel และใช้โปรแกรม Solver เป็นเครื่องมือใน<br />
การหาคําตอบ<br />
3) สร้างวิธีฮิวริสติก (Heuristic) เพื่อช่วยในการหาคําตอบ<br />
ในกรณี ปัญหามีขนาดใหญ่<br />
4) สามารถนําผลที่ได้มาประยุกต์สร้างเป็นโปรแกรม<br />
จัดตารางสอบ<br />
5) ทําให้มีระบบการจัดตารางสอบของคณะที่มีมาตรฐาน<br />
ประสิทธิภาพ และความแม่นยําสูงขึ้น<br />
และ<br />
เป็นที่ยอมรับจากทุกฝ่าย<br />
1.3 ขอบเขตและสมมติฐาน<br />
ปัจจุบันการจัดตารางสอบของทางคณะวิศวกรรมศาสตร์<br />
เป็นการจัดการในรูปแบบของการทําด้วยมือ ซึ่งในบางครั้งทําให้เกิด<br />
ข้อผิดพลาดและปัญหา เช่น เรื่องการสอบซ้ําซ้อน<br />
เป็นต้น ดั้งนั้นหากมี<br />
การพัฒนาวิธีการจัดตารางสอบก็ทําให้การจัดตารางสอบสามารถทําได้<br />
รวดเร็วและเกิดความแม่นยําในการจัดมากขึ้นโดยมี<br />
ขอบเขตการศึกษาดังนี้<br />
1) จัดตารางสอบกลางภาคและปลายภาคตามรายวิชาที่<br />
เปิดสอน และสอบ ในคณะวิศวกรรมศาสตร์<br />
มหาวิทยาลัยเกษตรศาสตร์ วิทยาเขตบางเขน เท่านั้น<br />
2) สามารถนําตัวแบบทางคณิตศาสตร์ที่สร้างมาประยุกต์ใช้กับ<br />
Microsoft Excel และใช้โปรแกรม Solver เป็นเครื่องมือ<br />
ช่วยในการแก้ปัญหา<br />
3) หากปัญหาที่ต้องการแก้มีขนาดใหญ่หรือมีจํานวนวิชามาก<br />
และไม่สามารถใช้ตัวแบบทางคณิตศาสตร์ได้ จึงจะใช้วิธีฮิวริ<br />
สติก (Heuristic) เพื่อหาคําตอบอย่างง่าย<br />
4) นําผลที่ได้มาประยุกต์สร้างเป็นโปรแกรมจัดตารางสอบ<br />
โดยใช้ Microsoft Visual Studio 2010 Ultimate สร้าง<br />
โปรแกรม , Microsoft Access 20<strong>07</strong> สร้างฐานข้อมูล<br />
และ Crystal Report for Visual Studio 2010 รายงาน<br />
ผลเป็นตารางสอบของคณะวิศวกรรมศาสตร์<br />
2. การสร้างแบบจําลองทางคณิตศาสตร์<br />
ปัญหาการจัดตารางสอบ เริ่มมีมาตั้งแต่ช่วง<br />
ค.ศ. 1960 [4],<br />
[6] ปัญหานี้คือการจัดจํานวนวิชาภายใต้ทรัพยากรที่มีจํากัด<br />
เช่น<br />
ห้องเรียนและเวลาสอบ โดยข้อจํากัดที่สําคัญแบ่งได้เป็น<br />
Hard<br />
constraint และ Soft constraint โดยที่<br />
Hard constraint เป็น<br />
ข้อจํากัดที่ไม่สามารถละเมิดได้<br />
เช่น นิสิตแต่ละคนจะต้องมีตารางสอบ<br />
แค่วิชาเดียวในแต่ละช่วงเวลา ส่วน Soft constraint เป็นเงื่อนไขเพิ่มที่<br />
ทําให้ตารางสอบมีประสิทธิภาพมากขึ้น<br />
เช่น นิสิตแต่ละคนควรจะสอบ<br />
โดยมีระยะเวลาเว้นห่างและไม่สอบติดกัน [6] ตัวแบบทางคณิตศาสตร์<br />
ที่ใช้กําหนดการจํานวนเต็ม<br />
[2],[3] ในการแก้ปัญหานี้ได้ถูกพัฒนามา<br />
อย่างต่อเนื่องตามแต่การนําไปใช้งานและเงื่อนไชของแต่ละปัญหา<br />
เฉพาะ โดยมีวิธีในการแก้ที่แตกต่างกันออกไป<br />
[5],[7]<br />
2.1 ปัญหาการจัดตารางสอบ<br />
รายวิชาที่มีการจัดสอบในแต่ละชั้นปีทั้งการจัดตารางสอบ<br />
กลางภาค และจัดตารางสอบปลายภาค โดยศึกษาจากข้อมูลหลักสูตร<br />
การเรียนการสอนปีการศึกษา2554 ได้ดังนี้<br />
1) ตารางสอบกลางภาค มีจํานวนวิชาที่จัดสอบในชั้นปีที่<br />
2, 3<br />
และ4 คือ 23, 52 และ91วิชา ตามลําดับ<br />
2) ตารางสอบปลายภาค มีจํานวนวิชาที่จัดสอบทั้งหมด<br />
163<br />
วิชา จากการรวบรวมรายวิชาทั้งหมดของคณะ<br />
วิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ มีจํานวน<br />
576 วิชา<br />
ทําการจัดตารางสอบทั้ง<br />
12 ภาควิชา โดยจัดตารางสอบ<br />
กลางภาคจํานวน 9 วัน และตารางสอบปลายภาคจํานวน 12 วัน<br />
พร้อมทั้งเขียนตัวแบบทางคณิตศาสตร์ใน<br />
รูปแบบมาตรฐานของชั้นปีที่<br />
2, 3 และ 4 เพื่อใช้ในการแก้ปัญหาการจัดตารางสอบกลางภาคโดยตัว<br />
แบบทางคณิตศาสตร์ทั้ง<br />
3 ชั้นปี<br />
แบ่งเป็น 3ช่วงเวลาซึ่งในแต่ละ<br />
ช่วงเวลาที่จัดสอบสามารถรองรับจํานวนนิสิตได้ไม่เกิน<br />
1,000 คนและ<br />
เป็นอิสระต่อกันดังนี้<br />
ชั้นปีที่<br />
2 8:00 ถึง11:00 น. ชั้นปีที่3<br />
12:00 ถึง<br />
15:00 น. ชั้นปีที่<br />
4 16:00 ถึง 19:00 น. และตารางสอบปลายภาค<br />
แบ่งเป็น 2 ช่วงเวลาซึ ่งในแต่ละช่วงเวลาที่จัดสอบสามารถรองรับ<br />
จํานวนนิสิตได้ไม่เกิน 1,000 คน ดังนี้<br />
9:00 ถึง 12:00 น. และ13:00<br />
ถึง 16:00 น. โดยชั้นปีที่<br />
2, 3 และ4 ทําการสร้างตัวแบบทาง<br />
คณิตศาสตร์ร่วมกัน<br />
2.2 แบบจําลองคณิตศาสตร์<br />
2.2.1 แบบจําลองทางคณิตศาสตร์สําหรับการสอบ<br />
กลางภาคของชั้นปีที่<br />
2, 3 และ 4<br />
ดัชนี<br />
i วิชาที่<br />
i ; i= 1,2,…,n<br />
j วันที่<br />
j ; i= 1,2,…,m<br />
k ภาควิชาที่<br />
k ; k=1,2,…,l<br />
พารามิเตอร์<br />
n จํานวนวิชาในแต่ละชั้นปีที่<br />
2, 3 และ4<br />
n ของชั้นปีที่<br />
2 เท่ากับ 23 วิชา<br />
n ของชั้นปีที<br />
3 เท่ากับ 52 วิชา<br />
n ของชั้นปีที่<br />
4 เท่ากับ 91 วิชา<br />
m จํานวนวันที่ใช้ในการจัดสอบ<br />
เท่ากับ 9 วัน<br />
C จํานวนนิสิตที่ใช้จัดสอบไม่เกิน<br />
1,000 คน<br />
l จํานวนภาควิชา เท่ากับ 12ภาควิชา<br />
aii<br />
Element i,i ของเมตริกซ์ A จํานวนนิสิตในวิชาที่<br />
i<br />
D Element k,i ของเมตริกซ์ D ภาควิชาที่<br />
k สอบวิชาที่<br />
i<br />
ki<br />
ตัวแปรตัดสินใจ<br />
⎧ 1 if Class i is Schedule on day j<br />
Xij<br />
= ⎨<br />
⎩0;<br />
Otherwise ; i = 1,2,...,n , j = 1,2,...,m<br />
Y ; Number of students in class i on day j<br />
ij<br />
สมการเป้าหมาย<br />
m n<br />
∑∑<br />
MinZ = X<br />
j= 1 i=<br />
1<br />
ij<br />
i= 1,2,3,..., n<br />
; (1)<br />
j= 1,2,3,..., m
สมการข้อจํากัด<br />
n<br />
∑ ij<br />
i=<br />
1<br />
m<br />
∑<br />
j=<br />
1<br />
X = 1 i= 1,2,3,..., n (2)<br />
ij<br />
Y = a X i= 1,2,3,..., n; j = 1,2,3,..., m (4)<br />
i=<br />
1<br />
Y = C j= 1,2,3,..., m<br />
(3)<br />
ij ii ij<br />
n<br />
∑<br />
ij<br />
dX ≤ 1 k= 1,2,...,12; j= 1,2,3,..., m (5)<br />
ki ij<br />
X ∈{<br />
0,1 }<br />
Yij<br />
≥ 0 (7)<br />
สมการเป้าหมาย (1) คือ การจัดตารางสอบของวิชาที่<br />
i ในวันที่<br />
j<br />
ได้ในจํานวนน้อยที่สุด<br />
ภายใต้ข้อจํากัด สมการข้อจํากัด (2) คือการ<br />
ประกันว่าในแต่ละวิชาสามารถลงได้เพียง 1 วันเท่านั้น<br />
สมการที่<br />
(3)<br />
แสดงถึงการจัดจํานวนนิสิตเข้าสอบในแต่ละช่วงเวลาได้ไม่เกิน 1,000<br />
คน สมการที่<br />
(4) คือจํานวนนิสิตที่สอบในวิชาที่<br />
i วันที่<br />
j สมการที่<br />
(5)<br />
คือการคาดหวังว่าใน 1วันจะสอบได้เพียง 1วิชา หรือไม่มีการสอบเลย<br />
ของแต่ละภาควิชานั้น<br />
สมการขอบข่ายที่<br />
(6) นิยามให้สมาชิกใน<br />
เซตของตัวแปรตัดสินใจมีค่าเป็นไปได้แค่ 0 หรือ 1 เท่านั้น<br />
คือ ไม่มีหรือ<br />
มีจํานวนวิชาที่<br />
i สอบในวันที่<br />
j ตามลําดับ และสมการข้อจํากัดที่<br />
(7)<br />
นิยามให้สมาชิกในเซตของตัวแปร มีค่ามากกว่าหรือเท่ากับ 0<br />
2.2.2 แบบจําลองทางคณิตศาสตร์สําหรับตารางสอบ<br />
ปลายภาคของชั้นปีที่<br />
2, 3 และ4<br />
ตัวแบบคณิตศาสตร์ของตารางสอบปลายภาคคล้ายกับตาราง<br />
สอบกลางภาค แตกต่างที่ไม่มีการกําหนดช่วงเวลาตายตัว<br />
n คือจํานวน<br />
วิชารวมทั้งหมดของชั้นปีที่<br />
2, 3 และ 4 =23+52+91= 166 วิชา m<br />
คือจํานวนวันที่ใช้ในการจัดสอบเท่ากับ<br />
12 วัน แต่ละวันแบ่งเป็น 2<br />
ช่วงเวลา 9:00 ถึง 12:00 น. และ13:00 ถึง 16:00 น. ซึ่งในแต่ละ<br />
ช่วงเวลาที่จัดสอบสามารถรองรับจํานวนนิสิตได้ไม่เกิน<br />
1,000 คน<br />
2.2.3 ผลการทดสอบแบบจําลองทางคณิตศาสตร์<br />
จากผลการทดสอบแบบจําลองทางคณิตศาสตร์สําหรับ<br />
ตารางสอบกลางภาค โดยใช้โปรแกรม Solver (Student version) ใน<br />
Microsoft Excel โปรแกรมไม่สามารถแก้ปัญหาตัวแบบทาง<br />
คณิตศาสตร์ทั้งหมด<br />
และเมื่อใช้โปรแกรม<br />
Premium Solver สามารถ<br />
แก้ปัญหาตัวแบบทางคณิตศาสตร์ของชั้นปีที่<br />
2 และ 3 ได้ สําหรับตัว<br />
แบบทางคณิตศาสตร์ของชั้นปีที่<br />
4 โปรแกรม Premium Solver ไม่<br />
สามารถแก้ปัญหาได้ เนื่องจากขนาดของปัญหามีขนาดใหญ่<br />
2.3 จัดตารางสอบโดยวิธีฮิวริสติก<br />
ทางเลือกของการใช้แบบจําลองทางคณิตศาสตร์ คือ วิธีฮิวริ<br />
สติกเพื่อช่วยในการหาคําตอบได้ง่ายขึ้น<br />
กรณีปัญหาของตัวแบบทาง<br />
คณิตศาสตร์มีขนาดใหญ่ซึ่ง<br />
Premium Solver ไม่สามารถแก้ปัญหาได้<br />
สําหรับเงื่อนไขที่ใช้ในการพิจารณาเพื่อจัดตารางสอบมีดังนี้<br />
1) วิชาที่มีผู้สอบเป็นจํานวนมากจะนํามาจัดสอบก่อนเพื่อให้<br />
เวลาในการตรวจข้อสอบได้ทันเวลาการส่งเกรด<br />
2) หลักสูตรรายวิชาในแต่ละชั้นปีจะไม่สอบติดกัน<br />
โดยวิธีฮิวริสติกมีขั้นตอนดังต่อไปนี้<br />
1) นําข้อมูลมาวิเคราะห์โดยข้อมูลจะแสดงรายละเอียดของ<br />
วิชาที่มีการจัดสอบในแต่ละภาควิชา<br />
2) หาผลรวมจํานวนวิชาที่มีการสอบในแต่ละภาควิชา<br />
(6)<br />
เลือกภาควิชาที่มีจํานวนวิชาการจัดสอบมากที่สุดจากการ<br />
พิจารณาภาควิชาทั้งหมด12ภาควิชา<br />
โดยวิชาที่มีจํานวน<br />
นิสิตมากที่สุดให้ลงในวันแรกที่มีการสอบ<br />
3) ตัดภาควิชาและรายวิชาที่ถูกใช้ในการตัดตารางสอบออก<br />
จากนั้นทําการหาผลรวมจํานวนวิชาที่มีการสอบในแต่ละ<br />
ภาควิชาเช่นเดียวกับขั้นตอนที่<br />
2) และทําตามขั้นตอนต่อไป<br />
เรื่อยๆจนสามารถจัดตารางสอบครบทุกภาค<br />
และวิชาที่สอบ<br />
หมายเหตุ ในกรณีที่มีจํานวนวิชาที่ใช้สอบในภาควิชามากกว่า<br />
1<br />
ภาควิชา ให้พิจารณาจากจํานวนนิสิตในวิชาต่างๆ ของแต่ละภาค เลือก<br />
ภาควิชาที่มีจํานวนนิสิตมากที่สุด<br />
มาใช้ในการจัดตารางสอบก่อน<br />
ในกรณีที่มีจํานวนวิชาที่ใช้สอบในภาควิชามากกว่า<br />
1วิชา<br />
และเมื่อพิจารณาจํานวนนิสิตที่มากที่สุดในแต่ละวิชาของแต่ละภาคผล<br />
ปรากฏมีเท่ากันให้เลือกภาควิชาไหนมาจัดก่อนก็ได้ และการจัดรายวิชา<br />
ของแต่ละภาคลงในตารางจะต้องคํานึงถึงวิชาในหลักสูตรเดียวกันจะไม่<br />
สามารถจัดสอบพร้อมกันได้<br />
3. โปรแกรมสําเร็จรูปการจัดตารางสอบ<br />
ตัวแบบทางคณิตศาสตร์ที่จัดทําขึ้นสามารถแก้ปัญหาการจัด<br />
ตารางสอบของคณะวิศวกรรมศาสตร์ได้ แต่ยากแก่การใช้งานของ<br />
ผู้ปฏิบัติงานทั่วไป<br />
จึงมีการสร้างโปรแกรมสําเร็จรูปขึ้นมาให้เหมาะกับ<br />
ผู้ปฏิบัติงานทั่วไปในการจัดตารางสอบของคณะวิศวกรรมศาสตร์<br />
โดยใช้<br />
โปรแกรม Microsoft Visual Studio 2010 Ultimate และ<br />
Microsoft Access 20<strong>07</strong> ในการสร้างฐานข้อมูล และใช้โปรแกรม<br />
Crystal Report for Visual Studio 2010 ในการรายงานผลออกมา<br />
เป็นตารางสอบกลางภาค และตารางสอบปลายภาคของคณะ<br />
วิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ ตรงตามวัตถุประสงค์<br />
ข้างต้น<br />
ในตัวโปรแกรมสําเร็จรูปการจัดตารางสอบจะมีฐานข้อมูล<br />
ภาควิชา รายวิชา ที่ยืดหยุ่นและเปลี่ยนแปลงได้เมื่อมีการพัฒนา<br />
หลักสูตร หรือเปลี่ยนแปลงรายวิชานั้นๆ<br />
พร้อมทั้งสามารถกําหนด<br />
จํานวนวันของการสอบทั้งกลางภาค<br />
และปลายภาค กําหนดวันห้าม<br />
สอบ หรือระบุวิชาที่ให้ภาควิชาทําการจัดสอบเอง<br />
และรายงานผล<br />
ออกมาเป็นไฟล์ที่เราต้องการโดยเราสามารถเลือกรูปแบบการรายงาน<br />
ผลได้หลายรูปแบบ อีกทั้งโปรแกรมสามารถคํานวณการจัดตารางสอบ<br />
ได้ง่าย และรวดเร็ว สะดวกต่อผู้ใช้งาน<br />
การจัดทําโปรแกรมสามารถอธิบายขั้นตอนการจัดตาราง<br />
สอบในรูปแบบการไหลของงาน(Data Diagram) อธิบายได้ดังรูปที่<br />
1<br />
รูปที่<br />
1 แผนผังการไหล และขั้นตอนการจัดตารางสอบของโปรแกรม
เงื่อนไขในการจัดตารางสอบคือ<br />
1) จํานวนนิสิตที่จัดสอบใน<br />
1 วัน คือ<br />
จํานวนนิสิตที่สามารถจัดสอบได้ในกลางภาคไม่เกิน<br />
3,000 คน และในปลายภาคไม่เกิน 2,000 คน<br />
2) ช่วงเวลาเป็นของแต่ละชั้นปี<br />
สําหรับการจัดตารางสอบ<br />
กลางภาค อธิบายว่าตารางสอบกลางภาค ช่วง 8:00ถึง<br />
11:00 น. เป็นวิชาของนิสิตชั้นปีที่2<br />
ที่จัดสอบ<br />
ช่วง 12:00<br />
ถึง15:00 น. เป็นวิชาของนิสิตชั้นปีที่<br />
3 ที่จัดสอบ<br />
และช่วง<br />
16:00 ถึง 19:00 น. วิชาของนิสิตชั้นปีที่<br />
4 ที่จัดสอบ<br />
3) ในภาควิชาเดียวกันของแต่ละชั้นปี<br />
การจัดสอบในแต่ละวัน<br />
จะมีวิชาจัดสอบไม่เกิน 2 วิชา เพราะจะส่งผลต่อนิสิตที่<br />
ลงทะเบียนเรียนไม่ตรงตามหลักสูตร โดย 2 วิชาที่สอบคือ<br />
วิชาภาค และจะต้องสอบวิชานอกภาคอีก 1 วิชา หรือ<br />
มากกว่านั้น<br />
การสอบ3 วิชาจึงเป็นจํานวนวิชาสูงสุดที่นิสิต<br />
สามารถสอบได้ใน 1วัน<br />
4) วิชาที่มีจํานวนนิสิตมากที่สุดจะนํามาจัดสอบก่อน<br />
โดย<br />
จะต้องสอดคล้องกับเงื่อนไขในข้อ<br />
1) ถึง 3) ที่กล่าวมา<br />
ข้างต้น จะทําให้การจัดตารางสอบเป็นหลักการเดียวกัน<br />
เสมอ ไม่ว่าจะเปลี่ยนแปลงรายวิชา<br />
จํานวนวันที่จัดสอบ<br />
วันที่ห้ามจัดสอบ<br />
จัดตารางสอบกลางภาค หรือจัดตาราง<br />
สอบปลายภาค โปรแกรมจะทําตามเงื่อนไขที่ว่า<br />
เลือกวิชาที่<br />
มีจํานวนนิสิตมากที่สุดนํามาจัดลงตารางสอบก่อน<br />
โดย<br />
จะต้องสอดคล้องกับเงื่อนไขในข้อ<br />
1) ถึง 3) ที่กล่าวมา<br />
ข้างต้น<br />
4. สรุป<br />
จากการทดลองได้สร้างตัวแบบทางคณิตศาสตร์ของตาราง<br />
สอบกลางภาค และตารางสอบปลายภาคของคณะวิศวกรรมศาสตร์<br />
มหาวิทยาลัยเกษตรศาสตร์ ทั้งหมด<br />
12 ภาควิชา จํานวน 576 วิชาใน<br />
หลักสูตรการสอน และทําการจัดตารางสอบกลางภาคจํานวน 9 วัน<br />
ปลายภาคจํานวน 12 วัน เพื่อให้ตารางสอบมีประสิทธิภาพ<br />
และ<br />
ถูกต้องตามหลักการจัดตารางสอบที่เป็นมาตรฐาน<br />
พร้อมทั้งนําตัวแบบ<br />
ทางคณิตศาสตร์ที่สร้างไว้มาประยุกต์ใช้กับ<br />
Microsoft Excel โดยใช้<br />
โปรแกรม Premium Solver ที่มีประสิทธิภาพมากกว่า<br />
Solver ใน<br />
Microsoft Excel ในการหาคําตอบของตัวแบบทางคณิตศาสตร์ซึ่งเป็น<br />
ปัญหาขนาดใหญ่ และพบว่าสามารถแก้ปัญหาได้กรณีปัญหามีตัวแปรไม่<br />
เกิน 2,000 ตัวแปร ทําให้ตัวแบบทางคณิตศาสตร์ของตารางสอบ<br />
กลางภาค ในชั้นปีที่<br />
4 และตัวแบบทางคณิตศาสตร์ของตารางสอบ<br />
ปลายภาคไม่สามารถแก้ปัญหาได้ จึงได้ใช้วิธีฮิวริสติกเข้ามาช่วยในการ<br />
หาคําตอบซึ่งทําให้รูปแบบการจัดตารางสอบสะดวก<br />
และมีหลักในการ<br />
จัดตารางสอบมากยิ่งขึ้น<br />
ทั้งนี้ได้สร้างโปรแกรมสําเร็จรูปเพื่อใช้ในการจัดตารางสอบ<br />
ของคณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ พบว่า<br />
โปรแกรมที่สร้างขึ้นให้ความสะดวกแก่ผู้ใช้งาน<br />
ลดเวลาในการจัดตาราง<br />
สอบ และรูปแบบการคํานวณที่ใช้หลักการเช่นเดียวกับตัวแบบทาง<br />
คณิตศาสตร์ที่สร้างไว้<br />
ทําให้จัดตารางสอบได้รวดเร็ว มีระบบการจัด<br />
ตารางสอบของคณะที่มีมาตรฐาน<br />
แนวทาง และเกณฑ์การจัดตาราง<br />
สอบที่ชัดเจนตามเงื่อนไขที่ใส่ในตัวโปรแกรม<br />
อีกทั้งในเรื่องของ<br />
ประสิทธิภาพ และความแม่นยําสูงขึ้นอีกด้วย<br />
5. เอกสารอ้างอิง<br />
[1] วิชา ศิริธรรมจักร์ สุรเชษฐ์ วงศ์ชัยพรพงษ์. Excel VBA<br />
Programming, กรุงเทพมหานคร:เคทีพี คอมพ์ แอนด์ คอนซัลท์,<br />
2551.<br />
[2] W. L. Winston, Introduction to Mathematical<br />
Programming. 2 rd ed. Duxbury Press., 1995.<br />
[3] W. L. Winston, Microsoft Excel: Data Analysis and<br />
Business modeling, Washington: Microsoft Press., 2004.<br />
[4] คําอธิบายรายวิชาคณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์<br />
[ซีดี - รอม]. สาระสังเขปจาก : Faculty of Engineering The best<br />
e-Faculty in production of e-Engineers, 2549.<br />
[5] P. Avella and I. A Vasil’ev. “Computational study of a<br />
cutting plane algorithm for university course<br />
Timetabling,” Journal of Scheduling, vol. 8, pp.497-514,<br />
2005.<br />
[6] R. Qu, E. K. Burke, B. McCollum, L.T.G. Merlot and S.Y.<br />
Lee. “A survey of search methodologies<br />
and automated system development for examination<br />
timetabling,” Journal of Scheduling, vol.12, no.1, pp.55-<br />
89, 2009.<br />
[7] S. Dascalki , T. Birbas, and E. Housos. “An integer<br />
programming formulation for a case study in<br />
university timetabling,” European Journal of Operational<br />
Research, vol. 153, pp. 117-135, 2004.<br />
ดร. วรวุฒิ หวังวัชรกุล ปัจจุบันเป็นอาจารย์<br />
ประจํา ภาควิชาวิศวกรรมอุตสาหการ<br />
มหาวิทยาลัยเกษตรศาสตร์<br />
งานวิจัยที่สนใจ<br />
Applied Operations<br />
Research, Applied Statistics, Logistics<br />
and Supply Chain Modeling<br />
ศศิมาพร พัฒน์วิชัยโชติ<br />
จบการศึกษาปริญญาตรี จากภาควิชา<br />
วิศวกรรมอุตสาหการ คณะวิศวกรรมศาสตร์<br />
มหาวิทยาลัยเกษตรศาสตร์