Khác biệt giữa bản sửa đổi của “Lập trình ràng buộc”

Bách khoa toàn thư mở Wikipedia
Nội dung được xóa Nội dung được thêm vào
Viết bài: lập trình ràng buộc
Thẻ: Trình soạn thảo mã nguồn 2017
 
AlphamaEditor, Executed time: 00:00:04.6830672 using AWB
Dòng 6: Dòng 6:
Lập trình ràng buộc có thể được mô tả dưới dạng [[lập trình logic ràng buộc]], khi đó nhúng ràng buộc vào trong một [[chương trình logic]]. Biến thể này của lập trình logic do Jaffar và Lassez đã mở rộng một lớp cụ thể các ràng buộc được giới thiệu trong [[Prolog II]] vào năm 1987. Những hiện thực đầu tiên của lập trình logic ràng buộc là [[Prolog III]], [[CLP(R)]], và [[CHIP (ngôn ngữ lập trình)|CHIP]].
Lập trình ràng buộc có thể được mô tả dưới dạng [[lập trình logic ràng buộc]], khi đó nhúng ràng buộc vào trong một [[chương trình logic]]. Biến thể này của lập trình logic do Jaffar và Lassez đã mở rộng một lớp cụ thể các ràng buộc được giới thiệu trong [[Prolog II]] vào năm 1987. Những hiện thực đầu tiên của lập trình logic ràng buộc là [[Prolog III]], [[CLP(R)]], và [[CHIP (ngôn ngữ lập trình)|CHIP]].


Thay vì lập trình logic, ràng buộc có thể được trộn lẫn với [[lập trình hàm]], [[term rewriting system]], và [[lập trình mệnh lệnh]]. Ngôn ngữ lập trình có sự hỗ trợ tích hợp cho ràng buộc bao gồm [[Oz ngôn ngữ lập trình|Oz]] (lập trình hàm) và [[Kaleidoscope ngôn ngữ lập trình|Kaleidoscope]] (lập trình mệnh lệnh). Hầu hết các ràng buộc được hiện thực trong lập trình mệnh lệnh thông qua ''bộ công cụ giải quyết ràng buộc'' (''constraint solving toolkit''), vốn là các thư viện bên ngoài cho các ngôn ngữ mệnh lệnh hiện có.
Thay vì lập trình logic, ràng buộc có thể được trộn lẫn với [[lập trình hàm]], [[term rewriting system]], và [[lập trình mệnh lệnh]]. Ngôn ngữ lập trình có sự hỗ trợ tích hợp cho ràng buộc bao gồm [[Oz ngôn ngữ lập trình|Oz]] (lập trình hàm) và [[Kaleidoscope ngôn ngữ lập trình|Kaleidoscope]] (lập trình mệnh lệnh). Hầu hết các ràng buộc được hiện thực trong lập trình mệnh lệnh thông qua ''bộ công cụ giải quyết ràng buộc'' (''constraint solving toolkit''), vốn là các thư viện bên ngoài cho các ngôn ngữ mệnh lệnh hiện có.


==Lập trình logic ràng buộc==
==Lập trình logic ràng buộc==
Dòng 21: Dòng 21:


==Tham khảo==
==Tham khảo==
{{reflist}}
{{tham khảo}}


==Liên kết ngoài==
==Liên kết ngoài==
Dòng 28: Dòng 28:
*[http://www.a4cp.org/events/cp-conference-series CP Conference Series]
*[http://www.a4cp.org/events/cp-conference-series CP Conference Series]
*[http://kti.ms.mff.cuni.cz/~bartak/constraints/index.html Guide to Constraint Programming]
*[http://kti.ms.mff.cuni.cz/~bartak/constraints/index.html Guide to Constraint Programming]
*{{webarchive |url=https://archive.is/2012.12.05-051244/http://www.mozart-oz.org/ |date=December 5, 2012 |title=The Mozart Programming System}}, an [[Oz programming language|Oz]]-based free software ([[X11]]-style)
*{{webarchive |url=https://archive.is/2012.12.05-051244/http://www.mozart-oz.org/ |date=ngày 5 tháng 12 năm 2012 |title=The Mozart Programming System}}, an [[Oz programming language|Oz]]-based free software ([[X11]]-style)
*{{webarchive |url=https://archive.is/2013.01.07-222548/http://4c.ucc.ie/web/index.jsp |date=January 7, 2013 |title= Cork Constraint Computation Centre}}
*{{webarchive |url=https://archive.is/2013.01.07-222548/http://4c.ucc.ie/web/index.jsp |date=ngày 7 tháng 1 năm 2013 |title= Cork Constraint Computation Centre}}
*[https://sofdem.github.io/gccat/index.html Global Constraint Catalog]
*[https://sofdem.github.io/gccat/index.html Global Constraint Catalog]


Dòng 35: Dòng 35:
{{Authority control}}
{{Authority control}}


[[Category:Lập trình ràng buộc| ]]
[[Thể loại:Lập trình ràng buộc| ]]
[[Category:Mẫu hình lập trình]]
[[Thể loại:Mẫu hình lập trình]]
[[Category:Lập trình khai báo]]
[[Thể loại:Lập trình khai báo]]

Phiên bản lúc 11:07, ngày 1 tháng 1 năm 2019

Trong khoa học máy tính, lập trình ràng buộc (tiếng Anh: constraint programming) là một mẫu hình lập trình trong đó mối quan hệ giữa các biến được mô tả ở dạng các ràng buộc. Ràng buộc khác với thành phần cơ bản phổ biến của ngôn ngữ lập trình mệnh lệnh ở chỗ chúng không nêu rõ từng bước hay trình tự để thực hiện, thay vào đó là các thuộc tính để tìm ra giải pháp. Điều này khiến cho lập trình ràng buộc là một dạng của lập trình khai báo. Có nhiều loại ràng buộc trong lập trình ràng buộc: những thứ được dùng trong vấn đề thỏa mãn ràng buộc (constraint satisfaction problem) như "A hay B đúng", bất đẳng thức tuyến tính (linear inequality) như "x ≤ 5", và các loại khác. Ràng buộc thường được nhúng vào ngôn ngữ lập trình hay được cung cấp thông qua các thư viện phần mềm riêng.

Lập trình ràng buộc có thể được mô tả dưới dạng lập trình logic ràng buộc, khi đó nhúng ràng buộc vào trong một chương trình logic. Biến thể này của lập trình logic do Jaffar và Lassez đã mở rộng một lớp cụ thể các ràng buộc được giới thiệu trong Prolog II vào năm 1987. Những hiện thực đầu tiên của lập trình logic ràng buộc là Prolog III, CLP(R), và CHIP.

Thay vì lập trình logic, ràng buộc có thể được trộn lẫn với lập trình hàm, term rewriting system, và lập trình mệnh lệnh. Ngôn ngữ lập trình có sự hỗ trợ tích hợp cho ràng buộc bao gồm Oz (lập trình hàm) và Kaleidoscope (lập trình mệnh lệnh). Hầu hết các ràng buộc được hiện thực trong lập trình mệnh lệnh thông qua bộ công cụ giải quyết ràng buộc (constraint solving toolkit), vốn là các thư viện bên ngoài cho các ngôn ngữ mệnh lệnh hiện có.

Lập trình logic ràng buộc

Xem thêm

Tham khảo

Liên kết ngoài