เลือกหัวข้อจากแถบเมนูด้านซ้าย (กรณีหน้าจอเล็กเมนูจะหดกลายเป็นสัญลักษณ์สามขีดอยู่ในแถบเมนูด้านบน) หรือใส่คำค้นหาที่ช่องด้านล่างนี้ เพื่อค้นหาหัวข้อบทความหรือ Tutorial เกี่ยวกับเรื่อง graph_traversal ที่ต้องการ
การค้นหาแบบกว้างหรือ Breadth First Search (BFS) เป็นหนึ่งใน Algorithm พื้นฐานที่นักพัฒนาซอฟต์แวร์และนักเรียนด้านคอมพิวเตอร์ควรทราบดี เพราะมันเป็นพื้นฐานที่มีการประยุกต์ใช้กันอย่างกว้างขวางในหลายๆ สาขา รวมถึงงานวิจัย ในบทความนี้ เราจะมาอธิบายถึงหลักการของ BFS, วิธีการใช้งาน, ตัวอย่างโค้ดด้วยภาษา C++ และให้ข้อวิเคราะห์ถึงข้อดี ข้อเสีย พร้อมกับยกตัวอย่างการใช้งานในโลกจริงเพื่อให้ผู้อ่านได้เห็นภาพมากยิ่งขึ้น...
Read More →ค้นหาแบบลึกหรือที่รู้จักกันในชื่อ Depth First Search (DFS) เป็นหนึ่งในวิธีการค้นหาที่พื้นฐานที่สุดในการทำความเข้าใจโครงสร้างข้อมูลประเภทกราฟ หรือต้นไม้ (tree) ซึ่งถือเป็นหัวใจของการแก้ปัญหามากมายในโลกคอมพิวเตอร์...
Read More →Breadth First Search เป็นรูปแบบหนึ่งของการเดินทางผ่าน (traversal algorithm) ที่เริ่มจากโหนดราก (root node) และสำรวจทุกโหนดในทุกระดับก่อนที่จะขยับไปยังระดับถัดไป มันใช้เทคนิคของ Queue เพื่อจัดการกับการอ่านโหนดที่ร้อนเย็นตามลำดับ Breadth First Search เป็นวิธีที่ดีในการค้นหาเส้นทางหรือเพลินเพลินวัตถุจากต้นไม้หรือกราฟที่เกี่ยวข้องกับการหา Shortest Path หรือการทำ Graph Connectivity...
Read More →การเข้าใจแนวทางในการแก้ไขปัญหาทางคอมพิวเตอร์นี้ล้วนเป็นหัวใจหลักที่จำเป็นสำหรับนักพัฒนาซอฟต์แวร์ทุกคน หนึ่งในแนวทางที่ได้รับความนิยมคือการใช้ Depth First Search (DFS) ซึ่งเป็น Algorithm ที่ใช้ในการค้นหาหรือเดินทางผ่านกราฟและต้นไม้โครงสร้างข้อมูล (tree data structures) ด้วยการทำลึกไปเรื่อยๆ จนถึงจุดสิ้นสุด แล้วจึงย้อนกลับมาหาทางเลือกอื่น...
Read More →การค้นหาข้อมูลเป็นหนึ่งในปัญหาพื้นฐานที่ผู้พัฒนาซอฟต์แวร์ต้องเผชิญอยู่เสมอ ตั้งแต่การหาเส้นทางในแผนที่จราจร, จัดการกับโครงสร้างข้อมูลที่ซับซ้อน, ไปจนถึงการวิเคราะห์ข้อมูลเชิงลึก เราขอเสนอ Depth First Search (DFS) ? อัลกอริธึมการค้นหาที่ซึมลึกไปในแต่ละสาขาข้อมูลก่อนที่จะกลับมาสำรวจสาขาอื่น ให้คุณเดินทางพัฒนาแอพลิเคชันด้วยทักษะที่เฉียบขาดที่ EPT!...
Read More →ในโลกของการคำนวณ, การค้นหาข้อมูลคือหัวใจสำคัญที่ทำให้เราสามารถสกัดเนื้อหาที่จำเป็นออกจากมหาสมุทรของข้อมูลได้ องค์ประกอบหนึ่งที่เป็นกุญแจสำคัญในการค้นหาข้อมูลในโครงสร้างของกราฟคือ Breadth First Search (BFS) ซึ่งเป็น Algorithm ในการเดินผ่าน (Traversal) ทุกโหนดในกราฟหรือต้นไม้โดยใช้วิธีการเลเวลต่อเลเวล ในบทความนี้ เราจะศึกษาถึงความหมาย, การใช้งาน, ตัวอย่างโค้ดเขียนด้วย Perl, usecase ในโลกจริง และวิเคราะห์ความซับซ้อน รวมทั้งข้อดีข้อเสียของ BFS โดยผสานกับคำเชิญชวนให้คุณร่วมศึกษาโลกแห่งการเขียนโปรแกรม...
Read More →ในโลกการเขียนโปรแกรมที่เต็มไปด้วยปัญหาแสนซับซ้อน กลวิธีการค้นหาเป็นกุญแจสำคัญที่จะไขปริศนาต่างๆ ให้กระจ่างชัด และหนึ่งในเทคนิคการค้นหาที่พลิกแพลงได้มากถึงขีดสุดคงหนีไม่พ้น Depth First Search (DFS) ที่นิยมใช้ในวงการไอทีอย่างกว้างขวาง และในบทความนี้ ผมจะพาทุกท่านไปสำรวจร่องรอยและคัดเค้าของเทคนิคการค้นหาอันซับซ้อนนี้ ด้วยภาษาโปรแกรมมิ่ง Lua ที่มีเสน่ห์ไม่แพ้ใคร...
Read More →ในสาขาคอมพิวเตอร์ระบบเครือข่ายหรือโครงสร้างข้อมูลที่มีลักษณะเป็นกราฟ(Graphs) ประเด็นหนึ่งที่น่าสนใจคือเรื่องของการหาจุดที่มีความสำคัญหรือ จุดคั่น(Articulation Points) ซึ่งจุดเหล่านี้คือจุดที่ถ้าหากถูกลบหรือเสียหายไปแล้ว อาจทำให้โครงข่ายหรือกราฟนั้นแยกส่วนออกจากกันและไม่ต่อเนื่อง...
Read More →ในภาษา Rust, ซึ่งเป็นหนึ่งในภาษาโปรแกรมมิ่งที่เน้นความปลอดภัยจากการจัดการหน่วยความจำ, concurrency และความเร็วที่เหนือชั้น DFS สามารถถูกนำมาใช้ในหลายสถานการณ์ เช่น การค้นหาเส้นทางในเกม, การตรวจสอบความสอดคล้องในฐานข้อมูลกราฟ เป็นต้น...
Read More →การเขียนโปรแกรมไม่ใช่เพียงการออกแบบเว็บไซต์หรือสร้างแอปพลิเคชันที่น่าสนใจเท่านั้น แต่ยังรวมถึงการแก้ปัญหาทางคณิตศาสตร์ที่ซับซ้อนด้วยการใช้ algorithm ที่เหมาะสม หนึ่งใน algorithm ที่มีประโยชน์อย่างยิ่งในเรื่องการหา maximum flow ในเครือข่ายคือ Ford-Fulkerson Algorithm. วันนี้ผู้เขียนจะพาทุกท่านไปร่วมสำรวจความลึกลับของ algorithm นี้ในภาษา C พร้อมทั้งวิเคราะห์ข้อดีข้อเสีย และแนะนำ usecase ที่จะเปลี่ยนมุมมองของคุณเกี่ยวกับการเขียนโปรแกรมที่ EPT....
Read More →ในโลกการเขียนโปรแกรมที่บอกเล่าด้วยภาษาของความสามารถ การใช้ Algorithm เป็นเครื่องมือที่ทรงพลังซึ่งช่วยให้เราสามารถแก้ปัญหาที่ซับซ้อนได้อย่างมีประสิทธิภาพ B* Algorithm เป็นหนึ่งในนั้นที่กล่าวถึงเรื่องราวของความคิดเชิงลึกในการค้นหาและวางแผนการทำงานในโลกของข้อมูลขนาดใหญ่และปัญหาที่หลากหลาย...
Read More →ยินดีต้อนรับสู่โลกแห่งการแก้ปัญหาทางคอมพิวเตอร์อย่างสร้างสรรค์ผ่านแว่นตาของการเขียนโปรแกรม! ในวันนี้ เราจะพูดถึงหัวข้อที่ท้าทายแต่น่าตื่นเต้นไม่แพ้กัน? นั่นก็คือ การคำนวณหาค่าปริมาณการรับส่งข้อมูลสูงสุดด้วย Ford-Fulkerson Algorithm ในภาษา Python!...
Read More →การเขียนโค้ดเพื่อสร้างกราฟแบบไม่มีทิศทาง (Undirected Graph) ด้วยตัวเองในภาษา JavaScript สามารถทำได้โดยการใช้โครงสร้างข้อมูลประเภท Linked List เพื่อเก็บรายการ adjacency (Adj) หรือรายการที่เชื่อมโยง. ในบทความนี้ผมจะอธิบายเกี่ยวกับวิธีการสร้างกราฟแบบไม่มีทิศทางโดยใช้ linked list เป็นการเก็บ adjacency list, พร้อมด้วยตัวอย่างโค้ด 3 ตัวอย่างและอธิบายการทำงาน. นอกจากนี้ยังจะยกตัวอย่างการใช้งานกราฟในโลกจริงเพื่อประยุกต์ให้เห็นภาพมากขึ้น....
Read More →การสร้าง directed graph ด้วยตนเองในภาษา Lua สามารถทำได้โดยใช้โครงสร้างข้อมูลพื้นฐานที่เรียกว่า linked list เพื่อแทน adjacency list ที่เก็บข้อมูลจุดยอด (vertices) และเส้นเชื่อม (edges) ในกราฟนั้นๆ ในบทความนี้เราจะพูดถึงการทำงานของโครงสร้างข้อมูลนี้ในการแทนกราฟ, การใช้งานในโลกจริง, รวมถึง code ตัวอย่างในภาษา Lua และท้ายที่สุด คุณจะได้พบว่าการเขียนโค้ดพวกนี้ไม่ได้ยากอย่างที่คิด และการเรียนเขียนโปรแกรมที่ Expert-Programming-Tutor (EPT) นั้นสามารถช่วยคุณในการพัฒนาทักษะได้อย่างไม่มีขีดจำกัด!...
Read More →