نظریه گراف شاخهای از ریاضیات است که دربارهٔ گرافها بحث میکند. این مبحث در واقع شاخهای از توپولوژی است که با جبر و نظریه ماتریسها پیوند مستحکم و تنگاتنگی دارد. نظریهٔ گراف برخلاف شاخههای دیگر ریاضیات نقطهٔ آغاز مشخصی دارد و آن انتشار مقالهای از لئونارد اویلر، ریاضیدان سوئیسی، برای حل مسئله پلهای کونیگسبرگ در سال ۱۷۳۶ است.
پیشرفتهای اخیر در ریاضیات، به ویژه در کاربردهای آن موجب گسترش چشمگیر نظریهٔ گراف شده است به گونهای که هماکنون نظریهٔ گراف ابزار بسیار مناسبی برای تحقیق در زمینههای گوناگون مانند نظریه کدگذاری، تحقیق در عملیات، آمار، شبکههای الکتریکی، علوم رایانه، شیمی، زیستشناسی، علوم اجتماعی و سایر زمینهها گردیده است. برخلاف شاخههای دیگر ریاضیات، سیر نظریهٔ گراف آغاز معینی در زمان و مکان دارد و آن مسئلهٔ هفت پل کونیگسبرگ است که در سال ۱۷۳۶ توسط لئونارد اویلر حل شد. در سال ۱۷۵۲ قضیهٔ اویلر برای گرافهای مسطح ارائه میشود. اما پس از آن به مدت تقریباً یک قرن فعالیت اندکی در این زمینه صورت گرفت.
در سال ۱۸۴۷، گوستاو کیرشهف نوع خاصی از گرافها به نام درخت را مورد بررسی قرار داد. کیرشهف این مفهوم را هنگام تعمیم قوانین اهم برای جریان الکتریکی در کاربردهایی که حاوی شبکههای الکتریکی بودند بهکار گرفت. ده سال بعد، آرتور کیلی همین نوع گراف را برای شمارش ایزومرهای متمایز هیدروکربنهای اشباع شده بهکار برد.
در همین دوران شاهد حضور دو ایدهٔ مهم دیگر در صحنه هستیم. ایدهٔ اول حدس چهار رنگ بود که نخستین بار توسط فرانسیس گوثری در حدود سال ۱۸۵۰ مورد تحقیق قرار گرفت. این مسئله سرانجام در سال ۱۹۷۶، توسط کنث ایپل و ولفگانگ هیکن و با استفاده از یک تحلیل رایانهای پیچیده حل شد.
ایدهٔ مهم دوم، دور همیلتونی بود. این دور به افتخار سر ویلیام روآن همیلتون نامگذاری شده است. او این ایده را در سال ۱۸۵۹ برای حل معمای جالبی حاوی یالهای یک دوازده وجهی منتظم بهکار گرفت. یافتن جوابی برای این معما چندان دشوار نیست ، ولی ریاضیدانان هنوز در پی یافتن شرایطی لازم و کافی هستند که گرافهای بیسوی حاوی مسیر یا دورهای همیلتونی را مشخص کنند.
پس از این کارها تا بعد از سال ۱۹۲۰ فعالیت اندکی در این زمینه صورت گرفت. مسئلهٔ مشخص کردن گرافهای مسطح را کازیمیر کوراتوفسکی، ریاضیدان لهستانی، در سال ۱۹۳۰ حل کرد. نخستین کتاب دربارهٔ نظریهٔ گراف در سال ۱۹۳۶ منتشر شد. این کتاب را ریاضیدان مجار، دنش کونیگ، که خود محقق برجستهای در این زمینه بود، نوشت. از آن پس فعالیتهای بسیاری در این زمینه صورت گرفته و رایانه نیز در چهار دههٔ اخیر به یاری این فعالیتها آمده است.
تعریف
تعریف دقیقتر گراف به این صورت است، که گراف مجموعهای از رأسها است، که توسط خانوادهای از زوجهای مرتب که همان یالها هستند به هم مربوط (وصل) شدهاند. یالها بر دو نوع ساده و جهت دار هستند، که هر کدام در جای خود کاربردهای بسیاری دارد. مثلاً اگر صرفاً اتصال دو نقطه -مانند اتصال تهران و زنجان با کمک آزادراه- مد نظر شما باشد، کافیست آن دو شهر را با دو نقطه نمایش داده، و اتوبان مزبور را با یالی ساده نمایش دهید. اما اگر بین دو شهر جادهای یکطرفه وجود داشته باشد آنگاه لازمست تا شما با قرار دادن یالی جهت دار مسیر حرکت را در آن جاده مشخص کنید. همچنین برای اینکه فاصله بین دو شهر را در گراف نشان دهید، میتوانید از گراف وزن دار استفاده کنید و مسافت بین شهرها را با یک عدد بر روی هر یال نشان دهید.
آغاز نظریهٔ گراف به سدهٔ هجدهم بر میگردد. اولر ریاضیدان بزرگ مفهوم گراف را برای حل مسئله پلهای کونیگسبرگ ابداع کرد اما رشد و پویایی این نظریه عمدتاً مربوط به نیم سدهٔ اخیر و با رشد علم انفورماتیک بودهاست.
مهمترین کاربرد گراف مدلسازی پدیدههای گوناگون و بررسی بر روی آنهاست. با گراف میتوان به راحتی یک نقشه بسیار بزرگ یا شبکهای عظیم را در درون یک ماتریس به نام ماتریس وقوع گراف ذخیره کرد و یا الگوریتمهای مناسب مانند الگوریتم دایجسترا یا الگوریتم کروسکال و... را بر روی آن اعمال نمود.
یکی از قسمتهای پرکاربرد نظریهٔ گراف، گراف مسطح است که به بررسی گرافهایی میپردازد که میتوان آنها را به نحوی روی صفحه کشید که یالها جز در محل راسها یکدیگر را قطع نکنند. این نوع گراف در ساخت جادهها و حل مساله کلاسیک و قدیمی سه خانه و سه چاه آب به کار میرود.
نظریه گراف یکی از پرکاربردترین نظریهها در شاخههای مختلف علوم مهندسی (مانند عمران)، باستانشناسی (کشف محدوده یک تمدن) و... است.
روابط میان راسهای یک گراف را میتوان با کمک ماتریس بیان کرد.
برای نمایش تصویری گرافها معمولاً از نقطه یا دایره برای کشیدن راسها و از کمان یا خط راست برای کشیدن یال بین راسها استفاده میشود.
اندازه گراف
اندازه گراف تعداد یالهای یک گراف است و به صورت|(E(G|, بیان میشود.
درجه راسها
در نظریه گرافها، درجه یک راس به تعداد یالهای متصل به آن راس گفته میشود. به عبارت دیگر، درجه یک راس تعداد همسایگی (مجاورت)های مستقیم یک راس را بیان میکند. از آنجا که هر یال در گراف دو راس را به هم وصل میکند، مجموع درجه راسهای یک گراف با دو برابر تعداد یالهای ان گراف برابر است.
کاربردها
از گرافها برای حل مسایل زیادی در ریاضیات و علوم کامپیوتر استفاده میشود. ساختارهای زیادی را میتوان به کمک گرافها به نمایش در آورد. برای مثال برای نمایش چگونگی رابطه وب سایتها به یکدیگر میتوان از گراف جهت دار استفاده کرد. به این صورت که هر وب سایت را به یک راس در گراف تبدیل میکنیم و در صورتیکه در این وب سایت لینکی به وب سایت دیگری بود، یک یال جهت دار از این راس به راسی که وب سایت دیگر را نمایش میدهد وصل میکنیم.
از گرافها همچنین در شبکهها، طراحی مدارهای الکتریکی، اصلاح هندسی خیابانها برای حل مشکل ترافیک، و.... استفاده میشود. مهمترین کاربرد گراف مدلسازی پدیدههای گوناگون و بررسی بر روی آنهاست. با گراف میتوان به راحتی یک نقشه بسیار بزرگ یا شبکهای عظیم را در درون یک ماتریس به نام ماتریس وقوع گراف ذخیره کرد و یا الگوریتمهای مناسب مانند الگوریتم دایسترا یا الگوریتم کروسکال و... را بر روی آن اعمال نمود. در این جا به بررسی گرافهایی میپردازد که میتوان آنها را به نحوی روی صفحه کشید که یالها جز در محل راسها یکدیگر را قطع نکنند. این نوع گراف در ساخت جادهها و حل مساله کلاسیک و قدیمی سه خانه و سه چاه آب به کار میرود.
کاربرد گراف بازهها از گرافها برای حل مسایل زیادی در ریاضیات و علوم کامپیوتر استفاده میشود. ساختارهای زیادی را میتوان به کمک گرافها به نمایش در آورد.
درخت و ماتریس درخت در رشتههای مختلفی مانند شیمی مهندسی برق و علم محاسبه کاربرد دارد. کیرشهف در سال ۱۸۴۷ میلادی هنگام حل دستگاههای معادلات خطی مربوط به شبکههای الکتریکی درختها را کشف و نظریه درختها را بارور کرد. کیلی در سال ۱۸۵۷ میلادی درختها را در ارتباط با شمارش ایزومرهای مختلف هیدروکربنها کشف کرد وقتی مثلا میگوییم در ایزومر مختلف c4h۱۰ وجود دارد منظورمان این است که دو درخت متفاوت با ۱۴ راس وجود دارند که درجه ۴ راس از این ۱۴ راس جهار و درجه هر یک از ۱۰ راس باقیمانده یک است. اگر هزینه کشیدن مثلا راه آهن بین هر دو شهر ازp شهر مفروض مشخص باشد ارزانترین شبکهای که این p شهر را به هم وصل میکند با مفهوم یک درخت از مرتبه p ارتباط نزدیک دارد. به جای مساله مربوط به راه آهن میتوان وضعیت مربوط به شبکههای برق رسانی و لوله کشی نفت و لوکشی گاز و ایجاد کانالهای آبرسانی را در نظر گرفت. برای تعیین یک شبکه با نازلترین هزینه از قاعدهای به نام الگوریتم صرفه جویی استفاده میشود که کاربردهای فراوان دارد. از گرافها میتوان به عنوان کدهای کمکی نام برد که به DVB Playerها در بالا بردن قابلیتهای آنها کمک میکنند. گرافها دارایی مزایای مختلفی هستند که شفاف تر کردن و واضحتر کردن تصویر و کاهش مصرف CPU به عنوان یکی از اصلیترین مزایای آنها بشمار میرود.