Làm thế nào có hiệu quả là các thuật toán tối đa khớp? Mỗi lần lặp trừ người cuối cùng phù hợp với hai đỉnh ai trước đây miễn phí từ các bộ V
và U. Vì vậy, tổng số lần lặp lại không thể vượt quá? N / 2? + 1, trong đó
n = | V | + | U | là số đỉnh của đồ thị. Thời gian dành cho mỗi
lần lặp là O (n + m), trong đó m = | E | là số cạnh của đồ thị. (Điều này
giả định rằng các thông tin về tình trạng của mỗi đỉnh-free hoặc khớp và
'bạn đời đỉnh nếu sau này-có thể được lấy ra trong thời gian liên tục, ví dụ, bằng cách lưu trữ nó trong
một mảng.) Do đó, thời gian hiệu quả của thuật toán là trong O (n (n + m)). Hopcroft
và Karp [Hop73] đã cho thấy làm thế nào hiệu quả có thể được cải thiện để O
(√
n (n + m))
bằng cách kết hợp một số lần lặp vào một giai đoạn duy nhất để tối đa hóa số lượng
cạnh thêm vào khớp với một tìm kiếm.
Chúng tôi đã được quan tâm trong phần này có phù hợp với số lượng lớn nhất có thể
của các cặp đỉnh trong một đồ thị hai phía. Một số ứng dụng có thể yêu cầu có tính đến
chất lượng hoặc chi phí phù hợp với các cặp khác nhau. Ví dụ, người lao động có thể
thực hiện công việc có hiệu quả khác nhau, hoặc trẻ em gái có thể có sở thích khác nhau cho
các đối tác tiềm năng vũ đạo của họ. Nó là tự nhiên để mô hình tình huống như vậy bởi hai phía
đồ thị với trọng lượng chỉ định cho các cạnh của họ. Điều này dẫn đến các vấn đề tối đa hóa
tổng các trọng số trên các cạnh nối các cặp kết hợp của đỉnh. Điều này
vấn đề được gọi là phù hợp tối đa trọng lượng. Chúng tôi gặp nó dưới một khác nhau
tên-chuyển nhượng vấn tại mục 3.4. Có một số phức tạp
thuật toán cho vấn đề này, đó là hiệu quả hơn nhiều so với thấu đáo
tìm kiếm (xem, ví dụ, [Pap82], [Gal86], [Ahu93]). Chúng tôi có để lại cho họ bên ngoài của chúng tôi
thảo luận, tuy nhiên, vì họ phức tạp, đặc biệt là cho các đồ thị nói chung.
đang được dịch, vui lòng đợi..