จะเกิดอะไรขึ้นเมื่อบนชายหาดมีร้านไอติมมากกว่า 2 ร้าน

จะเกิดอะไรขึ้นเมื่อบนชายหาดมีร้านไอติมมากกว่า 2 ร้าน

ในบทความที่แล้ว เราคุยกันไปว่า สาเหตุที่ร้านสะดวกซื้อ 2 ร้านชอบอยู่ใกล้กัน หรือสาเหตุที่นโยบายของบางพรรค 2 พรรคถึงคล้ายกันขึ้นเรื่อย ๆ นั้นสามารถอธิบายได้ด้วยกฎทางเศรษฐศาสตร์เรียกว่า Hotelling’s Law

ใครยังไม่ได้อ่านผมชวนไปอ่านก่อน แล้วค่อยกลับมาอ่านบทความนี้ต่อ

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

คำถามที่ผมทิ้งท้ายไว้ก็คือ แล้วจะเกิดอะไรขึ้นเมื่อเราไม่ได้มีแค่ 2 ร้านหรือ 2 พรรค แต่มีมากกว่านั้นล่ะ

เริ่มจากกรณีที่ง่ายที่สุดคือร้านไอติม 3 ร้านบนชายหาด เมื่อคำนวณด้วยวิธีเดียวกับตอน 2 ร้าน เราจะพบว่ามันเกิดสถานการณ์ที่เรียกเป็นภาษาทฤษฎีเกมว่า ไม่มี pure strategy Nash equilibrium ซึ่งแปลว่า ไม่มีตำแหน่งตายตัวตำแหน่งไหนเลยที่ไม่มีผู้เล่นคนใดได้ประโยชน์จากการเปลี่ยนกลยุทธ์ของตัวเองเพียงลำพัง

แปลได้เป็นไทยอีกทีก็คือ ไม่ว่าแต่ละร้านจะตั้งอยู่ตรงไหน มันจะต้องมีสักร้านหนึ่งที่สามารถขยับเพื่อเพิ่มจำนวนลูกค้าได้เสมอ ดังนั้นสิ่งที่เกิดขึ้นก็คือ แต่ละร้านจะย้ายที่ไปย้ายที่มา เมื่อร้านนึงขยับนิดนึงเพื่อเพิ่มลูกค้า อีกร้านก็จะขยับตามเพื่อแก้เกม ไม่มีใครยอมอยู่เฉยเพราะอยู่เฉยแล้วได้ลูกค้าน้อยกว่าที่ควร วนไปเรื่อย ๆ แบบนี้อย่างไม่รู้จบ

กรณีนี้ไม่ยังไม่ยาก พอจะแก้สมการเพื่อหาคำตอบได้ด้วยมือ แต่ลองจินตนาการว่าถ้าเราสนใจกรณีที่มี 4 ร้าน 5 ร้าน หรือมากกว่านั้น หรือทำให้สถานการณ์ซับซ้อนขึ้นโดยเปลี่ยนจากโลกหนึ่งมิติอย่างชายหาด ไปเป็นบริเวณในสองมิติอย่างลานหรือสนามโล่ง ๆ แทน คราวนี้การคำนวณเพื่อหา Nash equilibrium ก็จะยากขึ้นมาก

และในสถานการณ์ที่มีตัวแปรหลายตัวพัวพันกันยุบยับแบบนี้ เครื่องมือสำคัญที่นักคณิตศาสตร์จะใช้เพื่อตอบคำถามนั้นเรียกว่า Agent-Based Model หรือแบบจำลองตัวแทน

ไอเดียของ Agent-Based Model คือการสร้างตัวละครจำลองขึ้นมา ใช้คณิตศาสตร์กำหนดรูปแบบการเคลื่อนไหวของมัน ปล่อยให้มันเคลื่อนไหวไปเรื่อย ๆ ตามกฎที่เรากำหนด แล้วดูว่าในตอนสุดท้ายมันให้ผลลัพท์อย่างไร

ในกรณีของเรา เราสร้าง Agent แทนร้านไอติม วางแต่ละร้านลงไปบนพื้นที่ แล้วตั้งกฎว่า ให้ทุกร้านพยายามย้ายตำแหน่งเพื่อขยายพื้นที่ออกไป เช่นในภาพข้างล่างจะเห็นว่าเราวางร้านไอติม 3 ร้าน คือสีฟ้า สีเทา และสีม่วง ลงไปในพื้นที่โล่ง ๆ

ที่มาภาพ: NetLogo

จะเห็นว่าที่เวลาเริ่มต้นนั้นร้านสีเทานั้นมีลูกค้าน้อยที่สุด ดูจากบริเวณสีเทาที่มีพื้นที่นิดเดียวเอง ดังนั้นเมื่อเราปล่อยให้เวลาดำเนินไป เดาไว้ก่อนได้เลยว่าเดี๋ยวร้านสีเทาจะต้องเริ่มขยับมาทางซ้ายเพื่อขยายอาณาเขต

รูปด้านล่างคือสถานการณ์ที่เกิดขึ้นเมื่อเวลาผ่านไป 10 วัน เส้น ๆ ที่เห็นคือเส้นทางการขยับที่ของแต่ละร้าน จะเห็นว่าร้านสีเทาขยับทางซ้ายอย่างที่เราคิดเลย แต่ต้องไม่ลืมว่าร้านอื่นก็ไม่ได้อยู่นิ่ง เพราะทุกร้านเคลื่อนที่ด้วยกฎเดียวกันคือพยายามขยายอาณาบริเวณของตัวเองให้มากที่สุด

