گراف جهت‌دار غیرمدور
گراف جهت‌دار غیرمدور یا گراف سودار بی‌دور با کوته‌نوشت DAG، در دانش رایانه و ریاضیات، یک گراف جهت‌دار است که هیچ گرافِ دوریای ندارد؛ یعنی هیچ مسیر جهت‌داری که رأس ابتدا و انتهای آن یکی باشد، وجود ندارد. به خاطر ویژگی‌های این نوع گراف می‌توان از آن در مدل کردن سیستم‌های علت و معلولی استفاده کرد.
یک دور مسیر ساده‌ای است که راس شروع و پایانی آن یکی باشد. گراف ساده جهت‌داری را که دارای دور نیست، غیر مدور می‌نامند. یک دور در گراف ساده بدون جهت حداقل شامل سه یال متفاوت است که به جز راس ابتدایی و انتهایی، هیچ راسی در آن تکراری نیست.
خواص گراف جهت‌دار غیرمدور اجازه می‌دهد که ترتیب جزئی کوچکتر مساوی بین رأس‌های گراف به صورت روبرو تعریف شود: برای هر دو رأس دلخواه formula_1 گراف می‌گوییم formula_2 اگر و فقط اگر یک مسیر جهت‌دار از formula_3 به formula_4 وجود داشته باشد.
ممکن است گراف‌های جهت‌دار غیرمدور مختلف منجر به ترتیب جزئی یکسانی بشوند: برای مثال دو گراف
"a" → "b" → "c"
و
ترتیب جزئی یکسانی در مورد ارتباط بین رأس‌ها را اعمال می‌کنند اما گراف جهت‌دار غیرمدور دوم یک یال اضافه‌تر دارد. از بین تمام گراف‌های جهت‌دار غیرمدورِ این چنینی، آن که کمترین تعداد یال را دارد ساده‌سازی ترایا و آن که بیشترین تعداد یال را دارد بستار ترایا نامیده می‌شود.
هر گراف جهت‌دار غیرمدوری یک مرتب‌سازی موضعی (توپولوژیک) دارد. به این صورت که هر رأس قبل از تمام رأس‌هایی می‌آید که به آن‌ها یالی دارد. در حالت کلی این مرتب‌سازی یکتا نیست. مرتب‌سازی موضعیِ هر دو گرافی که یک ترتیب جزئی دارند، یکسان است. DAGها را می‌توان مفهوم گسترده شده‌ای از درخت‌ها در نظر گرفت. درخت‌هایی که در آنها، دسته‌ای از زیردرخت‌ها وجود دارد که می‌توانند در قسمت‌های مختلف درخت سهیم شوند؛ یعنی از هر رأس به بیش از یک زیردرخت می‌توان دسترسی داشت. در درخت‌هایی که تعداد زیادی زیردرختِ یکسان دارند، این ویژگی می‌تواند فضای مورد یاز برای ذخیره کردنِ این ساختار را تا اندازهٔ زیادی کاهش دهد. به بیانی ساده‌تر، DAG می‌تواند با استفاده از الگوریتم زیر، مانند جنگلی از درختان ریشه‌دار عمل کند:
اگر ما گرافی را بدون تغییر یا مقایسهٔ برابری رأس‌ها پیمایش کنیم، این جنگل با DAG اولیه یکسان خواهد بود.
بعضی از الگوریتم‌ها روی DAGها نسبت به گراف‌های معمولی پیاده‌سازی ساده‌تری دارند. برای مثال الگوریتم جستجویی مانند جستجوی اول عمق (DFS) بدونِ عمیق‌کنندهٔ تکراری (Iterative Deepening)، به صورت معمول باید رأس‌هایی را که بررسیده نشانه‌گذاری کند تا از بررسی دوباره‌شان بپرهیزد، و اگر این روند را به درستی انجام ندهد، بررسی رأس‌ها هیچ وقت تمام نمی‌شود. چون همیشه در یک دور بی‌پایان از یال‌ها می‌افتد. اما چنین دوری در DAGها وجود ندارد. روش نشانه‌گذاری رأس‌ها در DAG، بدترین زمانِ اجرا را از نمایی (که به خاطر وجودِ مسیرهای چندگانه است) به خطی می‌کاهد.
یک درخت چندگانه یکی از انواع ویژه و کارای DAG است که بسیاری از ویژگی‌های درخت را دارد. بازدهی و کارایی این نوع درخت زیاد است؛ برای مثال در الگوریتم انتشار باور.
اریک ویستاین حدس زد و اثبات کرد که تعداد DAGهای برچسب‌دار با n رأس، برابر است با ماتریس‌های formula_5×formula_5 با درایه‌های ۰ و ۱ (مثل ماتریس همسایگی) که تنها یک مقدار ویژهٔ حقیقی مثبت دارند.
ریشه رأسی است که هیچ یال ورودی ندارد، و برگ رأسی است که هیچ یال خروجی ندارد. یک DAG متناهی حداقل باید یک ریشه و یک برگ داشته باشد.
عمق هر رأس در گراف جهت‌دار غیرمدور متناهی برابر است با طول طولانی‌ترین مسیر از ریشه تا آن رأس. ارتفاع هر رأس نیز برابر است با طول طولانی‌ترین مسیر بین آن رأس و برگ.
طول یک DAG متناهی برابر است با طول (یا تعداد یال‌های) طولانی‌ترین مسیرِ جهت‌دار، که این مقدار مساوی با بیشینه ارتفاعِ تمام ریشه‌ها و بیشینه عمقِ تمام برگ‌ها می‌باشد.
استفاده از گراف جهت‌دارِ غیرمدور، برخی الگوریتم‌ها را ساده‌تر و چابک‌تر می‌کند. DAG در الگوریتم‌های مسیریابی، شبکه‌های پردازش داده، شبکه‌های بیزی، تبارنامه‌ها، روش‌های فشرده‌سازی داده و بسیاری موارد دیگر کاربرد دارد.
Eric W. Weisstein, Weisstein's Conjecture at MathWorld.