29.06.2013 Views

A-07 - AS Nida

A-07 - AS Nida

A-07 - AS Nida

SHOW MORE
SHOW LESS

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 />

มหาวิทยาลัยเกษตรศาสตร์

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!