الگوریتم لمکه-هاوسون
الگوریتم

ورودی الگوریتم یک بازی دو نفره G است. بازی G به صورت دو ماتریس n × m با نام A و B داده می‌شود که هر کدام از آنها شامل نتایج نهایی برای یکی از بازیکنان شماره ۱ و ۲ است که هر کدام به ترتیب، m و n استراتژی خالص دارند. در ادامه فرض می‌کنیم که نتایج مثبت هستند (هر بازی با تغییر مقیاس می‌تواند به بازی برابری از نظر استراتژی با نتایج مثبت تبدیل شود).
بازی G دو چند وجهی متناظر دارد (که بهترین پاسخ بین چند وجهی‌ها نامیده می‌شوند)، به اسم‌های P۱ و P۲ که هر کدام به ترتیب m و n بعد دارند. در ادامه به تعریف این دو ماتریس می‌پردازیم.
ماتریس P۱ در Rm است. فرض کنید {x۱,... ,xm} مختصات را نشان می‌دهد. P۱ به وسیله m نامساوی xi ≥ ۰ برای همه {i ∈ {۱، ... , m و n نامساوی B۱،jx۱+... +Bm,jxm ≤ ۱ برای همه {j ∈ {۱، ... , n تعریف می‌شود.
ماتریس P۲ در Rn است. فرض کنید {xm+۱, ... , xm+n} مختصات را نشان می‌دهد. P۲ به وسیله n نامساوی xm+i ≥ ۰ برای همه {i ∈ {۱، ... , n و m نامساوی Ai،۱xm+۱+... +Ai,nxm+n ≤ ۱ برای همه {i ∈ {۱، ... , m تعریف می‌شود.
ماتریس P۱ نشان‌دهنده مجموعه توزیع‌های احتمالاتی نُرمالایز نشده برای m استراتژی بازیکن اول است، هنگامی که نتیجه مورد انتظار بازیکن دوم حداکثر یک باشد. برای برقراری m شرط اول باید احتمالات نامنفی باشند و هر یک از n شرط بعد هم باعث می‌شود که n استراتژی خالص بازیکن دوم نتایجی با مقدار حداکثر یک داشته باشند. اگر نقش دو بازیکن را با هم عوض کنیم، ماتریس P۲ نیز به همین ترتیب تعریف می‌شود.
هر رأس v از ماتریس P۱، با مجموعه‌ای از برچسب‌ها (مقادیر) از مجموعه {۱،... ,m + n}، در ارتباط است. برای هر {i ∈ {۱، ... , m رأس v برچسب «i» را می‌پذیرد در صورتی که در رأس v شرط «xi = ۰» برقرار باشد. برای هر j ∈ {۱، …, n}، v برچسب «m + j» را می‌پذیرد در صورتی که شرط «B۱،jx۱ + ...  + Bm,jxm = ۱» برقرار باشد. فرض کنید که P۱ غیر تبهگن (nondegenerate) باشد، هر رأس بر m بعد از ماتریس P۱ واقع است و m برچسب دارد. دقت کنید که ریشه که خود یک رأس از P۱ می‌باشد، برچسب‌های {۱، …, m} را دارد.
هر رأس w از از ماتریس P۲ با مجموعه‌ای از برچسب‌ها از مجموعه {۱، …, m + n}، در ارتباط است. برای هر {j ∈ {۱، …, n رأس w برچسب «m + j» را می‌پذیرد در صورتی که در رأس w شرط « xm+j = ۰» برقرار باشد. برای هر i ∈ {۱، …, m}، w برچسب «i» را می‌پذیرد در صورتی که شرط «Ai،۱xm+۱ + ...  + Ai,nxm+n = ۱» برقرار باشد. فرض کنید که P۲ غیر تبهگن باشد، هر رأس بر m بعد از ماتریس P۲ واقع است و m برچسب دارد دقت کنید که ریشه که خود یک رأس از P۲ می‌باشد، برچسب‌های {m + ۱، …, m + n} را دارد.
عمل محوری شامل گرفتن زوج مرتبی مانند (v, w)، و عوض کردن v با یکی از همسایه‌هایش در P۱ است یا عوض کردن w با یکی از همسایه‌هایش در P۲. در عمل محوری رأسی که عوض می‌شود را رها شده می‌نامیم. مثلاً اگر طی یک عمل محوری یک رأس از P۱ جایگزین v شود، به اصطلاح می‌گوییم «v رها می‌شود». به ازای هر مقدار از v، می‌شود با انتقال به یک رأس همسایه که شامل ابرصفحه مرتبط با آن برچسب نباشد، آن برچسب را رها کرد.
الگوریتم از زوج (v, w) شروع می‌شود که کاملاً برچسب‌گذاری (مقدار دهی) شده است که این زوج شامل زوج ریشه‌ها می‌باشد. برچسب دلخواه g را به دلخواه با انجام یک عمل محوری رها می‌کنیم. در نتیجه زوج مرتب ما به زوج تقریباً برچسب‌گذاری شدهٔ (’v’, w) تبدیل می‌شود (زوجی که تنها یک عنصر برچسب‌گذاری نشده دارد).
هر زوج تقریباً برچسب‌گذاری شده (زوج مرتبی که تنها یک عنصر برچسب‌گذاری نشده دارد) دو عمل محوری می‌پذیرد که این عمل متناظر با رها کردن یک عنصر یا ایجاد یک کپی از برچسب‌های تکراری آن زوج می‌باشد. هر یک از این اعمال سرانجام به یک زوج کاملاً یا تقریباً برچسب‌گذاری شده ختم می‌گردد. در نهایت الگوریتم زوج مرتب کاملاً برچسب‌گذاری شدهٔ (*v*, w) را بدست می‌آورد که مخالف ریشه است. زوج مرتب (*v*, w) با یک زوج مرتب از توزیع‌های احتمالاتی نُرمالایز نشده متناظر است که در آن هر استراتژیِ بازیکن شماره یک مانند «i»، یا به بازیکن شماره یک می‌پردازد یا باید کمتر از یک واحد بپردازد و بازی با احتمال ۰ توسط آن بازیکن (بازیکن شماره یک) انجام می‌شود (برای بازیکن شماره دو نیز به همین ترتیب). با نُرمالایز کردن این مقادیر به توزیع‌های احتمال، تعادل نش بدست می‌آید (که در آن مقدار پرداختی به بازیکنان برابر وارون عوامل نرمال سازی می‌باشد).