4
State Machine กบปญหาลาดบแตมจากการทอยเตา ศล เลนสองคน ฌาณกบโนต มลกเตาคนละลก แตละคนทอยเตาของตวเองและจดแตมท! ออกแตละคร#งเป%นล&าดบท!ตอเน’!องกนไป ถาในล&าดบของฌาณปรากฏเลข “12” เขาจะ หย2ดทนทและนบจ&านวนคร#งท#งหมดท!ทอย สวนโนตจะหย2ดทอยเม’!อมเลข “11” เก4ดข5#น ในล&าดบ ค2ณผอานค4ดวาจ&านวนคร#งท!ทอยระหวางฌาณกบโนตใครจะมากนอยกวากน ครบ? หร’อเทากน? ป7ญหาขอน#เป%นป7ญหาท!ผเขยนน&าไปต#งกระทเลนกบเพ’!อน ๆ ในเว;บบอร<ดของ pantip.com หองหวากอ เพราะค4ดวามแงม2มท! นาสนใจ และเม’!อผเขยนเฉลยป7ญหาดวยเทคน4คการน&า State Machine มาใชค&านวณคาคาดหมายของจ&านวนคร#งท!แตละคน จะตองทอย พบวาเทคน4คน#ชวยลดทอนความซบซอนของการค&านวณและสรางม2มมองอกม2มหน5!งไดอยางสวยงาม จ5งเป%นท!มา ของบทความตอนน# ผเขยนจะน&าเสนอ State Machine และการใช State Machine ชวยแกป7ญหาโจทย< State Machine ตวอยางยอดน4ยมในการอธ4บายเร’!องน#ค’อตขายส4นคาอตโนมต4 สมมต4วาเราก&าลงพดถ5งตขายชา- กาแฟชน4ดหยอดเหรยญ ผซ’#อสามารถเล’อกไดวาตองการเคร’!องด’!มรอนหร’อเย;น เต4มนมหร’อไม เต4มนม หวานหร’อไมหวาน เม’!อผซ’#อหยอดเหรยญตามราคาส4นคาแลวกดป2Pมเล’อกส4นคา ซ5!งค2ณ อาจจะกดป2Pม ชา/รอน/ไมเต4มนม/หวาน จากน#นก;รอรบถวยกระดาษท!บรรจ2ชารอน เราสามารถ วาดภาพกลไกอยางงายภายในตไดวาประกอบดวย ทอกาแฟ ทอน#&าชา ทอนม ทอน#&าเช’!อม และ ทอน#&าแข;ง โดยทอเหลาน#จะเปTดปTดตามค&าส!งท!ไดรบจากป2Pมกด เชน ถาค2ณกดป2Pมกาแฟ ทอ กาแฟก;จะเปTด, กดป2Pมหวาน ทอน#&าเช’!อมเปTด หร’อกดป2Pมเย;น ทอน#&าแข;งเปTด กลไกดงกลาวแสดง ภาพอยางงายของแบบจ&าลอง (model) !ประกอบดวย ขอมลปZอนเขา (input), ผลลพธ< (output) และกระบวนการ (process) ขอมลท!ปZอนเขาไดแกป2Pมกด จากตวอยางเราอาจจะมเพยง 5 ป2Pม ชา (T), กาแฟ (C), เต4มน#&าแข;ง (I), เต4มนม (M), เต4มน#&าเช’!อม (S) (วาโดยหลกการการ ออกแบบท!ดแลว ชากบกาแฟควรใชป2Pมเดยวกน โดยอาจจะ ก&าหนด “กด” หมายถ5งชา และ “ไมกด” หมายถ5งกาแฟ) สวน กระบวนการจะดวา input ค’ออะไร แลวด&าเน4นการตาม input เชน เปTดทอน#น ปTดทอน# ผลท!ไดจากกระบวนการเราเรยกวา output ซ5!งแบบจ&าลองดงกลาวสามารถเขยนในรปสมการ อธ4บายความสมพนธ<อยางงายได Z = f(T, C, I, M, S) เม’!อ Z ค’อ output และ Z ε {ชานมรอนหวาน, ชานมรอนจ’ด, ชานม เย;นหวาน, ชานมเย;นจ’ด, ชารอนหวาน, ชารอนจ’ด, ชาเย;นหวาน, ชาเย;นจ’ด, กาแฟนมรอน หวาน, กาแฟนมรอนจ’ด, กาแฟนมเย;นหวาน, กาแฟนมเย;นจ’ด, กาแฟด&ารอนหวาน, กาแฟด&า รอนจ’ด, กาแฟด&าเย;นหวาน, กาแฟด&าเย;นจ’ด} ถาก&าหนดให “1” = กดป2Pม และ “0” = ไมกด ป2Pม จากโมเดล Z = f(T, C, I, M, S) จะพบวา f(1, 0, 1, 1, 1) ค’อ ชานมเย;นหวาน เราเรยก วงจร (หร’อกลไก) !สรางจากโมเดลท!มความสมพนธ< “output = f(input)” แบบน#วาวงจร combination นอกจากวงจร combination ยงมวงจรท!เป%นสวนส&าคญอยางย4!งอกสวนหน5!งใน ขายส4นคาอตโนมต4 น!นค’อวงจร sequential ซ5!งวงจรน#แหละครบ สรางจากโมเดลท!เรยกวา “State Machine” สมมต4วาคากาแฟหร’อชารอน 5 บาท ถาเต4มนมตองเพ4!มเง4นอก 5 บาท ใสน#&าเช’!อมเพ4!มเง4นอก 5 บาท ใสน#&าแข;งก;เพ4!มเง4นอก 5 บาท และตขายเคร’!องด’!มต#รบเฉพาะเหรยญ 5 บาทเทาน#น ถาค2ณตองการกาแฟนมเย;นหวาน ค2ณจะตองเตรยมเหรยญ 5 บาท 4 เหรยญใหพรอมกอนท!จะไปย’นหนาต กรอบความสนใจของเราอย!ระบบนบเง4นนะครบ เหรยญท!หยอดลงตจะผานวงจรตรวจ จบเหรยญหาบาท ถามเหรยญหาไหลผาน วงจรจะสงขอความบอกวา “ใชเหรยญหา” (Got 5 Baht = 1) แตถาเหรยญท!ผาน ไมใชเหรยญหา วงจรก;จะสงขอความบอกวา “ไมใชเหรยญหา” (Got 5 Baht = 0) ซ5!งขอความสองขอความน#จะเป%น input ให กบระบบนบเง4น สวน output ของระบบนบเง4นก;ค’อการย4นยอมใหกดป2Pม สมมต4วาค2ณหยอดเง4นแค 10 บาท ตขายเคร’!องด’!มก;จะ ย4นยอมใหค2ณกดป2Pมเพยง 2 ป2Pม ค’อ ป2Pม T หร’อ C (เพ’!อเล’อกชาหร’อกาแฟ) และป2Pมใดอกป2Pมหน5!งในกล2ม I, M, S (ถาอยากกด มากกวาน#ก;ตองจายมากกวาน#) ถาเราจะเขยนสมการความสมพนธ<ของระบบนบเง4นโดยเลยนแบบโมเดลของวงจร combination เราจะได Z = f(Got 5 Baht) และ Z ε {กดได 0 ป2Pม, กดได 1 ป2Pม, กดได 2 ป2Pม, กดได 3 ป2Pม, กดได 4 ป2Pม} คง เห;นไดไมยากวา input เพยงตวเดยวและเป%น input ท!มเพยงสองสถานะ (digital input) ค’อ 1 (ใชเหรยญหา) และ 0 (ไมใช เหรยญหา) เพยงแคน#ไมสามารถใชก&าหนด output ท!มถ5ง 5 สถานะได ในความเป%นจร4ง เม’!อเราหยอดเหรยญหาบาทเหรยญ แรกลงไปแลว ตจะยอมใหเรากดได 1 ป2Pม และเม’!อเราหยอดเหรยญหาบาทเหรยญท!สอง ตจะยอมใหเรากดอก 1 ป2Pม และเม’!อ เราหยอดเหรยญหาบาทอกเป%นเหรยญท!สาม ตก;จะยอมใหเรากดเพ4!มอก 1 ป2Pม สงเกตตรงน#ใหดนะครบ input ของการหยอด

