ตรรกศาสตร์กับคอมพิวเตอร์

ที่มา https://www.scimath.org/lesson-mathematics/item/8789-2018-09-21-01-56-47

 

คอมพิวเตอร์ถูกนำมาใช้เพื่ออำนวยความสะดวก และแก้ปัญหาต่าง ๆ ได้อย่างมีประสิทธิภาพ ผ่านการสั่งงานในรูปของอัลกอริทึม ซึ่งมีการอธิบายการทำงานแตกต่างกันไปตามชนิดของเครื่องมือที่เลือกใช้อาทิ

  • ภาษาธรรมชาติ หรือภาษาที่ใช้ในชีวิตประจำวัน(ภาษาอังกฤษ) ทำให้เข้าถึงได้รวดเร็วไม่จำเป็นต้องศึกษาภาษาอื่นเพิ่มเติมแต่อาจมีอุปสรรคเพราะการสั่งงานด้วยภาษาธรรมชาติมักเกิดความคลุมเครือทำให้ไม่ได้ผลลัพธ์ในแบบที่ต้องการ ในขณะที่อัลกอริทึมนั้นไม่ต้องการให้มีความคลุมเครือในการทำงาน

  • ภาษาเครื่องจักร หรือ ภาษาโปรแกรมคอมพิวเตอร์ที่มีการทำงานแบบเป็นเหตุเป็นผลที่แน่นอน ปราศจากความสำนึกรู้ นั้นทำให้รายละเอียดเล็ก ๆ น้อย ๆ ต้องถูกตัดทิ้งไปในการใช้ภาษาคอมพิวเตอร์

  • การเขียนแผนผังเป็นเครื่องมือที่ช่วยให้เราเข้าใครโครงสร้างของอัลกอริทึมได้ชัดเจน แต่ข้อเสียคือถ้าขั้นตอนการทำงานนั้นมีความซับซ้อนมีความเป็นอิสระในการควบคุม เงื่อนไขที่ซับซ้อน และวงวนเหล่านี้อาจทำให้การเขียนแผนผังเป็นไปได้ยาก และมีความซับซ้อนเกินกว่าจะเข้าใจได้ง่าย

  • ซูโดโคด (Pseudo code) เป็นโครงสร้างภาษาที่คล้ายกับภาษาคอมพิวเตอร์ และภาษาธรรมชาติทำให้ง่ายต่อการเปลี่ยนซูโดโคดไปเป็นภาษาธรรมชาติร่วมไปถึงการแปลงไปเป็นภาษาคอมพิวเตอร์อื่นอีกด้วย

        ดังที่กล่าวมาข้างต้นจะเห็นว่าซูโดโคดนั้นใช้รูปแบบภาษาที่ผสมผสานระหว่างภาษาธรรมชาติและภาษาคอมพิวเตอร์ที่ยังคงรักษาความแจ่มชัดในการทำงานทำให้สอดคล้องการภาษาทางตรรกศาสตร์ที่มีความรัดกุมแจ่มชัดทำให้การสั่งงานคอมพิวเตอร์อยู่ในรูปของประโยคแบบมีเงื่อนไง (If-Then)

8789 1

ภาพที่ 1 ปกบทเรียนเรื่องตรรกศาสตร์กับคอมพิวเตอร์

ที่มา วีระ ยุคุณธร ดัดแปลงจาก https://upload.wikimedia.org/wikipedia/commons/3/3a/Russell1907-2.jpg,https://upload.wikimedia.org/wikipedia/commons/8/82/CharlesBabbage.jpg,https://upload.wikimedia.org/wikipedia/commons/a/a1/Alan_Turing_Aged_16.jpg

ประโยคแบบมีเงื่อนไข

          ในทางตรรกศาสตร์ข้อความ”ถ้า-แล้ว” เป็นข้อความที่ใช้แสดงความเป็นเหตุเป็นผลเช่นข้อความ ถ้า P แล้ว Q เราจะเรียก P ว่าสมมติฐานและเรียก Q ว่าข้อสรุปหลักการนี้จึงถูกนำมาใช้ในการสั่งงานคอมพิวเตอร์โดยที่ P คือเงื่อนไข และ Q คือคำสั่งเปรียบเทียบภาษาทั้ง 4 แบบจะได้ว่า

          ภาษาธรรมชาติ ถ้าเงื่อนไข P เป็นจริงให้ทำตามคำสั่ง Q

          ภาษาโปรแกรม excel  =If(P,Q)

          แผนผัง

