Nếu bạn có thể đổi tên chương trình động, bạn sẽ gọi nó là gì?
Nếu bạn có thể đổi tên chương trình động, bạn sẽ gọi nó là gì?
Câu trả lời:
Cuốn tự truyện của Richard Bellman cho thấy rằng ông đã chọn thuật ngữ lập trình động động của người Hồi giáo là để cố tình đánh lạc hướng.
Những năm 1950 không phải là năm tốt cho nghiên cứu toán học. Chúng tôi đã có một quý ông rất thú vị ở Washington tên Wilson. Anh ta là thư ký của Bộ Quốc phòng, và anh ta thực sự có một nỗi sợ hãi bệnh hoạn và căm ghét từ 'nghiên cứu'. Tôi không sử dụng thuật ngữ này một cách nhẹ nhàng; Tôi đang sử dụng nó một cách chính xác. Khuôn mặt anh ta sẽ ngộp thở, anh ta sẽ đỏ lên và anh ta sẽ trở nên hung bạo nếu mọi người sử dụng thuật ngữ 'nghiên cứu' khi có mặt anh ta. Sau đó, bạn có thể tưởng tượng anh ấy cảm thấy thế nào về thuật ngữ 'toán học'. Tập đoàn RAND được sử dụng bởi Không quân, và Không quân có Wilson là ông chủ của nó. Do đó, tôi cảm thấy mình phải làm gì đó để bảo vệ Wilson và Không quân khỏi thực tế là tôi đang thực sự làm toán trong Tập đoàn RAND.
Tôi có thể chọn tiêu đề nào, tên gì? Ở nơi đầu tiên tôi quan tâm đến việc lập kế hoạch, ra quyết định, suy nghĩ. Nhưng kế hoạch, không phải là một từ tốt vì nhiều lý do. Do đó tôi quyết định sử dụng từ 'lập trình'. Tôi muốn vượt qua ý tưởng rằng đây là động lực, đây là đa tầng, đây là sự thay đổi theo thời gian mà tôi nghĩ, hãy giết hai con chim bằng một hòn đá. Chúng ta hãy lấy một từ có ý nghĩa hoàn toàn chính xác, cụ thể là 'động', theo nghĩa vật lý cổ điển. Nó cũng có một tính chất rất thú vị như một tính từ, và đó là không thể sử dụng từ 'động' theo nghĩa miệt thị. Hãy thử nghĩ về một số kết hợp có thể sẽ mang lại cho nó một ý nghĩa miệt thị. Điều đó là không thể. Vì vậy, tôi nghĩ lập trình động của người Viking 'là một cái tên hay. Đó là điều mà ngay cả một Dân biểu cũng không thể phản đối.
(Như Russell và Norvig đã chỉ ra trong sách giáo khoa AI của họ, tuy nhiên, câu chuyện này phải là sự tô điểm sáng tạo cho sự thật. Lần đầu tiên Bellman sử dụng cụm từ "lập trình động" vào năm 1952 , và Charles Erwin Wilson đã không trở thành Bộ trưởng Quốc phòng cho đến năm 1953. )
Dù sao, động lực ban đầu của Bellman cho thấy kế hoạch nhiều tầng , nhưng ít nhất là cho các mục đích thuật toán, tôi thích một cái gì đó như đệ quy từ dưới lên thanh đạm , chỉ với ít âm tiết hơn.
Có hai khía cạnh quan trọng của DP: (1) xác định các bài toán con (nghĩa là thiết lập một "bảng", có thể là một mảng nhiều chiều được lập chỉ mục bởi các số nguyên, đỉnh, tập con của các đỉnh, v.v.) và (2) giải quyết đệ quy các bài toán con. Tôi đề xuất "đệ quy dạng bảng / được lập bảng" như là một tên đề cập đến cả hai khía cạnh.
Ghi nhớ là một biến thể khá phổ biến.
Để đi với sự phân chia và chinh phục , tôi sẽ nói mối nối và kết hợp.
Tôi thường sử dụng cả hai từ, mối nối và kết hợp trong khi giảng dạy / giải thích DP; nhưng không được sử dụng mối nối và kết hợp rõ ràng. Đôi khi tôi đã sử dụng chồng chéo-chia-và-chinh phục để tương phản hai mô hình.
Sau bài giảng gần đây của tôi về lập trình động trong thiết kế thuật toán, tôi đã yêu cầu sinh viên gợi ý một tên mới cho kỹ thuật này. Trong khi tôi thích thú với "Lập trình cứng rắn", tôi muốn thứ gì đó có thể làm cho kỹ thuật trở nên đáng nhớ hơn. Sau cuộc thảo luận ở đây, tôi có thể đề xuất hai tên, một cho từ trên xuống và một cho từ dưới lên:
Multiway-Divide và Memized-Conquer (còn gọi là Divide ^ M & Conquer ^ M) và
Hợp nhất tất cả các bài toán con (hay còn gọi là Merge_all)
Bài viết này ( paywalled doi ) gọi các vấn đề có thể bị tấn công bằng cách sử dụng DP "có thể phân tách".
Tôi đã thảo luận điều này với một số đồng nghiệp gần đây và sau một cuộc thảo luận sôi nổi, chúng tôi đã đưa ra bộ nhớ đệm cuộc gọi dạng bảng .
Tôi muốn đề xuất tên Lập trình quy nạp - như một loại hình cầu nối từ thời đại chúng ta đến thời kỳ tốt đẹp cũ của Euler, Kepler et al. Hoặc thậm chí có thể lập trình ngược quy nạp . Và vâng, đối với tôi DP liên quan mật thiết đến Cảm ứng, theo nghĩa tốt của khái niệm cũ. Ghi nhớ, lưu trữ, bảng, vv chỉ là các yếu tố của kỹ thuật, không phải là cốt lõi của cách tiếp cận để phá vỡ mọi thứ.
Có lẽ một cái gì đó bao gồm bảng từ và điền , vì đây là những gì xảy ra.
Chế độ xem đệ quy hoặc chân trời đệ quy