State Machine

Embed Size (px)

DESCRIPTION

อธิบาย state machine เบื้องต้น และการนำ state diagram มาช่วยแก้ปัญหาคำนวณค่า expected ในปัญหาความน่าจะเป็น

Citation preview

Page 1: State Machine

State Machine ก�บป�ญหาล�าด�บแต�มจากการทอยเต า ศล

ผ��เล�นสองคน ฌาณก�บโน�ต ม�ล�กเต�าคนละล�ก แต�ละคนทอยเต�าของต�วเองและจดแต�มท�!ออกแต�ละคร�#งเป%นล&าด�บท�!ต�อเน'!องก�นไป ถ�าในล&าด�บของฌาณปรากฏเลข “12” เขาจะหย2ดท�นท�และน�บจ&านวนคร�#งท�#งหมดท�!ทอย ส�วนโน�ตจะหย2ดทอยเม'!อม�เลข “11” เก4ดข5#นในล&าด�บ ค2ณผ��อ�านค4ดว�าจ&านวนคร�#งท�!ทอยระหว�างฌาณก�บโน�ตใครจะมากน�อยกว�าก�นคร�บ? หร'อเท�าก�น?

ป7ญหาข�อน�#เป%นป7ญหาท�!ผ��เข�ยนน&าไปต�#งกระท��เล�นก�บเพ'!อน ๆ ในเว;บบอร<ดของ pantip.com ห�องหว�ากอ เพราะค4ดว�าม�แง�ม2มท�!น�าสนใจ และเม'!อผ��เข�ยนเฉลยป7ญหาด�วยเทคน4คการน&า State Machine มาใช�ค&านวณค�าคาดหมายของจ&านวนคร�#งท�!แต�ละคนจะต�องทอย พบว�าเทคน4คน�#ช�วยลดทอนความซ�บซ�อนของการค&านวณและสร�างม2มมองอ�กม2มหน5!งได�อย�างสวยงาม จ5งเป%นท�!มาของบทความตอนน�# ผ��เข�ยนจะน&าเสนอ State Machine และการใช� State Machine ช�วยแก�ป7ญหาโจทย<

