در نظریه گراف، **عرض درختی** یک گراف بدون جهت، عددی‌ است که مربوط به آن گراف است. این عدد می‌تواند به طرق مختلفی تعریف شود: اندازهٔ بزرگ‌ترین راس در تجریهٔ درختی آن گراف، اندازهٔ بزرگ‌ترین خوشه در تکمیل وتری و ... .مفهوم عرض درختی یک گراف، در ابتدا توسط Umberto Bertelé و Francesco Brioschi در سال ۱۹۷۲ معرفی شد. بعدها به‌صورت جدی توسط Neil Robertson و Paul Seymour در سال ۱۹۸۴ مجدداً معرفی گردید. برای تعریف عرض درختی یک گراف، ابتدا باید تجریهٔ درختی گراف را تعریف کنیم.

تجزیه‌ی درختی
-------------

تجزیهٔ درختی گراف {\displaystyle G=(V,E)}، درختی‌ است مانند T با رئوس {\displaystyle X\_{1},X\_{2},...X\_{n}} (به این رئوس کیف یا bag می‌گویند) که در آن هر X\_{i} یک زیرمجموعه‌ای از V است که شرایط زیر را ارضا کند:

1. اجتماع تمامی X\_{i}ها، مجموعهٔ V باشد.
2. تمامی رئوس (کیف‌های) درخت که شامل راس v\in V هستند، تشکیل یک زیردرخت هم‌بند بدهند.
3. برای هر یال مانند {\displaystyle (u,v)} در گراف G، حداقل یک راس (کیف) مانند X\_{i} در درخت باشد که شامل هر دو راس u و v است.

تجزیهٔ درختی یک گراف، یکتا نیست. بدیهی‌ترین تجزیهٔ درختی، قراردادن تمامی رئوس گراف در یک کیف است که در این صورت هر گراف یک تجزیه با عرض {\displaystyle n-1} دارد؛ بنابراین برای هر گراف تجزیه‌های درختی متعددی وجود دارد.
عرض درختی یک تجزیهٔ درختی، برابر است با سایز بزرگ‌ترین کیف آن منهای یک.
عرض درختی یک گراف نیز که با {\displaystyle tw(G)} نمایش داده می‌شود، برابرست با کم‌ترین عرض درختی میان تمامی تجریه‌های درختی آن گراف.

**مثال:**
در شکل زیر گراف G و یک تجزیهٔ درختی از آن را می‌بینید. عرض این تجزیهٔ درختی، ۲ می‌باشد.

یک گراف به همراه یک تجزیهٔ درختی از آن با عرض ۲یک گراف با هشت راس ، و یک تجزیه‌ی درختی آن با شش گره. هر یال (متشکل از دو راس) از گراف اصلی حداقل در یکی از سبدهای تجزیه‌ی درختی دیده می‌شود (به طور مثال دو راس a و b در گراف اصلی به هم وصل‌اند و بنابراین در تجزیه درختی در حداقل یکی از سبدها (سبد بالا چپ) دیده می‌شوند).از طرفی دیگر تمامی رئوس گراف (۸ راس) در حداقل یکی از سبدهای تجزیه درختی آمده‌اند. شرط سوم نیز برقرار است. بدین معنی که سبدهای حاویِ یک راس، تشکیل یک زیردرخت در تجزیه درختی می‌دهند (به طور مثال به راس G که با رنگ بنفش مشخص شده‌است، دقت کنید که در سه سبد موجود است و این سه سبد تشکیل یک مولفه هم‌بندی می‌دهند). برقراری این سه شرط نشان می‌دهد که تجزیه درختی ارائه‌شده، یک تجزیه درختی معتبر است.
**مثال:**
عرض درختی تمام درخت‌ها برابر با یک است.

### تجزیه‌ی درختی نرم

تجزیهٔ درختی {\displaystyle ({X\_{i}|i\in I},T(I,F))} با عرض k نرم می‌گوییم اگر:

* {\displaystyle \forall i\quad |X\_{i}|=k+1}
* {\displaystyle \forall {i,j}\in F\quad |X\_{i}\bigcap X\_{j}|=k}

**نکته**: هر تجزیهٔ درختی را می‌توان به یک تجزیهٔ درختی نرم تبدیل کرد.

  

### مجموعه‌ی مستقل بر روی تجزیه‌ی درختی

فرض کنید {\displaystyle ({X\_{i}|i\in I},T(I,F))} یک تجزیهٔ درختی برای گراف G=(V,E) باشد به طوری که عرض آن حداکثر k باشد. می‌خواهیم الگوریتمی از {\displaystyle O(k^{2}4^{k}|V|)} ارائه دهیم تا بزرگ‌ترین مجموعهٔ مستقل این گراف را پیدا کنیم.

