- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi đang cố gắng triển khai chức năng quay lui đệ quy này cho vấn đề thỏa mãn ràng buộc đối với một thuật toán nhất định:
hàm BACKTHACKING-SEARCH(csp) trả về giải pháp/thất bại
trả về ĐỆ THI-BACKTHACK({},csp)
hàm RECURSIVE-BACKTRACKING(gán,csp) trả về kết quả/thất bại
nếu bài tập hoàn thành thì trả lại bài tập
var <- SELECT-UNASSIGNED-VARIABLE(BIẾN[csp],gán,csp)
đối với mỗi giá trị trong ORDER-DOMAIN-VALUES(var,task,csp) do
nếu giá trị phù hợp với phép gán đã cho CONSTRAINT[csp] thì
thêm {var = value} vào bài tập
kết quả <- ĐĂNG KÝ-BACKTHACK(bài tập, csp)
nếu kết quả != thất bại thì trả về kết quả
xóa {var = value} khỏi bài tập
trả lại thất bại
Đầu vào của csp trong BACKTRACKING-SEARCH(csp) là một lớp csp chứa a) danh sách các trạng thái, b) danh sách các màu và c) một từ điển có thứ tự với các trạng thái là khóa và giá trị là danh sách lân cận của các trạng thái không thể có cùng màu.
Vấn đề là tôi gặp khó khăn trong việc hiểu thuật toán này hoạt động chính xác như thế nào. Nếu ai đó có thể cho tôi lời giải thích thích hợp về thuật toán này, tôi sẽ rất biết ơn. Một số câu hỏi cụ thể của tôi là:
nếu bài tập hoàn thành thì trả lại bài tập
Tôi giả định rằng vì bài tập được nhập dưới dạng một từ điển trống {}, nên điều này sẽ trả về giải pháp, là một từ điển chứa các trạng thái và màu sắc của chúng. Tuy nhiên, tôi không hiểu làm thế nào để kiểm tra xem công việc đã hoàn thành chưa? Nó có giống như việc kiểm tra kích thước của từ điển dựa trên số lượng trạng thái không?
var <- SELECT-UNASSIGNED-VARIABLE(BIẾN[csp],gán,csp)
Lớp csp đầu vào chứa danh sách các trạng thái, tôi cho rằng đây có thể chỉ là var bằng việc lấy một giá trị từ danh sách? Tôi đoán điều khiến tôi bối rối là tôi không chắc các tham số (VARIABLES[csp], gán, csp) đang thực hiện gì trong trường hợp đầu vào của tôi.
đối với mỗi giá trị trong ORDER-DOMAIN-VALUES(var,task,csp) do
Một lần nữa, tôi bối rối không biết chính xác đầu vào của (var, task, csp) đang làm gì. Nhưng tôi cho rằng nó đi qua mọi giá trị (hàng xóm) trong từ điển trạng thái?
nếu giá trị phù hợp với phép gán đã cho CONSTRAINT[csp] thì
thêm {var = value} vào bài tập
kết quả <- ĐĂNG KÝ-BACKTHACK(bài tập, csp)
nếu kết quả != thất bại thì trả về kết quả
xóa {var = value} khỏi bài tập
Làm cách nào để kiểm tra chính xác xem giá trị có phù hợp với việc gán ràng buộc nhất định [csp] không? Tôi cho rằng các ràng buộc phải là một phần của lớp csp mà tôi chưa triển khai? Tôi không hiểu câu lệnh if này có tác dụng gì trong việc kiểm tra. Sẽ rất hữu ích nếu ai đó có thể giải thích rõ ràng câu lệnh if này và phần nội dung của câu lệnh if.
câu trả lời hay nhất
Vì vậy, sau khi lấy lại một số tài liệu đại học (Trí tuệ nhân tạo: Cách tiếp cận hiện đại của Peter Norvig), hóa ra vấn đề bạn gặp phải là một ứng dụng đệ quy Quay lạinhư đang tìm kiếm Bài toán tô màu đồ thị Một dạng giải pháp, còn được gọi là tô bóng bản đồ (vì lịch sử của nó là giải quyết vấn đề giảm thiểu màu sắc cần thiết để vẽ bản đồ). Việc thay thế mỗi quốc gia trên bản đồ bằng một nút và đường viền của nó sẽ cung cấp cho bạn một biểu đồ nơi chúng tôi có thể áp dụng tính năng quay lui đệ quy để tìm ra giải pháp.
Quá trình quay lui đệ quy sẽ tìm kiếm các nút biểu đồ giảm dần dưới dạng cây theo chiều sâu, kiểm tra từng nút để xem liệu có sẵn màu hay không. Nếu không, hãy thử màu tiếp theo, nếu có, hãy thử nút liền kề chưa được xem tiếp theo. Nếu không có màu nào thỏa mãn điều kiện cho một nút nhất định thì nút đó sẽ quay lui (backtrack) và chuyển sang nút anh em (hoặc nút anh chị em của nút cha nếu nút đó không có nút anh em).
Vì thế,
Tôi giả sử rằng vì bài tập được nhập dưới dạng một từ điển trống {}, nên điều này sẽ trả về giải pháp, nghĩa là từ điển chứa các trạng thái và màu sắc của chúng ... Nó có giống như kiểm tra kích thước của từ điển so với số lượng không? tiểu bang?
Vâng, vâng. Khi từ điển chứa tất cả các nút của biểu đồ có màu, bạn sẽ có giải pháp.
Lớp csp đầu vào chứa danh sách các trạng thái, tôi cho rằng đây chỉ có thể là var bằng việc loại bỏ một giá trị trong danh sách?
Cú pháp mã giả khó hiểu, nhưng ý tưởng chung là bạn sẽ có cách để tìm ra nút nào trong biểu đồ chưa được tô màu. Một cách đơn giản là trả về một nút từ từ điển mà không cần gán. Vì vậy, nếu tôi hiểu đúng cú pháp,var
Một nút sẽ được lưu trữ.BIẾN[csp]
Đối với tôi, nó giống như một sự thể hiện danh sách các nút trong cấu trúc CSP.
Tôi không chắc các tham số (VARIABLES[csp], bài tập, csp) đang làm gì dựa trên thông tin đầu vào của tôi
Như đã đề cập ở trên, đối số gán là một từ điển chứa các nút được đánh giá cho đến nay (và giải pháp của tương lai) và csp là cấu trúc chứa a, b và c.
Một lần nữa, tôi bối rối về chính xác những gì đầu vào của (var, chuyển nhượng, csp) đang thực hiện. Nhưng tôi cho rằng nó sẽ đi qua từng giá trị (hàng xóm) trong từ điển của trạng thái?
ĐẶT HÀNG-DOMAIN-VALUES dường như là một hàm sẽ trả về một tập hợp màu được sắp xếp trong cấu trúc CSP của bạn. Vòng lặp FOR sẽ lặp qua từng màu để kiểm tra xem chúng có đáp ứng được mức độ đó của vấn đề hay không.
nếu giá trị phù hợp với phép gán đã cho CONSTRAINT[csp] thì
Ở đây những gì bạn đang làm là kiểm tra ràng buộc với giá trị đó để đảm bảo rằng nó đúng. Trong trường hợp này, bạn muốn kiểm tra xem có nút nào liền kề với nút này không có màu đó hay không. Nếu nút liền kề có màu đó, IF sẽ bị bỏ qua và vòng lặp for được lặp lại để thử màu tiếp theo.
Nếu không có nút liền kề nào có màu đó thì nhập vào phần thân IF và sẽ có màu value
nút var
添加到 phân công
trong một từ điển (tôi tin rằng {var = value} là một biểu diễn bộ dữ liệu, tôi đã có thể viết {var,value}, nhưng ồ). Sau đó gọi hàm quay lui đệ quy, đệ quy. Nếu lệnh gọi đệ quy trả về không lỗi thì kết quả của nó sẽ được trả về (có nghĩa là giải pháp đã được tìm thấy).
Nếu nó trả về lỗi (có nghĩa là nó đã thử tất cả các màu và tất cả chúng tình cờ được một nút lân cận khác sử dụng), thì từ分配
(Giải pháp) Mảng và chuyển sang màu tiếp theo. Nếu sử dụng hết tất cả các màu, trả về lỗi.
Về thuật toán - Tìm hiểu vấn đề thỏa mãn ràng buộc: thuật toán tô màu bản đồ, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/52682417/
Tôi đọc câu hỏi này trong một cuốn sách (Câu hỏi phỏng vấn) và muốn thảo luận chi tiết về nó ở đây. Hãy thắp sáng nó lên. Vấn đề như sau: - Quyền riêng tư và ẩn danh Ủy ban Bảo hiểm Tập đoàn Massachusetts đã có một ý tưởng tuyệt vời vào giữa những năm 1990
Gần đây tôi đã có một cuộc phỏng vấn trong đó người phỏng vấn đưa cho tôi một số mã giả và đặt câu hỏi về nó. Thật không may, do thiếu chuẩn bị nên tôi không thể trả lời câu hỏi của anh ấy. Do thời gian có hạn nên tôi không thể hỏi anh ấy cách giải quyết vấn đề này. Nếu ai đó có thể hướng dẫn tôi và giúp tôi hiểu vấn đề để tôi có thể thay đổi
Đây là mã của tôi public int getDist(Node root, int value) { if (root == null && value !=0) return
Xét về mặt hiệu quả, điểm giao nhau tối ưu mà thuật toán Strassen nên dừng đệ quy và áp dụng phép nhân là gì? Tôi biết điều này phụ thuộc rất nhiều vào việc triển khai và phần cứng, nhưng đối với trường hợp chung thì cần có một số loại hướng dẫn hoặc một số kết quả thử nghiệm từ ai đó. Tôi đã tìm kiếm trực tuyến và hỏi một số người xem họ nghĩ gì
Tôi muốn tìm hiểu điều gì đó về thuật toán phân tán nên tôi đang tìm kiếm bất kỳ đề xuất sách nào. Tôi sẽ quan tâm hơn đến một cuốn sách lý thuyết, vì việc thực hiện chỉ là vấn đề sở thích cá nhân (tôi có thể sử dụng erlang (hoặc c#)). Nhưng mặt khác, tôi không muốn thực hiện phân tích toán học nguyên thủy về thuật toán. chỉ một
Tôi tự hỏi có bao nhiêu người trong số các bạn đã triển khai "thuật toán cổ điển" từ khoa học máy tính, chẳng hạn như thuật toán của Dijkstra hoặc các cấu trúc dữ liệu trong thế giới thực như cây tìm kiếm nhị phân, trái ngược với các dự án học thuật? Khi có
Tôi đang giải một số bài toán mẫu từ một cuộc thi lập trình cũ. Trong câu hỏi này, chúng tôi nhận được thông tin về số lượng nhân viên pha chế mà chúng tôi có và công thức nấu ăn mà họ biết. Mỗi loại cocktail mất 1 phút để pha và chúng tôi cần sử dụng tất cả nhân viên pha chế để tính toán xem đơn hàng có thể hoàn thành trong 5 phút hay không. gỡ rối
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
Tôi bắt đầu học Nodejs nhưng tôi bị mắc kẹt ở đâu đó giữa chừng. Tôi đã cài đặt một thư viện mới từ npm là express -jwt và nó hiển thị một số loại lỗi sau khi chạy nó. Mã đính kèm và nhật ký lỗi, vui lòng giúp tôi const jwt = re!
Tôi có chứng chỉ trong đó thuật toán chữ ký cho biết "sha256rsa" nhưng thuật toán dấu vân tay cho biết "sha1". Mã định danh SHA1/SHA2 của chứng chỉ của tôi là gì? Cảm ơn! Câu trả lời hay nhất TL;TR: Chữ ký và dấu vân tay là những thứ hoàn toàn khác nhau. Vì sức mạnh của chứng chỉ
Tôi hiện đang tham gia lớp cấu trúc dữ liệu tại trường đại học của mình và đã thực hiện một số phân tích thuật toán trong các lớp trước, nhưng đây là phần khó nhất mà tôi gặp phải trong các lớp trước. Bây giờ chúng ta sẽ tìm hiểu về phân tích thuật toán trong lớp cấu trúc dữ liệu của tôi
Có một khu vực bao gồm N hình vuông 1x1 và tất cả các phần của khu vực này đều được kết nối với nhau (không có hình vuông nào là không thể tiếp cận được). Dưới đây là một số ví dụ về các khu vực. Tôi muốn chọn một số ô vuông trong khu vực này và không thể chọn hai ô vuông liền kề cùng nhau (chạm theo đường chéo
Tôi có một số danh sách các điểm có hình đa giác mà tôi muốn đưa vào bản đồ Google trên trang của mình. Tôi đã loại bỏ càng nhiều đa giác không cần thiết khỏi dữ liệu thô càng tốt, bây giờ tôi chỉ còn lại khoảng 12 đa giác, nhưng chúng quá chi tiết nên đang gây ra sự cố. Bây giờ văn bản của tôi
Tôi hiện đang triển khai Hình vuông diễu hành để tính toán các đường cong đồng mức và tôi có câu hỏi về việc sử dụng dịch chuyển bit được đề cập ở đây Soạn 4 bit ở các góc của ô để
Tôi đang cố gắng triển khai hàm quay lui đệ quy này cho vấn đề thỏa mãn ràng buộc đối với một thuật toán nhất định: hàm BACKTRACKING-SEARCH(csp) trả về giải pháp/lỗi trả về R
Có thư viện nào chứa hàm nghịch đảo không? Là một phần của dự án, tôi hiện đang nghiên cứu thuật toán tìm hướng. Tôi đang sử dụng tương quan Bartlett. Trong tương quan Bartlett, tôi cần chia tử số đã là 3 phép nhân ma trận (bao gồm cả phép chuyển vị Hermiti)
đóng cửa. Câu hỏi này không tuân thủ các nguyên tắc của Stack Overflow. Hiện tại nó không chấp nhận câu trả lời. Sự cố này dường như không liên quan đến việc lập trình trong phạm vi được xác định trong trung tâm trợ giúp. . Đã đóng cửa 8 năm trước. Cải thiện
Liên kết đến câu hỏi là UVA - 1394: And There Was One . Thuật toán đơn giản là quét toàn bộ mảng và đánh dấu phần tử thứ k trong mỗi lần lặp và dừng ở cuối: việc này mất O(n^2) thời gian. Tôi đã tìm kiếm một thuật toán thay thế và
Hàm trong COM tạo GUID (CoCreateGUID) sử dụng "thuật toán tính duy nhất phân tán", nhưng câu hỏi của tôi là, nó là gì? Có ai có thể giải thích được không? Câu trả lời hay nhất Cách tạo ID với sự đảm bảo về tính duy nhất mà không cần
Tôi đã gặp phải vấn đề này khi đang thực hiện một dự án và tôi sẽ diễn đạt lại nó bên ngoài phạm vi thực tế của câu hỏi (tôi đoán tôi có thể nói về tầm cỡ và hình dạng của pháo hoa, nhưng điều đó sẽ khiến việc hiểu trở nên phức tạp hơn). Tôi đang tìm một thuật toán (Có thể gần đúng) để giải nó. Tôi có n thùng chứa có kích cỡ khác nhau,
Tôi là một lập trình viên xuất sắc, rất giỏi!