Monoids คืออะไร อธิบายแบบเข้าใจง่าย (มั้ยนะ)
เราลองมาอธิบาย Monoids แบบ Mathematics กัน หลายๆคนคงเกลียด Maths มากแน่ๆเลย
อธิบายโดยใช้ Maths พื้นฐานมากๆก่อน นั่นคือ Set Theory
งั้นรู้จักกับ Algebraic Structure ก่อนนะ
นิยามของ Algebraic Structure คือ ให้ S คือ Set ที่ไม่ว่าง แล้วมี operation (*) อะไรก็ไม่รู้ กระทำกับสมาชิกใน Set ของ S นะ โดยที่การกระทำของ (a*b) ก็ยังอยู่ใน S สำหรับทุกๆ a และ b ที่อยู่ใน S.
งงไหมนะ?
ยกตัวอย่างแล้วกันเนอะ
ให้ S เป็น Set ของจำนวนเต็มบวก {1,2,3,4,5,…} แล้วมี operation (+) กระทำกับ S โดยที่เราหยิบสมาชิกของ S มาสองตัวนะ เช่น 1 และ 2 แล้วจะได้ (1+2) = 3 ก็ยังอยู่ใน S
และสิ่งนี้ถูกเรียกว่า Closure
แต่สิ่งนี้จะไม่เป็น Algebraic Structure นะ ถ้า เอา operation (-) มากระทำกับ S ที่เป็น Set ของจำนวนเต็มบวก เช่น หยิบ 1 กับ 2 ซึ่งเป็นสมาชิกของ S มาแล้วเอา (1–2) = -1 ซึ่งไม่ได้อยู่ใน S นะ
มองด้วยมุมมองของวงกลมและลูกศรกัน จะได้ภาพตามนี้
มาดูกันต่อ เมื่อสิ่งนี้มีคุณสมบัติการเปลี่ยนกลุ่ม (Associativity)
แล้วคุณสมบัติการเปลี่ยนกลุ่มคืออะไรนะ?
มันคือ a*(b*c) = (a*b)*c โดยทุกๆ a,b,c อยู่ใน Set ของ S
เรามายกตัวอย่างกันดีกว่า
ให้ S เป็น Set ของจำนวนเต็มบวก {1,2,3,4,5,…} แล้วมี operation (+) กระทำกับ S เราหยิบ 1, 2 และ 3 มาแล้วจะได้ 1 + (2 + 3) = (1 + 2) + 3 เนอะ
และถ้ามี Associativity กับ Closure พร้อมกันสิ่งนี้จะถูกเรียกว่า Semigroups
เรามาเพิ่มคุณสมบัติใหม่ลงไปอีกอันหนึ่งกันดีกว่า นั่นคือ Identity Element
แล้วมันคืออะไรนะ?
มันก็คือ e ที่อยู่ใน S นะ โดยที่ a*e = e*a = a โดยทุกๆ a ที่อยู่ใน Set ของ S
ยกตัวอย่างง่ายให้ฟังกันดีกว่าเนอะ
ให้ S เป็น Set ของจำนวนเต็มบวก {1,2,3,4,5,…} แล้วมี operation (x) กระทำกับ S
ลองหยิบมาตัวนึงแล้วกัน ลองหยิบ 1 มา ซึ่ง 1 อยู่ใน S เนอะ แล้วหยิบตัวอื่นอีกตัว เราลองหยิบ 2 มา แล้วจะได้ 1 x 2 = 2 x 1 = 2
อ่ะ มีคุณสมบัติของ Identity Element ล่ะ
แล้วถ้ามี Associativity, Closure และ Identity Element พร้อมกัน สิ่งนี้แหละจะถูกเรียกว่า Monoids
และถ้ามันเป็น Monoids แล้วแปลว่ามันจะเป็น Semigroups และ Algebraic Structure เสมอด้วยล่ะ
สุดท้ายนี้
แล้วเราจะรู้จักสิ่งนี้ไปทำไมกันนะ???