ابتدا درخت را از راس دلخواه r ریشه دار می‌کنیم. به ازای هر {\displaystyle U\subseteq X\_{i}}، {\displaystyle dp(i,U)} را برابر با بزرگ‌ترین مجموعهٔ مستقل که می‌توان در زیر درخت i پیدا کرد به شرط آن که اشتراک راس‌های مجموعهٔ مستقل و X\_{i} دقیقا راس‌های U باشد تعریف می کنیم. حال الگوریتم جستجوی عمق اول را روی درخت اجرا می ‌کنیم. سپس به ازای هر راس i یکی از کارهای زیر را انجام می دهیم:

* اگر راس iیک برگ بود، به ازای هر {\displaystyle U\subseteq X\_{i}} اگر U یک مجموعهٔ مستقل در گراف بود {\displaystyle dp(i,U)=\left\vert U\right\vert } در نظر می گیریم در غیر این صورت {\displaystyle dp(i,U)=-\infty }
* اگر راس iبرگ نبود و {\displaystyle c\_{1},c\_{2},\dots ,c\_{l}}فرزندان راس iباشند آنگاه:

{\displaystyle dp(i,U)=|U|+\sum \_{j=1}^{l}max(dp(j,W)|W\subseteq (X\_{c\_{j}}-U)\quad and\ W\cup U\ is\ independent)}

جواب نیز برابر خواهد شد با:  