State Machine

ต�วอย�างยอดน4ยมในการอธ4บายเร'!องน�#ค'อต��ขายส4นค�าอ�ตโนม�ต4 สมมต4ว�าเราก&าล�งพ�ดถ5งต��ขายชา-กาแฟชน4ดหยอดเหร�ยญ ผ��ซ'#อสามารถเล'อกได�ว�าต�องการเคร'!องด'!มร�อนหร'อเย;น เต4มนมหร'อไม�เต4มนม หวานหร'อไม�หวาน เม'!อผ��ซ'#อหยอดเหร�ยญตามราคาส4นค�าแล�วกดป2Pมเล'อกส4นค�า ซ5!งค2ณอาจจะกดป2Pม ชา/ร�อน/ไม�เต4มนม/หวาน จากน�#นก;รอร�บถ�วยกระดาษท�!บรรจ2ชาร�อน เราสามารถวาดภาพกลไกอย�างง�ายภายในต��ได�ว�าประกอบด�วย ท�อกาแฟ ท�อน#&าชา ท�อนม ท�อน#&าเช'!อม และท�อน#&าแข;ง โดยท�อเหล�าน�#จะเปTดปTดตามค&าส�!งท�!ได�ร�บจากป2Pมกด เช�น ถ�าค2ณกดป2Pมกาแฟ ท�อกาแฟก;จะเปTด, กดป2Pมหวาน ท�อน#&าเช'!อมเปTด หร'อกดป2Pมเย;น ท�อน#&าแข;งเปTด กลไกด�งกล�าวแสดงภาพอย�างง�ายของแบบจ&าลอง (model) ท�!ประกอบด�วย ข�อม�ลปZอนเข�า (input), ผลล�พธ< (output) และกระบวนการ (process) ข�อม�ลท�!ปZอนเข�าได�แก�ป2Pมกด จากต�วอย�างเราอาจจะม�เพ�ยง 5 ป2Pม ชา (T), กาแฟ (C), เต4มน#&าแข;ง (I), เต4มนม (M), เต4มน#&าเช'!อม (S) (ว�าโดยหล�กการการออกแบบท�!ด�แล�ว ชาก�บกาแฟควรใช�ป2Pมเด�ยวก�น โดยอาจจะก&าหนด “กด” หมายถ5งชา และ “ไม�กด” หมายถ5งกาแฟ) ส�วนกระบวนการจะด�ว�า input ค'ออะไร แล�วด&าเน4นการตาม input เช�น เปTดท�อน�#น ปTดท�อน�# ผลท�!ได�จากกระบวนการเราเร�ยกว�า output ซ5!งแบบจ&าลองด�งกล�าวสามารถเข�ยนในร�ปสมการอธ4บายความส�มพ�นธ<อย�างง�ายได� Z = f(T, C, I, M, S) เม'!อ Z ค'อ output และ Z ε {ชานมร�อนหวาน, ชานมร�อนจ'ด, ชานม

