Dynamic programming in a nutshell - the key that helped me grok the concept

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 พ.ย. 2024

ความคิดเห็น • 35

  • @wornor
    @wornor หลายเดือนก่อน +8

    ขอบคุณที่ทำวิดีโอมาสอนครับ
    คุ้นๆ ว่าเทคนิคตรง 4:39 นี้มันคือ memoization นี่ครับ จะต่างจาก dynamic programming อยู่นิดหน่อย
    ถ้าเป็น dynamic programming มันมักจะเป็น bottom-up จะกลายเป็นว่าเราจะเริ่มจาก base case ก่อน
    ส่วน memoization จะเป็น top-down ครับ

    • @dtinth
      @dtinth  หลายเดือนก่อน +8

      ขอบคุณสำหรับคอมเม้นต์ครับบ~ ในทางทฤษฎีคิดว่าคงมีความต่างกันตามที่ว่าครับ ส่วนในทางปฏิบัติ ผมทำ memoization ก่อนตลอดเลย
      ตอนที่ผมบอกว่า “dynamic programming คือ recursion + cache” นี่ก็คิดอยู่เหมือนกันว่าจะพูดเรื่อง top-down vs bottom-up ด้วยดีไหม แต่ก็เลือกอธิบายแบบ top-down เป็นหลักเพื่อให้เข้าใจง่ายไว้ก่อนครับ
      จากที่ผมอ่านๆ ดู พบว่ามีหลายมุมมองเรื่องนี้ที่ต่างกันไปครับ:
      ・ บ้างก็มองว่า memoization เป็นวิธีแก้ปัญหาแบบ top-down, ส่วน dynamic programming เป็นวิธีแก้ปัญหาแบบ bottom-up เสมอ
      ・ บ้างก็มองว่า dynamic programming ไม่ใช่วิธีแก้ปัญหาซะทีเดียว แต่เป็นรูปแบบของปัญหาที่มี overlapping subproblem ซึ่งเวลาแก้ จะทำแบบ top-down (“memoization”) หรือ bottom-up (“tabulation”) ก็ได้ครับ
      และยังมีประเด็นที่ว่า memoization กับ caching มันมีรายละเอียดปลีกย่อยที่อาจจะต่างกันอยู่ (ซึ่งผมก็ยังไม่สามารถพูดได้ว่าผมเข้าใจมัน) แต่คิดว่าเรียกว่า cache โอกาสที่คนเข้าใจง่ายกว่าเรียกว่า memoize ครับ
      ref. stackoverflow.com/questions/22918242/is-dynamic-programming-backtracking-with-cache

    • @wornor
      @wornor หลายเดือนก่อน

      @@dtinth จริงๆ ตอนเรียนเค้าก็มักจะลำดับตามนี้อยู่แล้วครับ
      Recursive => memoization => dp
      เลยคิดว่า approach น่าจะไม่มีปัญหาครับ

  • @SuperNova537
    @SuperNova537 หลายเดือนก่อน +8

    เรียนมาทั้งเทอมไม่เข้าใจ ดูคลิปนี้ 8 นาที เข้าใจเลย สอนได้เฉียบมากกกก!

  • @empirewhite
    @empirewhite หลายเดือนก่อน

    ขอบคุณที่แชร์ครับ เปิดโลกผมเกี่ยวกับเรื่องrecursionเลย
    ตั้งแต่เรียนมหาลัย ไม่เคยเข้าใจเลย เขาสอนทำrecursionไปทำไม computationก็แย่ มีดีแค่codeสั้น ทำงานเขียนโปรแกรมมา5ปีก็ไม่ได้ใช้เลย ดูอันนี้เสร็จ แล้วต้องหาไปเรียนrecursionใหม่เลย

  • @kirindev
    @kirindev 22 วันที่ผ่านมา

    ขอบคุณครับได้ความรู้มากๆ ผมไปอยู่ไหนมาพึ่งมาเจอช่องนี้ติดตามแล้วครับ 🙏

  • @napatn1865
    @napatn1865 หลายเดือนก่อน

    ความรู้ย่อยง่ายมาก ขอบคุณมากๆครับ

  • @f.jaruwat
    @f.jaruwat หลายเดือนก่อน +2

    เข้าใจง่ายมากเลยครับ

  • @devfriday
    @devfriday หลายเดือนก่อน

    LINQ ใน C# ก็โกงพอๆกันกับท่านี้ของ Ruby เลย แถมเท่าที่เคยลองใช้ Recursive สัก 100 ล้านก็ไม่ตายด้วย แต่ต้องใช้ Async await กับเรื่อง Intptr (pointer) ให้เป็น

  • @mamory2101
    @mamory2101 หลายเดือนก่อน

    อธิบายเข้าใจมากๆ ขอบคุณค่ะ ^^

  • @chacritpoonpipit
    @chacritpoonpipit หลายเดือนก่อน

    เนื้อหาดีมาก ตรงประเด็นไม่พูดน้ำเลย

  • @kzdevgag
    @kzdevgag หลายเดือนก่อน +1

    เปิดกะโหลกมากๆ ขอบคุณครับ

  • @jameworawit8794
    @jameworawit8794 หลายเดือนก่อน

    ของโครตดีอะ ขอบคุณความรู้เน้นๆ

  • @ItzHarukiXyz
    @ItzHarukiXyz หลายเดือนก่อน

    คลิปดีมากครับ

  • @kritsana6170
    @kritsana6170 หลายเดือนก่อน

    เข้าใจง่ายมากครับ ปลอดล็อคเลย ขอบคุณมากๆครับ

  • @kitti.crafts
    @kitti.crafts หลายเดือนก่อน +1

    รู้อะไรไม่สู้ ❤ รูบี้

  • @วุฒิพงศ์วิมลพัชร-อ8ฅ
    @วุฒิพงศ์วิมลพัชร-อ8ฅ หลายเดือนก่อน

    เปิดโลกมาก

  • @wk18k
    @wk18k หลายเดือนก่อน

    ขอบคุณครับผมที่ทำมาให้รับความรู้เพิ่ม

  • @spykj9085
    @spykj9085 หลายเดือนก่อน

    พี่ไทใช่ไหมม ถ้าใช่คือบังเอิญมากที่มาเจอ โค้ดวอร์รูบี้ยังตราตึงใจ😂

    • @dtinth
      @dtinth  หลายเดือนก่อน

      yes, it's me krubbb

  • @amornthepsapkalyod8791
    @amornthepsapkalyod8791 หลายเดือนก่อน

    ขอบคุณครับ

  • @groot1110
    @groot1110 หลายเดือนก่อน

    ขอบคุณครับบบ

  • @nengforgame8145
    @nengforgame8145 หลายเดือนก่อน

    อาจารย์ ไท สอนที่ไหนเหรอครับ

    • @dtinth
      @dtinth  หลายเดือนก่อน +1

      ว่าจะสอนทาง TH-cam นี่แหละ 😂 แต่นานๆ อัพที แล้วแต่จังหวะและอารมณ์ครับบ 😅

  • @LebrancConvas
    @LebrancConvas หลายเดือนก่อน

    Comic Sans Font is cute

    • @LebrancConvas
      @LebrancConvas หลายเดือนก่อน

      เพิ่งรู้เหมือนกันว่า Bitwise not ใน JS/TS มันตัดทศนิยมออกจากการคำนวณเลย

  • @phayuphattrilao1142
    @phayuphattrilao1142 หลายเดือนก่อน

    กราบบบบบบบบบบบบบบบบบ

  • @movie-relax1177
    @movie-relax1177 หลายเดือนก่อน

    ชอบๆ

  • @monyourbae
    @monyourbae หลายเดือนก่อน

  • @offfffz
    @offfffz หลายเดือนก่อน

    Ruby 😂🎉

  • @phuripatkongsakban8580
    @phuripatkongsakban8580 หลายเดือนก่อน

    ภาษา ruby โกงจริงครับ😂 แต่เวลาเราจะยกตัวอย่างอะไรสักอย่างมันเขียนไวดีนะ

  • @Armwattikorn
    @Armwattikorn หลายเดือนก่อน

    ดูไม่รู้เรื่องแต่เพลินมากครับชอบกระบวนการคิด