8789 2

ภาพที่ 2 แผนผังอัลกอริทึม If-then
ที่มา วีระ ยุคุณธร ดัดแปลงจาก Skvarcius R. and Robinson W.B., หน้า 12

Psudocode If P then Q

แต่ในทางคอมพิวเตอร์นั้นถ้าจากตรวจสอบแล้วพบว่าไม่เป็นไปตามเงื่อนไขเราสามารถสั่งคำสั่งทางเลือกได้โดยใช้รูปแบบคำสั่ง If-then-else

ภาษาธรรมชาติ ถ้าเงื่อนไข P เป็นจริงให้ทำตามคำสั่ง Q1 แต่ถ้าเงื่อนไข P เป็นเท็จให้ทำตามคำสั่ง Q2

ภาษาโปรแกรม excel  =If (P,Q1,Q2)

8789 3

ภาพที่ 3 แผนผังอัลกอริทึม If-then-else
ที่มา วีระ ยุคุณธร ดัดแปลงจาก Skvarcius R. and Robinson W.B., หน้า 12

Psudocode If P then Q1 else Q2

ตัวอย่างที่ 1 การหาค่าสัมบูรณ์ของจำนวนเต็ม

ภาษาธรรมชาติ จากนิยามค่าสัมบูรณ์ | x | จะพบว่าถ้า x เป็นจำนวนจริงที่ไม่เป็นลบแล้ว | x | =  x แต่ถ้า x เป็นจำนวนจริงที่เป็นลบ | x | =  -x

ภาษาโปรแกรม excel  =If ( x<0 , |x| = -x , |x| = x)

8789 4

ภาพที่ 4 ผลการทำงานตามอัลกอริทึมหาค่าสัมบูรณ์ด้วยโปรแกรม excel
ที่มา วีระ ยุคุณธร

แผนผัง

8789 5

ภาพที่ 5 แผนผังอัลกอริทึมการหาค่าสัมบูรณ์
ที่มา วีระ ยุคุณธร

Psudocode If x<0 then |x|=-x else |x|=x

ตัวอย่างที่ 2 การวิเคราะห์ชนิดของค่ารากสมการกำลังสองด้วย discriminant

พิจารณาสมการกำลังสองในรูปของ ax2 + bx + c = 0

                                             ax2 + bx + c = a [ x2 + (b/a)x + (c/a) ]

                                                                =a[ {x – (b/2a) }2 – (b/2a)2+(c/a) ]

                                                                =a[ {x – (b/2a) }2 – (b/2a)2+(c/a) ]

                                                                =a[ {x – (b/2a) }2 – { (b2-4ac) / (2a) } ]

       แยกพิจารณาค่า b2-4ac เรียกว่า discriminant ได้ดังนี้

ภาษาธรรมชาติ

       กรณีที่ 1 ถ้า b2-4ac < 0 จะได้สมการไม่มีรากเป็นจำนวนจริง

       กรณีที่ 2 ถ้า b2-4ac = 0 จะได้สมการมีรากซ้ำ

       กรณีที่ 3 ถ้า b2-4ac > 0 จะได้ว่าสมการมีรากเป็นจำนวนจริงที่แตกต่างกัน

ภาษาโปรแกรม

        excel  ==IF(F3^2-4*E3*G3<0,”สมการไม่มีรากเป็นจำนวนจริง”,IF(F3^2-4*E3*G3=0,”สมการมีรากซ้ำ”,”สมการมีรากเป็นจำนวนจริงที่แตกต่างกัน”))

8789 6

ภาพที่ 6 ผลการทำงานตามอัลกอริทึมวิเคราะห์ค่ารากสมการกำลังสองด้วยโปรแกรม excel

ที่มา วีระ ยุคุณธร

แผนผัง

8789 7 edit

ภาพที่ 7 แผนผังอัลกอริทึมการวิเคราะห์ค่ารากสมการกำลังสอง

ที่มา วีระ ยุคุณธร

Psudocode If b2-4ac < 0 then แสดงข้อความ”สมการไม่มีรากเป็นจำนวนจริง”

else, If b2-4ac = 0 then แสดงข้อความ”สมการมีรากซ้ำ”

else แสดงข้อความ”สมการมีรากเป็นจำนวนจริงที่แตกต่างกัน”

แหล่งที่มา

Skvarcius R., Robinson W.B. (1986). Discrete mathematics with computer science applications. The Benjamin/Cummings Publishing Company.