مجموعه مستقل
مجموعه مستقل ، برای یک گراف مجموعه‌ای از گره‌ها‌ست که هیچ یالی میان هیچ جفتی از این گره‌ها نباشد.
مجموعهٔ مستقل "بیشین"، مجموعه‌ای مستقل است که با افزودن گره‌ای دیگر به این مجموعه دیگر مستقل نباشد. به سخنی دیگر، با افزودن گره‌ای دیگر، دو گره از این مجموعه همسایه خواهند بود.
برای گراف formula_1، مجموعهٔ مستقل "بیشینه" بیش‌ترین گره‌های ناهمسایهٔ این گراف را دارد و اندازهٔ این مجموعه با formula_2 نشان داده می‌شود. هر مجموعهٔ ناوابستهٔ بیشینه‌ای مجموعه‌ای وابستهٔ بیشین نیز هست، ولی مجموعه‌ای ناوابستهٔ بیشین بایستانه (به لزوم) بیشینه نیست. یافتن مجموعهٔ ناوابستهٔ بیشینه پرسمانی ان‌پی سخت است. از این روی نمی‌توان در زمانی کوتاه چنین مجموعه‌ای را یافت.
مجموعه‌ای مستقل است اگر و تنها اگر گروهکی باشد برای مکمل گراف. این گزاره بدین معناست که برای گراف‌هایی بزرگ که گروهک‌هایی بزرگ نداشته باشند دارای مجموعه‌های ناوابستهٔ بزرگی خواهند بود. نظریه رمزی چنین شیوه‌ای را بررسی کرده است.
مجموعه‌ای مستقل است اگر و تنها اگر اُسپُران این مجموعه یک پوشش گره باشد. از همین روی اندازهٔ بزرگترین مجموعهٔ مستقل و اندازهٔ کوچک‌ترین پوشش گره‌ای برابرند با شمار گره‌های گراف باشد.
مسئلهٔ یافتن یک مجموعهٔ مستقل بیشین را می‌توان در زمان چندجمله‌ای به کمک یک الگوریتم حریصانه حل کرد. همهٔ مجموعه‌های مستقل بیشین را می‌توان در زمان (O(3 یافت.
مجموعهٔ مستقل در گراف و علم کامپیوتر کاربردهای بسیاری دارد و حتی جزء دسته مسئله‌های NP-complete محسوب می‌شود. در حالت کلی و برای یک گراف دلخواه تا به حال الگوریتمی چند جمله‌ای برای یافتن مجموعه مستقل پیدا نشده‌است. این مسائل NP-complete قابل تبدیل به یک‌دیگر هستند. برای اولین بار این تبدیل‌ها توسط کوک انجام شد.
برای حالت خاصی از گراف‌ها مجموعهٔ مستقل در زمان چند جمله‌ای قابل یافتن است. این دسته از گراف‌ها، گراف‌های دوبخشی هستند؛ به کمک الگوریتم تطابق می‌توانیم مجموعهٔ مورد نظر را پیدا کنیم.
G گرافی دوبخشی شامل دو بخش S۱ و S۲ است؛ "لم": اندازهٔ مجموعهٔ مستقل بیشینه در G برابر n-m است.
برهان: برهان خلف؛ اگر مجموعهٔ ناوابستهٔ با اندازه‌ای بزرگتر از n-m وجود داشته باشد، دست‌کم دو گره که در تطابق بیشینه مجاور بودند، انتخاب شده‌اند. در نتیجه در این مجموعه یال وجود دارد. پس این مجموعه مستقل نیست.
اما برای پیدا کردن آن ابتدا تطابق را در گراف پیدا می‌کنیم. شماری گره در تطابق آغشته می‌شوند. آن‌ها را formula_3 و formula_4 در نظر بگیرید که به ترتیب گره‌ها آغشته‌شده در بخش ۱ و ۲ هستند. مجموعهٔ formula_5 و formula_6 هیچ یالی به یک‌دیگر ندارند. مجموعهٔ formula_7 و formula_8 را به مجموعهٔ مستقل اضافه می‌کنیم. حالا از گره‌های موجود در formula_7 شروع می‌کنیم و تمام گره‌های را پیدا می‌کنیم که در بخش ۲ هستند و به وسیلهٔ مسیر M_افزایشی نتوانستیم به آنها برسیم. این مجموعه را به مجموعه مستقل خود اضافه می‌کنیم. حال شماری از یال‌های تطابق هستند که هیچ‌کدام از گره‌های آن یال در مجموعه مستقل نیامده‌اند. از این یال‌ها، آن‌هایی که در بخش ۱ هستند را انتخاب می‌کنیم. به این گونه توانسته‌ایم مجموعه‌ای بسازیم که هیچ دو گرهی از آن‌ها به هم یال ندارند (بدیهی است چرا که اگر یالی باشد آنگاه تطابق بیشینه نبوده) و از هر یال تطابق یک طرفش آمده‌است و بقیهٔ گره‌ها هم که از ابتدا در مجموعه بودند پس نمی‌توان مجموعه را بزرگتر کرد.
در کد زیر + نشان دهنده بخش ۱ است و - نشان دهنده بخش ۲.
using namespace std; const int H=1010; vector a[H]; int n,m,e,counter=0,match_up[H],match_down[H]; bool mark[H];
int dfs(int x){
void read(){ void matching(){
void print(){ int main(){
مجموعهٔ مستقل یالی، مجموعه‌ای از یال‌ها است که گره مشترک ندارند. این مجموعه معمولاَ تطابق نامیده می‌شود.