En büyük iki parçalı eşleme
İzin verilen kenar kümeleriyle her biri en fazla 32 düğümlü iki grup arasında en çok çift içeren eşlemeyi bul.
def maximum_matching(edges, right_count):
if type(right_count) is not int or not 0 <= right_count <= 32 or type(edges) not in (list, tuple) or len(edges) > 32:
raise ValueError("matching.size")
if any(type(row) not in (set, frozenset) or any(type(v) is not int or not 0 <= v < right_count for v in row) for row in edges):
raise ValueError("matching.edge")
owners = [-1] * right_count
def augment(left, seen):
for right in sorted(edges[left]):
if right in seen:
continue
seen.add(right)
if owners[right] == -1 or augment(owners[right], seen):
owners[right] = left
return True
return False
for left in range(len(edges)):
augment(left, set())
return sorted((left, right) for right, left in enumerate(owners) if left != -1)Modeller
Temel URL ve gerekiyorsa API anahtarıyla OpenAI uyumlu veya Anthropic endpoint yapılandırın. Bağlantıyı test edin. Yerel model sunucusu çalışıyor olmalıdır; uzak araçlar ayrıca veri aktarabilir.
Proje
Yalıtık düğümleri ve artırıcı yolla yeniden atamayı dene, kümeleri değiştirmeden geçersiz indisleri reddet.
Uygulamadan önce inceleyin
Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.
def maximum_matching(edges, right_count):
if type(right_count) is not int or not 0 <= right_count <= 32 or type(edges) not in (list, tuple) or len(edges) > 32:
raise ValueError("matching.size")
if any(type(row) not in (set, frozenset) or any(type(v) is not int or not 0 <= v < right_count for v in row) for row in edges):
raise ValueError("matching.edge")
owners = [-1] * right_count
def augment(left, seen):
for right in sorted(edges[left]):
if right in seen:
continue
seen.add(right)
if owners[right] == -1 or augment(owners[right], seen):
owners[right] = left
return True
return False
for left in range(len(edges)):
augment(left, set())
return sorted((left, right) for right, left in enumerate(owners) if left != -1)Düzenlemeden önce atama hedefini netleştirin
MatchOriel, atama mantığını onu kullanan uygulamanın bağlamında tartışmak için bir Windows yapay zekâ kodlama çalışma alanıdır. Kaynak projeyi açın, bir eşleşmeye neyin izin verdiğini ve sonucun neyi eniyilemesi gerektiğini açıklayın. Bağlı asistandan değişiklik önermeden önce gereksinimlerin girdi yapısında ve kodda nasıl yer aldığını incelemesini isteyin.
En fazla sayıda eşleşme bulma görevi bir örnektir. İzinli çiftleri getirin ve amacın yalnızca mümkün olduğunca çok üyeyi atamak olup olmadığını açıklayın. Modelden, bu hedefe ulaşmak için önceki bir seçimin yeniden atanması gereken bir durumu incelemesini isteyin. Uygulamanız gerektiriyorsa tercih sıralamasını veya diğer iş kurallarını açıkça belirtin; eşleşme sayısı bunları sağlamaz.
Öneriyi inceleyin ve dönen çiftleri geçerli kenarlar ve her üyenin tek kez yer alması açısından test edin. Kendi proje kontrollerinize bağlantısız üyeleri ve reddedilen indisleri dahil edin; çağıran kodun atanmamış girdileri nasıl işlediğini inceleyin. MatchOriel, gerektiğinde kimlik bilgileriyle OpenAI uyumlu veya Anthropic uç nokta bağlantılarını destekler. Kısıtlamasız modeller hizmetiniz sunduğunda seçilebilir; sağlayıcının kuralları ve sunucunun bağlam ve araç yetenekleri yine geçerlidir. Değişikliğin uygunluğunu asistanın kendinden emin oluşuna değil belirtilen hedefe göre değerlendirin.
İzinli çift atamalarını inceleme
En büyük eşleşme tercihleri de gözetir mi?
Otomatik olarak değil. Örnek görev, izinli çiftler arasındaki atama sayısını en üst düzeye çıkarır. Tercih kararlılığı veya ağırlıklı kalite önemliyse bunu ayrı belirtin ve önerilen algoritmanın yalnızca sayıyı değil o hedefi de ele alıp almadığını inceleyin.
Yeniden atama gerektiren bir durum neden eklenmeli?
Önceki seçimlerini değiştirebilen çözümü, çok erken durabilen açgözlü bir geçişten ayırır. Beklenen çift sayılarını ve geçerli alternatifleri sağlayın; önerilen kodu ve çıktısını bu örneklerle değerlendirin.
Testler tek bir kesin çift kümesi mi istemeli?
Yalnızca sözleşme bu özel sonucu gerektiriyorsa. Birden fazla atama aynı en fazla eşleşme hedefine ulaşabilir. Geçerliliği, benzersiz üyeliği ve boyutu kontrol edin; testleri katılaştırmadan önce sıralama veya eşitlik bozma gereksinimlerini belgeleyin.
Atanmamış üyeler çağıran koda nasıl ulaşmalı?
Çağıran kodun bunları eksik çiftlerden mi türeteceğini yoksa açık bir gösterim mi beklediğini tanımlayın. Dönen yapıyla bu sınırı inceleyin; uygulamanın geçerli bir atanmamış üyeyi ayrıştırma hatası saymaması için bağlantısız girdileri test edin.
MatchOriel · Güncellendi 2026-10-25