Khác biệt giữa bản sửa đổi của “Lập trình ràng buộc”
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 |
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== |
||
{{ |
{{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= |
*{{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= |
*{{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}} |
||
[[ |
[[Thể loại:Lập trình ràng buộc| ]] |
||
[[ |
[[Thể loại:Mẫu hình lập trình]] |
||
[[ |
[[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
Bài viết hay đoạn này có thể chứa nghiên cứu chưa được công bố. (June 2011) |
Mẫu hình lập trình |
---|
|
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
- Combinatorial optimization
- Constraint logic programming
- Concurrent constraint logic programming
- Mathematical optimization
- Heuristic algorithms
- Nurse scheduling problem
- Traveling tournament problem
Tham khảo
Liên kết ngoài
Wikimedia Commons có thêm hình ảnh và phương tiện truyền tải về Lập trình ràng buộc. |
- Association for Constraint Programming
- CP Conference Series
- Guide to Constraint Programming
- The Mozart Programming System tại Archive.today (lưu trữ 2012-12-05), an Oz-based free software (X11-style)
- Cork Constraint Computation Centre tại Archive.today (lưu trữ 2013-01-07)
- Global Constraint Catalog