ที่มาภาพ: NetLogo

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

และเมื่อผมปล่อยให้ร้านมันขยับหนี ๆ ไล่ ๆ กันไปแบบนี้นาน 100 วัน ผลคือคุณจะเห็นว่าทุกร้านนั้นแทบไม่อยู่นิ่งเลย มันขยับไปขยับมาตลอดเวลา แต่ภาพรวมก็คือพื้นที่ของแต่ละร้านนั้นเริ่มเข้าสู่สมดุล

ที่มาภาพ: NetLogo

ความเจ๋งของ Agent-Based Model คือ เราไม่ได้แค่สามารถติดตามตำแหน่งของแต่ละร้านได้ แต่เรายังสามารถติดตามค่าอื่น ๆ ที่เกี่ยวข้องกับ Agent อย่างเช่นกรณีของเราคืออาณาบริเวณของแต่ละร้านได้ด้วย

ถ้าคุณลองดูกราฟที่แสดงพื้นที่ของแต่ละร้านในแต่ละวันประกอบ ก็จะเห็นเลยว่ามันขึ้นลง ๆ กันหมด นั่นคือมีการขยับเพื่อแย่งชิงลูกค้ากันอยู่ตลอดเวลา

ที่มาภาพ: NetLogo

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

ที่จริงแล้ว Agent-Based Model ไม่ได้ใช้แค่กับร้านไอติมหรือการวางตำแหน่งร้านค้าเท่านั้นนะครับ แต่มันเป็นเครื่องมือที่ถูกใช้ในหลายสาขาวิชาทั้งวิทยาศาสตร์ สังคม เศรษฐศาสตร์ และแม้แต่นโยบายสาธารณะ

อย่างอันที่ผมเล่าประจำก็เรื่องการระบาดของ COVID-19 ที่นักวิจัยใช้ Agent-Based Model จำลองพฤติกรรมคนที่ต่างกันไป เช่น บางคนออกไปทำงาน พบปะคนอื่น หรืออยู่บ้าน
แล้วปล่อยให้แต่ละคนมีโอกาสติดเชื้อตามพฤติกรรมและการปะทะกับคนอื่น จากนั้นดูว่าโรคจะแพร่อย่างไร แล้วถ้าใส่นโยบายอย่างการ lockdown เว้นระยะห่าง หรือการฉีดวัคซีนเข้าไปแล้วจะเกิดอะไรขึ้นบ้าง

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

ที่มาภาพ: trlsoftware

แม้แต่ในวงการการเงิน ซึ่งแต่เดิมนิยมใช้โมเดลทางคณิตศาสตร์พวก Time Series Analysis หรือ Stochastic Differential Equations อย่างเช่น Black-Scholes model เพื่อจำลองราคาของสินทรัพย์ต่าง ๆ ก็เริ่มหันมาให้ความสนใจกับการใช้ Agent-Based Model กันมากขึ้น

คือแทนที่จะพยายามจำลองราคาหุ้นหรือดัชนีโดยตรง เราหันมาจำลองพฤติกรรมของผู้เล่นในตลาดแทน เช่นนักลงทุนรายย่อยที่แห่ซื้อขายตามข่าว กองทุนที่ใช้กลยุทธ์อัตโนมัติ หรือแม้แต่กลุ่มคนที่ panic ขายเวลาตลาดตก

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

สรุปคือ Agent-Based Model เป็นเครื่องมือทางคณิตศาสตร์ที่ทรงพลัง และถูกเอาไปประยุกต์ใช้กันอย่างกว้างขวางมาก และสำหรับใครที่อยากใช้เรียนรู้วิธีใช้คณิตศาสตร์ เพื่อมาเข้าใจระบบที่แสนจะซับซ้อนแบบในบทความนี้

ผมขอแนะนำคอร์ส Simulation of Dynamical Systems ที่จะพาทุกคนไปทำความรู้จักเครื่องมือทางคณิตศาสตร์ สำหรับทำความเข้าใจพฤติกรรมของระบบต่าง ๆ ที่มีความซับซ้อน ทั้งภาคทฤษฎี และได้ทดลองเขียนโค้ดจริงในภาคปฏิบัติ

แน่นอนว่าเนื้อหาในคอร์สมีสอนวิธีทำ Agent-Based Modeling ด้วย รวมไปถึงแบบจำลองอื่น ๆ ตั้งแต่ Numerical Methods for ODEs, PDEs, Monte Carlo Simulation และการประยุกต์แบบจำลองต่าง ๆ เข้าด้วยกัน

ใครที่ยังไม่ชัวร์ สามารถดูตัวอย่างการสอนได้ทางนี้เลยฮะ
https://unfoldthedice.onlinecoursehost.com/courses/simulation-dynamical-systems


เอกสารอ้างอิง
https://www.netlogoweb.org/
https://trlsoftware.com/software/junctions-signal-design/transyt/
https://www.publichealth.columbia.edu/research/population-health-methods/agent-based-modeling
https://www.nature.com/articles/s41598-023-35536-3
https://academic.oup.com/edited-volume/41262/chapter/350852096