เย;นหวาน, ชานมเย;นจ'ด, ชาร�อนหวาน, ชาร�อนจ'ด, ชาเย;นหวาน, ชาเย;นจ'ด, กาแฟนมร�อนหวาน, กาแฟนมร�อนจ'ด, กาแฟนมเย;นหวาน, กาแฟนมเย;นจ'ด, กาแฟด&าร�อนหวาน, กาแฟด&าร�อนจ'ด, กาแฟด&าเย;นหวาน, กาแฟด&าเย;นจ'ด} ถ�าก&าหนดให� “1” = กดป2Pม และ “0” = ไม�กดป2Pม จากโมเดล Z = f(T, C, I, M, S) จะพบว�า f(1, 0, 1, 1, 1) ค'อ ชานมเย;นหวาน เราเร�ยกวงจร (หร'อกลไก) ท�!สร�างจากโมเดลท�!ม�ความส�มพ�นธ< “output = f(input)” แบบน�#ว�าวงจร combination นอกจากวงจร combination ย�งม�วงจรท�!เป%นส�วนส&าค�ญอย�างย4!งอ�กส�วนหน5!งในต��ขายส4นค�าอ�ตโนม�ต4 น�!นค'อวงจร sequential ซ5!งวงจรน�#แหละคร�บ สร�างจากโมเดลท�!เร�ยกว�า “State Machine”

สมมต4ว�าค�ากาแฟหร'อชาร�อน 5 บาท ถ�าเต4มนมต�องเพ4!มเง4นอ�ก 5 บาท ใส�น#&าเช'!อมเพ4!มเง4นอ�ก 5 บาท ใส�น#&าแข;งก;เพ4!มเง4นอ�ก 5 บาท และต��ขายเคร'!องด'!มต��น�#ร�บเฉพาะเหร�ยญ 5 บาทเท�าน�#น ถ�าค2ณต�องการกาแฟนมเย;นหวาน ค2ณจะต�องเตร�ยมเหร�ยญ 5 บาท 4 เหร�ยญให�พร�อมก�อนท�!จะไปย'นหน�าต�� กรอบความสนใจของเราอย��ท�!ระบบน�บเง4นนะคร�บ เหร�ยญท�!หยอดลงต��จะผ�านวงจรตรวจจ�บเหร�ยญห�าบาท ถ�าม�เหร�ยญห�าไหลผ�าน วงจรจะส�งข�อความบอกว�า “ใช�เหร�ยญห�า” (Got 5 Baht = 1) แต�ถ�าเหร�ยญท�!ผ�านไม�ใช�เหร�ยญห�า วงจรก;จะส�งข�อความบอกว�า “ไม�ใช�เหร�ยญห�า” (Got 5 Baht = 0) ซ5!งข�อความสองข�อความน�#จะเป%น input ให�ก�บระบบน�บเง4น ส�วน output ของระบบน�บเง4นก;ค'อการย4นยอมให�กดป2Pม สมมต4ว�าค2ณหยอดเง4นแค� 10 บาท ต��ขายเคร'!องด'!มก;จะย4นยอมให�ค2ณกดป2Pมเพ�ยง 2 ป2Pม ค'อ ป2Pม T หร'อ C (เพ'!อเล'อกชาหร'อกาแฟ) และป2Pมใดอ�กป2Pมหน5!งในกล2�ม I, M, S (ถ�าอยากกดมากกว�าน�#ก;ต�องจ�ายมากกว�าน�#) ถ�าเราจะเข�ยนสมการความส�มพ�นธ<ของระบบน�บเง4นโดยเล�ยนแบบโมเดลของวงจร combination เราจะได� Z = f(Got 5 Baht) และ Z ε {กดได� 0 ป2Pม, กดได� 1 ป2Pม, กดได� 2 ป2Pม, กดได� 3 ป2Pม, กดได� 4 ป2Pม} คงเห;นได�ไม�ยากว�า input เพ�ยงต�วเด�ยวและเป%น input ท�!ม�เพ�ยงสองสถานะ (digital input) ค'อ 1 (ใช�เหร�ยญห�า) และ 0 (ไม�ใช�เหร�ยญห�า) เพ�ยงแค�น�#ไม�สามารถใช�ก&าหนด output ท�!ม�ถ5ง 5 สถานะได� ในความเป%นจร4ง เม'!อเราหยอดเหร�ยญห�าบาทเหร�ยญแรกลงไปแล�ว ต��จะยอมให�เรากดได� 1 ป2Pม และเม'!อเราหยอดเหร�ยญห�าบาทเหร�ยญท�!สอง ต��จะยอมให�เรากดอ�ก 1 ป2Pม และเม'!อเราหยอดเหร�ยญห�าบาทอ�กเป%นเหร�ยญท�!สาม ต��ก;จะยอมให�เรากดเพ4!มอ�ก 1 ป2Pม ส�งเกตตรงน�#ให�ด�นะคร�บ input ของการหยอด

Page 2: State Machine

เหร�ยญแต�ละเหร�ยญเหม'อนเด4ม ค'อ “1” แต� output ของการหยอดเหร�ยญแต�ละคร�#งไม�เหม'อนก�น ค'อ “กดได� 1 ป2Pม”, “กดได� 2 ป2Pม” และ “กดได� 3 ป2Pม” ตามล&าด�บ น�!นหมายความว�า output ไม�ได�ข5#นอย��ก�บ input เพ�ยงอย�างเด�ยว แต�ม�นข5#นอย��ก�บสถานะ (state) ของม�นขณะน�#นด�วย อาจเข�ยนความส�มพ�นธ<ร�ปท�!วไปอย�างง�าย “output = f(input, state)” ค&าว�า “สถานะ” ในต�วอย�างน�#หมายถ5งจ&านวนเง4นสะสมท�!หยอดต�� ด�งน�#นสถานะท�#งหมดท�!เป%นไปได�ค'อ {ม�เง4น 0 บาท, ม�เง4น 5 บาท, ม�เง4น 10 บาท, ม�เง4น 15 บาท, ม�เง4น ≥ 20 บาท} โมเดลท�!เข�ยนความส�มพ�นธ<ในร�ป “output = f(input, state)” ค'อ State Machine และวงจร (หร'อกลไก) ท�!สร�างจากโมเดลน�#เร�ยกว�าวงจร sequential จากต�วอย�างระบบน�บเง4นเราสามารถเข�ยน Z = f(Got 5 Baht, state) เช�น f(1, ม�เง4น 15 บาท) ค2ณก;สามารถกดป2Pมได� 3 ป2Pม (เล'อกชาหร'อกาแฟ 1 ป2Pม และเล'อกกด I, M, S ได�อ�ก 2 ป2Pม)

เปร�ยบเท�ยบระหว�างวงจร combination หร'อโมเดล output = f(input) ก�บวงจร sequential หร'อโมเดล output = f(input, state) ได�ด�งแผนภาพ

ว4ธ�ท�!ม�ประส4ทธ4ภาพว4ธ�หน5!งในการบรรยาย State Machine1 ค'อการเข�ยนแผนภาพ State หร'อ State Diagram2 ว�าก�นตามตรง การแก�ป7ญหาโจทย<ล&าด�บแต�มล�กเต�าข�อน�# ผ��อ�านไม�จ&าเป%นต�องร��จ�ก State Machine ก;สามารถเร�ยนร��ท�!จะวาด State diagram ได� แต�ผ��เข�ยนม�ความเช'!อว�าถ�าเราเห;นภาพรวมของ State Machine ในม2มกว�าง ก;น�าจะม�ประโยชน<และช�วยให�เก4ดความกระจ�างในการก&าหนด state มากย4!งข5#น การวาด state diagram ส4!งท�!จ&าเป%นต�องร��ค'อ state ท�#งหมด, input, output และป7จจ�ยท�!ท&าให�เก4ดการเปล�!ยน state ส�ญล�กษณ<ท�!วไปก&าหนดให�วงกลมแทน state แต�ละ state และท4ศทางของล�กศรแสดงการเปล�!ยน state จาก state ปลายล�กศรไปส�� state ห�วล�กศร บนเส�นล�กศรจะเข�ยน input/output ก&าก�บ แผนภาพต�อไปน�#แสดง state diagram ของระบบน�บเง4นท�!ม� input ค'อ {ใช�เหร�ยญห�าบาท (1), ไม�ใช�เหร�ยญห�าบาท (0)}, output ค'อ {กดได� 0 ป2Pม, กดได� 1 ป2Pม, กดได� 2 ป2Pม, กดได� 3 ป2Pม, กดได� 4 ป2Pม} และ state ท�#งหมด ได�แก� {ม�เง4น 0 บาท, ม�เง4น 5 บาท, ม�เง4น 10 บาท, ม�เง4น 15 บาท, ม�เง4น ≥ 20 บาท}

ต�อไปผ��เข�ยนจะท&าให� State Machine ซ�บซ�อนข5#นกว�าเด4มโดยการอ�พเกรดต��น�#ให�สามารถร�บเหร�ยญ 10 บาทเพ4!มข5#นอ�กหน5!งเหร�ยญ ฉะน�#น input จะเพ4!มข5#นจากเด4ม ค'อ 0 = ไม�ใช�เหร�ยญห�าบาท, 1 = ใช�เหร�ยญห�าบาท เป%น 0 = ไม�ใช�เหร�ยญห�าหร'อไม�ใช�เหร�ยญส4บบาท, 1 = ใช�เหร�ยญห�าบาท, 2 = ใช�เหร�ยญส4บบาท

1 State Machine ท�!ม�จ&านวน state จ&าก�ด ม�ช'!อเร�ยกว�า Finite State Machine (FSM) ถ�าหากค2ณผ��อ�านม�โอกาสได�ค�นคว�าต�อในว4ชา Digital Circuit ค2ณผ��อ�านจะพบว�า FSM ม� 2 ชน4ดได�แก� Moore และ Mealy ซ5!งท�#งค��แตกต�างก�นท�!การสร�าง output ส&าหร�บ Moore ค�า output = f(state) ส�วน Mealy ค�า output = f(input, state) ถ�าค2ณผ��อ�านเห;น output = f(state) ก;ไม�ต�องแปลกใจว�า input หายไปไหนนะคร�บ เพราะไม�ว�าอย�างไร state ก;ข5#นอย��ก�บ input น�!นแหละ ส&าหร�บ diagram ท�!ผ��เข�ยนวาดในบทความน�#ย5ดตามแบบ Mealy

2 State Diagram เม'!อพ�ดโดยรวม state diagram เป%น diagram ท�!ใช�บรรยายพฤต4กรรมของระบบ ซ5!งเจอบ�อยในว4ชาสาขา Computer Science และ Digital Electronics บ2คคลแรกท�!บรรยาย FSM ด�วย state diagram ค'อ Taylor Booth (จากหน�งส'อ Sequential Machines and Automata Theory) น�กคณ4ตศาสตร<ผ��ม�ผลงานโดดเด�นในทฤษฎ� automata

state

output= f(input)

input f output= f(input, state)

input f

วงจร combination วงจร sequential

1/กดได� 4 ป2Pม

1/กดได� 3 ป2Pม

1/กดได� 2 ป2Pม

1/กดได� 1 ป2Pม

0/กดได� 3 ป2Pม

0/กดได� 4 ป2Pม0/กดได� 2 ป2Pม0/กดได� 1 ป2Pม

ม�เง4น0 บาท

ม�เง4น5 บาท

ม�เง4น10

บาท

ม�เง4น15

บาท

ม�เง4น ≥ 20 บาท

0/กดได� 0 ป2Pม

Page 3: State Machine

ป�ญหาล�าด�บแต�มจากการทอยเต า

กล�บไปท�!ผ��เล�นเกม ฌาณก�บโน�ต ถ�าด�เพ�ยงผ4วเผ4นเหม'อนก�บโจทย<ถามเราว�าโอกาสเก4ด “12” ก�บโอกาสเก4ด “11” เท�าก�นหร'อไม�? อย�าหลงกลโจทย<แล�วร�บตอบว�าเท�าก�นนะคร�บ แน�นอนว�าโอกาสเก4ด “1” ต�วแรกของฌาณก�บโน�ตเท�าก�น ระยะเวลาท�!รอให�ออกแต�ม 1 (หร'อจ&านวนท�ท�!รอ) ก;ควรท�!จะเท�าก�น สมมต4ว�าท�#งค��ได� 1 ต�วแรกมาครอบครองก�นแล�ว ตอนน�#โน�ตก&าล�งรอ “1” ต�วท�!สอง ซ5!งม�โอกาสเก4ดข5#นเท�าก�บ 1/6 และฌาณก;รอ “2” ม�โอกาสเก4ดข5#นเท�าก�บ 1/6 เท�าก�น ส&าหร�บท�#งค�� โอกาสไม�ออก 1 ก;เท�าก�บโอกาสท�!ไม�ออก 2 ค'อ 5/6 ถ�าในการทอยคร�#งน�# โน�ตไม�ได� “1” เขาจะต�องเร4!มต�นรอ “1” ต�วแรกใหม� ในขณะท�!ฌาน ถ5งแม�ว�าในการทอยคร�#งน�#จะไม�ได� “2” แต�ถ�าฌาณได� “1” เขาก;ย�งสามารถคงสถานะรอ “2” เอาไว�เหม'อนเด4มได� จ2ดน�#เป%นข�อได�เปร�ยบของฌานท�!ท&าให�เราสามารถสร2ปได�ว�า ฌาณจะใช�จ&านวนคร�#งท�!ทอยน�อยกว�าโน�ต

ได�เวลาค&านวณต�วเลขออกมาก�นแล�วคร�บ ระหว�างจ&านวนคร�#งท�!ทอยของฌาณก�บโน�ต ใครจะได�เท�าไร? และมากน�อยกว�าก�นเท�าไร? เร4!มจากเข�ยน state diagram ส&าหร�บกลไกการรอ “11” ของโน�ต input ค'อแต�มท�!ออกจากการทอยเต�า {1, 2, 3, 4, 5, 6}, output ม� 2 สถานะค'อ {เล�นต�อ, จบเกม} และม� 3 states {รอ “1” ต�วท�! 1, รอ “1” ต�วท�! 2, หย2ด}

ถ�าก&าหนดให�ท�! state เร4!มต�น (S0) โน�ตจะต�องทอยเต�า W คร�#งจ5งจะได�ล&าด�บ “11” (S2) และโอกาสท�!ทอยเต�าได� 1 เท�าก�บ p = 1/6 เราสามารถเข�ยนความส�มพ�นธ<

W = (1-p)(W+1) + (p)[(1-p)(W+2) + 2p]

อธ4บายสมการ: ม�ทางออกจาก S0 สองทาง ทางแรกค'อกล�บมาย�ง S0 ท�!เด4ม ม�โอกาส 1-p และในเม'!อม�นย�งอย��ท�! S0 ณ จ2ดน�#จ5งใช�เวลารอเท�าเด4ม (W) จนกว�าจะจบเกม (อย�าล'มว�าค2ณต�องทอยเต�าแล�ว 1 คร�#งจ5งกล�บมาท�!จ2ดน�#ได�นะคร�บ) อ�กทางค'อไปต�อย�ง S1 ม�โอกาส p และท�! S1 ม�โอกาส 1-p จะกล�บไปท�! S0 (ถ�ากล�บไปรอบน�#แปลว�าทอยเต�ามาแล�ว 2 คร�#ง) และม�โอกาส p ท�!จะถ5ง S2 (เราทอยเต�า 2 คร�#ง)

เน'!องจากเป%นสมการต�วแปรเด�ยว สามารถแก�สมการได� W = (1+p)/p2 = 42 ด�งน�#นค�าคาดหมายจ&านวนคร�#งท�!ทอยเต�าของโน�ตเท�าก�บ 42 คร�#ง ท&านองเด�ยวก�น วาด state diagram ของฌานได�ด�งร�ป

1, 2/กดได� 4 ป2Pม

1/กดได� 3 ป2Pม

1/กดได� 2 ป2Pม

1/กดได� 1 ป2Pม

0/กดได� 3 ป2Pม

0/กดได� 4 ป2Pม0/กดได� 2 ป2Pม0/กดได� 1 ป2Pม

ม�เง4น0 บาท

ม�เง4น5 บาท

ม�เง4น10

บาท

ม�เง4น15

บาท

ม�เง4น ≥ 20 บาท

0/กดได� 0 ป2Pม

ไม�ใช� 1/ เล�นต�อ

1/ จบเกม

1/ เล�นต�อไม�ใช� 1/ เล�นต�อ

S0=

รอ “1” ต�วท�! 1

S1 =

รอ “1” ต�วท�! 2

S2

=หย2ด

2/กดได� 3 ป2Pม

2/กดได� 4 ป2Pม2/กดได� 2 ป2Pม

Page 4: State Machine

ก&าหนดให� W0 แทนค�าคาดหมายของจ&านวนคร�#งท�!ทอยเต�าเม'!ออย�� S0 กระท�!งได�ล&าด�บ “12” (หร'อถ5ง S2), W1 แทนค�าคาดหมายจ&านวนคร�#งท�!ทอยเต�าเม'!ออย�� S1 จนถ5ง S2 และ p แทนโอกาสทอยเต�าได�แต�ม 1

W0 = (1-p)(W0+1) + (p)(W1+1)W1 = (p)(W1+1) + (1-2p)(W0+1) + (p)(1)

แก�ระบบสมการหาค�า W0 = 36 ด�งน�#นค�าคาดหมายจ&านวนคร�#งท�!ทอยเต�าของฌาณเท�าก�บ 36 คร�#ง น�อยกว�าโน�ตถ5ง 6 คร�#ง เป%นไงบ�างคร�บ ค2ณผ��อ�านค4ดว�าโจทย<ล�กษณะน�# ใช� state diagram ช�วยให�เราเห;นภาพได�ช�ดเจนย4!งข5#นและสามารถว4เคราะห<ความส�มพ�นธ<ได�ง�ายข5#นบ�างม�#ยคร�บ?

1/ เล�นต�อ

ไม�ใช� 1 และไม�ใช� 2/ เล�นต�อ

2/ จบเกม

1/ เล�นต�อไม�ใช� 1/ เล�นต�อ

S0=

รอ “1”

S1 =

รอ “2”

S2

=หย2ด