PPairCrest
製品

ソフトウェアの機能 · 選好の安定マッチング

01

合成した選好表をマッチングモジュールと一緒に置き、実装を組み込む前に返された相手のインデックスを両方の表と照合します。

01

モデル

OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。

02

プロジェクト

フォルダーを選び、編集前に関連ファイルを読むようアシスタントに依頼します。作業の目的と変更範囲を明確にしてください。

03

変更内容

変更内容とコマンド出力を確認します。結果を採用する前にプロジェクトの検証を実行してください。生成コードが自動的にテスト済みになるわけではありません。

選好の安定マッチング

● ● ●PairCrest●
ワークフロー · 選好の安定マッチング ×
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
✳最大20人ずつの二群を完全で厳密な選好順序から対応させます。
✓ 変更内容適用前に確認 ↗
ワークスペースのイメージ
AIコーディングワークスペース

次のアイデアはここから。

Windows版をダウンロード ↗