{\displaystyle max(dp(r,U)|U\subseteq X\_{r}}
تعداد حالاتی که مقادیر آن‌ها را پیدا می‌کنیم برابر با {\displaystyle 2^{k}|V|} است. هم‌چنین برای به دست آوردن مقدار یک خانه باید به ازای تمام زیرمجموعه از بسته‌های فرزندانش مقدار ماکسیمم حساب شود و همچنین باید بررسی شود که راس‌ها به هم یال نداشته باشند که مرتبهٔ این قسمت نیز از {\displaystyle O(2^{k}k^{2})} است. در نتیجه زمان اجرای الگوریتم {\displaystyle O(k^{2}4^{k}|V|)} خواهد شد.

به ازای k‌های کوچک اثبات شده‌است که گرافی که مجموعهٔ گراف‌های زیر را به عنوان ماینور شامل نمی شود ، عرض درختی کمتر مساوی k دارد.

* {\displaystyle k=0\rightarrow k\_{2}}
* {\displaystyle k=1\rightarrow k\_{3}}
* {\displaystyle k=2\rightarrow k\_{4}}
* {\displaystyle k=3\rightarrow k\_{5},k\_{2,2,2}}
* {\displaystyle k=4\rightarrow } بیش از ۷۵ نوع گراف

الگوریتم‌های محاسبهٔ عرض درختی یک گراف
--------------------------------------

در حالت کلی، پاسخ به این سؤال که آیا گراف G عرض درختی‌اش حداکثر k است یا نه یک مسئله {\displaystyle NP-complete} (ان‌پی کامل) است. اما برای kهای مشخص با اندازهٔ کوچک الگوریتمی با زمان اجرای خطی وجود دارد. زمان اجرای این الگوریتم بر اساس سایز ورودی خطی ولی بر اساس k نمایی‌ست و لذا فقط برای kهای ثابت و کوچک عملی‌ است.

به بیان دقیق‌تر محسابه‌ی عرض درختی یک مساله FPT است که مخفف Fixed-Parameter Tractable می‌باشد. به مساله‌ای FPT گفته می‌شود که زمان اجرای آن به صورت {\displaystyle f(k)n^{{\mathcal {O}}(1)}} باشد که در آن n سایز وروردی (در این مساله ː اندازه گراف)، k یک پارامتر (در این‌ مساله ː عرض درختی) و {\displaystyle f(\cdot )} یک تابع محاسبه‌پذیر است (هر تابعی که حداقل یک ماشین تورینگ در زمان متناهی بتواند آن را محاسبه کند).
جدول زیر خلاصه‌ای از الگوریتم‌های حل مساله‌ی عرض درختی‌ست. به جز موارد ردیف اول و ردیف نهم، باقی الگورتیم‌ها همگی FPT می‌باشند که در آن‌ها ضریب تخمین، وابستگی به k در پیچیدگی زمانی یا همان {\displaystyle f(k)} و وابستگی به n در پیچیدگی زمانی در ستون‌های متفاوت ذکر شده‌اند. 

| ضریب تخمین | وابستگی زمان اجرا به k | وابستگی زمان اجرا به n | مرجع |
| --- | --- | --- | --- |
| دقیق (۱) | {\displaystyle {\mathcal {O}}(1)} | {\displaystyle {\mathcal {O}}(n^{k+2})} | آرنبرگ و سایرین (۱۹۸۷) |
| ۴ | {\displaystyle {\mathcal {O}}(3^{3k})} | {\displaystyle {\mathcal {O}}(n^{2})} | رابرتسون و سیمور (۱۹۹۵) |
| ۸ | {\displaystyle 2^{{\mathcal {O}}(k\log k)}} | {\displaystyle n\log ^{2}n} | رید (۱۹۹۲) |
| ۵ | {\displaystyle 2^{{\mathcal {O}}(k\log k)}} | {\displaystyle n\log n} | لاگرگرن (۱۹۹۶) |
| دقیق (۱) | {\displaystyle 2^{{\mathcal {O}}(k^{3})}} | {\displaystyle {\mathcal {O}}(n)} | بُدلَندِر (۱۹۹۶) |
| {\displaystyle {\mathcal {O}}({\sqrt {\log k}})} | {\displaystyle {\mathcal {O}}(1)} | {\displaystyle n^{{\mathcal {O}}(1)}} | فیگه و سایرین (۲۰۰۸) |
| ۴.۵ | {\displaystyle 2^{3k}} | n^2 | امیر (۲۰۱۰) |
| ۴.۶۶ | {\displaystyle 2^{3.6982k}} | {\displaystyle n^{3}\log ^{4}n} | امیر (۲۰۱۰) |
| دقیق (۱) | {\displaystyle {\mathcal {O}}(1)} | {\displaystyle {\mathcal {O}}(1.734^{n})} | فومین و سایرین (۲۰۱۵) |
| ۳ | {\displaystyle 2^{{\mathcal {O}}(k)}} | {\displaystyle {\mathcal {O}}(n\log n)} | بُدلَندِر (۲۰۱۶) |
| ۵ | {\displaystyle 2^{{\mathcal {O}}(k)}} | {\displaystyle {\mathcal {O}}(n)} | بُدلَندِر (۲۰۱۶) |
| k | {\displaystyle {\mathcal {O}}(k^{7})} | {\displaystyle {\mathcal {O}}(n\log n)} | فومین و سایرین (۲۰۱۸) |
| ۵ | {\displaystyle 2^{7.651k}} | {\displaystyle {\mathcal {O}}(n\log n)} | بلباسی و فورِر (۲۰۲۱-آ) |
| ۲ | {\displaystyle 2^{{\mathcal {O}}(k)}} | {\displaystyle {\mathcal {O}}(n)} | کُرهُنِن (۲۰۲۱) |
| ۵ | {\displaystyle 2^{6.755k}} | {\displaystyle {\mathcal {O}}(n\log n)} | بلباسی و فورِر (۲۰۲۱-ب) |

مسئله‌ی دزد و پلیس‌ها
---------------------

در این مثال در یک گراف تعدادی پلیس حضور دارند که در راس‌های مختلف گراف قرار دارند. یک دزد نیز در یکی از راس‌های گراف پنهان شده‌است. در هر مرحله اگر k پلیس داشته باشیم ، پلیس‌ها k راس را در نظر می‌گیرند و به آن می‌روند. سپس دزد یک راس را در نظر می‌گیرد که در آن پلیس نیست و از راسی که در آن حضور دارد به راس مقصد مسیری وجود داشته باشد که راس‌های این مسیر شامل راس‌های اشتراک مکان‌های قبلی پلیس‌ها و مکان‌های جدید پلیس‌ها نباشد. پلیس‌ها برنده می‌شوند اگر بعد از تعداد محدودی مرحله ، دزد راسی برای فرار کردن به آن نداشته باشد.

**قضیه** : اگر عرض درختی گراف G حداکثر k باشد ، آنگاه 1 + k پلیس می توانند دزد را دستگیر کنند.

**اثبات**: چون عرض درختی گراف حداکثر k است ، یک تجزیهٔ نرم برای آن وجود دارد.
حال تجزیهٔ نرم آن را در نظر می گیریم. ابتدا آن را از راسی ریش‌دار می کنیم. پلیس‌ها در مرحله اول در 1 + k راس در بستهٔ ریشه قرار می‌گیرند. دزد نیز در این مرحله در راسی دیگر قرار گرفته‌است. حال راسی که دزد در آن قرار گرفته را در نظر می‌گیریم. مجموعهٔ بسته‌هایی که راس دزد در آن قرار دارد یک مجموعهٔ همبند در یکی از زیر درخت‌های فرزندان ریشه است. پلیس‌ها در این مرحله آن فرزند را انتخاب می‌کنند و به راس‌های آن منتقل می‌شوند و از آن جا که اشتراک بستهٔ جدید با بستهٔ قبل k است و یک برش در گراف را تشکیل می‌دهد ، دزد نمی‌تواند از آن خارج شود. اگر پلیس‌ها به همین روند ادامه دهند در آخر دزد را در یک بسته برگ گیر می‌اندازند.

منابع
-----

1. ↑
2. ↑  Bodlaender, Hans L. (1996), "A linear time algorithm for finding tree-decompositions of small treewidth", SIAM Journal on Computing, 25 (6): 1305–1317
3. ↑  A $c^k n$ 5-Approximation Algorithm for Treewidth

Read More:
4. ↑
5. ↑  «نسخه آرشیو شده» (PDF). بایگانی‌شده از اصلی (PDF) در ۲۷ سپتامبر ۲۰۱۶. دریافت‌شده در ۲۰ مه ۲۰۱۷.
6. ↑