Ghép sở thích ổn định
Ghép hai nhóm tối đa 20 thành viên theo danh sách sở thích đầy đủ và nghiêm ngặt.
from collections import deque
def stable_pairs(proposers, receivers):
if type(proposers) not in (list, tuple) or type(receivers) not in (list, tuple):
raise ValueError("preference tables must be lists or tuples")
n = len(proposers)
if n > 20 or len(receivers) != n: raise ValueError("equal sizes up to 20")
for rows in (proposers, receivers):
for row in rows:
if type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int for v in row) or set(row) != set(range(n)):
raise ValueError("complete strict preferences")
ranks = [{v:i for i,v in enumerate(row)} for row in receivers]
free, next_choice = deque(range(n)), [0]*n
owner, partner = [None]*n, [None]*n
while free:
p = free.popleft()
r = proposers[p][next_choice[p]]
next_choice[p] += 1
old = owner[r]
if old is None or ranks[r][p] < ranks[r][old]:
owner[r], partner[p] = p, r
if old is not None: partner[old] = None; free.append(old)
else: free.append(p)
return partner- Mô hình
- Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.
- Dự án
- Kiểm tra nhóm rỗng và lựa chọn cạnh tranh, từ chối mục lặp hoặc thiếu và bảo đảm không có cặp ngăn cản.
- Kiểm tra trước khi áp dụng
- So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.
from collections import deque
def stable_pairs(proposers, receivers):
if type(proposers) not in (list, tuple) or type(receivers) not in (list, tuple):
raise ValueError("preference tables must be lists or tuples")
n = len(proposers)
if n > 20 or len(receivers) != n: raise ValueError("equal sizes up to 20")
for rows in (proposers, receivers):
for row in rows:
if type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int for v in row) or set(row) != set(range(n)):
raise ValueError("complete strict preferences")
ranks = [{v:i for i,v in enumerate(row)} for row in receivers]
free, next_choice = deque(range(n)), [0]*n
owner, partner = [None]*n, [None]*n
while free:
p = free.popleft()
r = proposers[p][next_choice[p]]
next_choice[p] += 1
old = owner[r]
if old is None or ranks[r][p] < ranks[r][old]:
owner[r], partner[p] = p, r
if old is not None: partner[old] = None; free.append(old)
else: free.append(p)
return partnerLàm rõ yêu cầu phân cặp trước khi sửa mã
Một tính năng phân cặp cần nhiều hơn danh sách các cặp: cần mô tả rõ đầu vào nào hợp lệ và điều gì khiến kết quả được chấp nhận. PairCrest cung cấp không gian lập trình AI trên Windows để trao đổi về các yêu cầu đó cùng tệp dự án liên quan. Bắt đầu từ các thứ tự ưu tiên mà ứng dụng nhận và các ràng buộc phải tuân thủ, rồi yêu cầu xem xét cách triển khai hiện tại.
Ví dụ ghép cặp ổn định theo ưu tiên là một tác vụ phát triển có thể thực hiện. Bạn có thể rà soát cách kiểm tra các bảng xếp hạng đầy đủ, cách biểu diễn phần chưa ghép trong quá trình xử lý và cách chuyển các cặp cuối cùng đến bên gọi. Nếu yêu cầu có mức ưu tiên ngang nhau, thiếu lựa chọn hoặc nhóm có quy mô khác nhau, hãy xác định điểm không khớp đó trước khi yêu cầu điều chỉnh. Các giả định hẹp hơn của ví dụ cần luôn rõ ràng trong cuộc trao đổi thay vì trở thành chính sách ứng dụng ngầm định.
Có thể chọn mô hình AI không kiểm duyệt qua một điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ, với thông tin xác thực khi cần. Mô hình và máy chủ quy định ngữ cảnh, công cụ và hạn chế. Rà soát các kiểm tra đầu vào và cách xử lý kết quả được đề xuất, rồi kiểm thử bảng ưu tiên nhỏ với kết quả có thể xem xét. Máy chủ mô hình cục bộ riêng chỉ đảm nhiệm suy luận; các công cụ khác vẫn có thể kết nối dịch vụ bên ngoài.
Làm rõ tính năng dựa trên ưu tiên
Một yêu cầu phân cặp hữu ích cần có gì?
Mô tả các nhóm, dạng ưu tiên được phép và tính chất mà kết quả phân cặp cuối cùng phải thỏa mãn. Đưa ví dụ nhỏ mà con người có thể xem xét. Tránh dùng từ rộng như tốt nhất mà không nói ứng dụng cần đánh giá kết quả thế nào.
Tôi có thể thêm ưu tiên ngang nhau mà không đổi giao ước liên quan không?
Đừng mặc định như vậy. Ví dụ yêu cầu thứ tự ưu tiên nghiêm ngặt và đầy đủ. Mức ngang nhau có thể thay đổi cả biểu diễn đầu vào lẫn ý nghĩa của kết quả được chấp nhận. Yêu cầu quyết định rõ các điểm đó trước khi rà soát thuật toán hay thay đổi bên gọi được đề xuất.
Làm sao xem xét đầu ra khi không có tập kiểm thử lớn?
Bắt đầu với bảng ưu tiên nhỏ và đối chiếu các cặp kết quả với tính chất đã nêu. Bao gồm xếp hạng không hợp lệ để kiểm thử việc từ chối. Các trường hợp tập trung này hỗ trợ rà soát, còn bộ kiểm thử riêng của ứng dụng cần bao phủ yêu cầu đầu vào và tích hợp rộng hơn.
PairCrest có quyết định điều gì công bằng cho người dùng không?
Không gian làm việc phần mềm không xác định chính sách phân bổ của bạn. Bạn cung cấp yêu cầu và đánh giá hệ quả. Yêu cầu trợ lý giải thích các giả định triển khai, rồi rà soát xem chúng có khớp với các quy tắc mà ứng dụng dự định sử dụng không.
PairCrest · Cập nhật 2026-10-25