payamvha/North_RAG huggingface dataset:
لطائف‌الحکمه کتابی است در حکمت، از سراج‌الدین محمود ارموی. قسم اول آن در حکمت علمی (حقیقت و فضیلت علم، بیان انواع علوم، اثبات واجب‌الوجود، صفات خداوند، اثبات هستی آفریدگار، معرفت روح، اثبات نبوت) است. قسم دوم آن در حکمت عملی (اخلاق و روش کشورداری) اهمیت بیشتری دارد که حاصل تجارب و مشاهدات و تفکر علمی مؤلف است و از وضع اجتماعی دیار روم در آن عصر نکته‌ها دارد.
سراج‌الدین محمود ارموی حکیم و منطق‌دان ایرانی از قرن هفتم هجری است. سراج‌الدین ابوالثنا محمود بن ابی‌بکر اُرموی، متولد ۵۹۴ در ارومیه، درگذشته به ۶۸۲ در قونیه. ارموی تألیفات متعددی در اصول فقه و خلاف و منطق و حکمت نوشته است، که پرآوازه‌ترین شان مطالع الانوار در منطق است. بر این کتاب شرح‌های فراوان نوشته‌اند، که نامورترین شان شرح قطب‌الدین رازی با نام لوامع الاسرار فی شرح مطالع الانوار است و سال‌ها جزء‌ کتاب‌های درسی در مدارس قدیم بود. از دیگر کتب منطقی ارموی می‌توان به بیان الحق و لسان الصدق اشاره کرد، که
می‌توان به بیان الحق و لسان الصدق اشاره کرد، که ناظر به کتاب کشف الاسرار عن غوامض الافکار خونجی است؛ نیز کتاب لطائف‌الحکمه که دربارهٔ حکمت است. ارموی تا پایان عمر خود، نزدیک به چهل سال در روم و بیشتر در قونیه زندگی کرد و در سایهٔ مقام والای علمی و دینی، شخصیت ممتازی که داشت از عزت و احترام بسیار برخوردار بود.
مسئله درخت اشتاینر ، که به افتخار یاکوب اشتاینر مبدع آن نام گذاری شده، کوچکترین درخت وزن داری است که شامل تعدادی از گره‌های خاص به نام ترمینال باشد. در این مسئله یک گراف وزن دار(G=(V،E و یک زیرمجموعه از رئوس گراف (T⊆V) که مجموعه ترمینال‌ها نام دارد ارائه می‌گردد و هدف پیدا کردن('GT=(V'،E با کمترین هزینه‌است که. E'⊆Eو T⊆V'⊆V مسئله درخت اشتاینر دارای کاربردهای فراوانی نظیر مسیریابی یک به چند در شبکه‌های رایانه‌ای، سامانه‌های ترابری، پلیس امداد، ایستگاه‌های پستی و کاربردهای دیگر می‌باشد. مسئله درخت اشتاینر با
و کاربردهای دیگر می‌باشد. مسئله درخت اشتاینر با مسئله درخت پوشای مینیمم مشابهت دارد: فرض کنید مجموعه رئوس V داده شده‌اند، می خواهیم آنها را با یک گراف با کمترین وزن به هم متصل کنیم. به طوری که حاصل جمع وزنهای همه یالها کمینه شود. تفاوت بین مسئله درخت اشتاینر و مسئله درخت پوشای مینیمم این است که در مسئله درخت اشتاینر، رئوس میانه و یال ممکن است به گراف اضافه شوند تا وزن درخت پوشا را کاهش دهند. این رئوس جدید برای کاهش وزن کلی اتصالات معرفی می‌شوند و نقاط اشتاینر یا رئوس اشتاینر نام دارند. ثابت شده‌است که
یا رئوس اشتاینر نام دارند. ثابت شده‌است که اتصالات به دست آمده یک درخت را تشکیل می‌دهند، که درخت اشتاینر نام دارد. ممکن است برای مجموعه‌ای از رئوس درختهای اشتاینر زیادی وجود داشته باشند. مسئله درخت اشتاینر در طراحی فیزیکی مدارات VLSI یا شبکه نیز کاربرد فراوانی دارد. بسیاری از نسخه‌های مسئله اشتاینر ان‌پی کامل هستند. درخت اشتاینر اقلیدسی. این مسئله انواع مختلفی دارد. دریک نوع آن تعدادی نقطه بر روی صفحه دو بعدی به عنوان ورودی ارائه میگردد و هدف، تولید درختی بر روی صفحه اقلیدسی است، که دارای کمترین هزینه بوده
روی صفحه اقلیدسی است، که دارای کمترین هزینه بوده و همه نقاط را در بر بگیرد. همین مسئله به صورت عمود بر هم نیز مطرح می‌شود که در آن باید خطوط درخت فقط به صورت عمودی یا افقی رسم شوند که این مسئله در طراحی فیزیکی مدارات VLSI کاربرد فراوانی دارد. مشکل اصلی که ما با آن روبرو شدیم هندسه درخت اشتاینر بود: در طرح N نقطه داده شده‌است. هدف اتصال آنها به وسیله خطوطی است که کمترین وزن را داشته باشند.به طوری که هر دو نقطه یا به طور مستقیم (مسیری به طول یک) یا از طریق رئوس دیگر (مسیری به طول بیشتر از یک) به هم متصل
رئوس دیگر (مسیری به طول بیشتر از یک) به هم متصل هستند. این ممکن است به این صورت نشان داده شود که خطوط یکدیگر را قطع نمی‌کنند مگر در نقاط پایانی و درخت را تشکیل می‌دهند. برای مسئله اشتاینر اقلیدسی نقاطی که به گراف اضافه می‌شوند (نقاط اشتاینر) باید از درجه ۳ با شند. و سه لبهٔ متلاقی در یک نقطه باید با هم زاویه ۱۲۰ درجه را بسازند. این حد اکثر نقاط اشتاینر را به دنبال دارد که یک درخت اشتاینر می‌تواند حداکثر N-۲ نقطه اشتاینر داشته باشد، که N تعداد نقاط داده شده‌است. مسئله اشتاینر اقلیدسی یک ان‌پی سخت است و
شده‌است. مسئله اشتاینر اقلیدسی یک ان‌پی سخت است و بنابراین به عنوان جوابی بهینه برای الگوریتم‌های محسوب نمی‌شود. درخت اشتاینر متری. درختان اشتاینر در چهار چوب گراف وزندار مورد مطالعه قرار می‌گیرند. و آن را به صورت (G=(V،E،w نشان می‌دهیم. حال دو نوع مشکل وجود دارد: در مسئله بهینه سازی مربوط به درخت اشتاینر، هدف پیدا کردن کم وزن‌ترین درخت اشتاینر است، در مسئله تصمیم گیری، ما مقدار k را در نظر میگیریم و هدف تعیین این است که آیا درخت اشتاینری از وزن کل حداکثر k وجود دارد. ما می‌توانیم توجه خود را به مورد خاصی
وجود دارد. ما می‌توانیم توجه خود را به مورد خاصی که G گراف کامل باشد، محدود کنیم. هر راسی در فضای متریک محدود به یک نقطه‌است و (w(e) برای هر یال e∈E متناظر با فاصله در فضا است. وزن یالها در نامساوی مثلث صدق می‌کند. این نوع به عنوان مسئله درخت اشتاینر متریک شناخته شده‌است. می‌توان مثالی غیر متریک از مسئله درخت اشتاینر را در زمان از درجه پیچیدگی چندجمله‌ای به عنوان مثال معادل مسئله درخت اشتاینر متریک تبدیل کرد؛ این تغییر ضریب تقریب را حفظ می‌کند. منابع. http://en.wikipedia.org/wiki/Steiner_tree_problem
http://en.wikipedia.org/wiki/Steiner_tree_problem http://www.itl.nist.gov/div897/sqg/dads/HTML/steinertree.html http://ce.sharif.edu/~ghodsi/ds-alg-dic/dads-orig
جشنواره فیلم لهستانی یک جشنواره فیلم سالانه است که ابتدا در گدانسک و هم‌اکنون در شهر گدنیا در شمال لهستان برگزار می‌شود. این رویداد با نام جشنواره فیلم گدنیا نیز شناخته می‌شود. این جشنواره از سال ۱۹۷۴ هرساله به استثنای سال‌های ۱۹۸۲ و ۱۹۸۳ که حکومت نظامی در لهستان برقرار بود، به‌طور مرتب برگزار شده‌است. جایزه اصلی جشنواره فیلم لهستانی که "شیر طلایی" نام دارد، با جایزه "عقاب‌ها" که در جوایز فیلم لهستانی و "جشنواره فیلم لهستانی سیاتل" (سیاتل، واشینگتن خواهرخوانده گدنیا است) اهدا می‌شوند، تفاوت دارد و جدای از
گدنیا است) اهدا می‌شوند، تفاوت دارد و جدای از آن‌هاست.
جوایز فیلم لهستان مجموعه جایزه‌های سینمایی هستند که از سال ۱۹۹۹ هرساله توسط آکادمی فیلم لهستان به برگزیدگان اهدا می‌شود. جایزه اهدایی، "عقاب" (Orzeł) نام دارد. جایزه‌ها. جایزه‌های ویژه:
فرض کنید مجموعه تاریخی‌ای از عناصر را در اختیار داریم. گاهی از مواقع می‌خواهیم آن‌ها را به چند مجموعه بدون اشتراک افراز کنیم. داده ساختار مجموعه‌های مجزا، داده ساختاری است که این کار را انجام می‌دهد. یک الگوریتم جستجو-ادغام، الگوریتمی است که دو عمل زیر را روی این داده ساختار انجام می‌دهد: عملیات مهم دیگری هم که روی این داده ساختار انجام می‌شود، "ایجاد مجموعه" است که یک مجموعه جدید شامل یک عضو داده شده را ایجاد می‌کند که عموماً بسیار ساده‌است. با در اختیار داشتن این ۳ عمل، می‌توان بسیاری از "مسائل
اختیار داشتن این ۳ عمل، می‌توان بسیاری از "مسائل تقسیم‌بندی" را حل کرد. برای این که این ۳ عمل را با دقت تعریف کنیم، روشی برای مشخص کردن مجموعه‌ها لازم است. یک روش معمول برای این کار این است که برای هر مجموعه، یک عضو مشخص از آن را انتخاب کنیم و آن را نماینده این مجموعه بنامیم. در این صورت، تابع "جستجو" برای یک عضو، نماینده مجموعه‌ای که این عضو در آن قرار دارد را برمی‌گرداند و تابع "ادغام" نماینده دو مجموعه را به عنوان ورودی می‌گیرد. پیاده‌سازی با لیست پیوندی. یک روش ساده برای ساختن این داده ساختار به این
یک روش ساده برای ساختن این داده ساختار به این شکل است که برای هر مجموعه، یک لیست پیوندی تشکیل دهیم و عنصر ابتدای هر لیست را به عنوان نماینده آن مجموعه انتخاب کینم. تابع "ایجاد مجموعه"، یک لیست جدید با یک عنصر را می‌سازد. تابع "ادغام"، لیست دو مجموعه را به هم پیوند می‌دهد، که زمان ثابتی می‌گیرد. مشکل این روش پیاده‌سازی در تابع "جستجو" است که به زمان Ω(n) احتیاج دارد. می‌توان با اضافه کردن یک اشاره گر به هر گره در لیست‌ها که به ابتدای آن لیست اشاره می‌کند، این مشکل را رفع کرد. اما حالا تابع "ادغام" باید این
مشکل را رفع کرد. اما حالا تابع "ادغام" باید این اشاره گر تمام گره‌های یک لیست که به لیست دیگری چسبانده می‌شود را به روز کند، پس این تابع به زمان (Ω(n احتیاج دارد. اگر طول هر لیست را نگه داریم، و در هر مرحله لیست کوچکتر را به لیست بزرگتر بچسبانیم، می‌توان زمان را بهبود داد. در این صورت اگر از m تابع "جستجو"، "ادغام" و "ایجاد مجموعه" روی n عضو اعمال شوند، زمان(O(m + n log n مصرف می‌شود. پیاده‌سازی به وسیله جنگل‌ها. در این پیاده‌سازی هر مجموعه به وسیله یک درخت نشان داده می‌شود که هر گره در آن یک اشاره‌گر به
نشان داده می‌شود که هر گره در آن یک اشاره‌گر به پدرش دارد. این پیاده‌سازی ابتدا توسط و در سال ۱۹۶۴ پیشنهاد شد، البته تحلیل زمانی دقیق آن تا مدت‌ها طول کشید. در این روش، نماینده هر مجموعه، ریشه درخت آن مجموعه انتخاب می‌شود. تابع "جستجو"، پدران یک راس را تا جایی دنبال می‌کند که به ریشه درخت برسد و تابع "ادغام"، ریشه یک درخت را به ریشه درخت دیگر متصل می‌کند تا یک درخت به وجود بیاید. یکی از روش‌های پیاده‌سازی می‌تواند به شکل زیر باشد: function MakeSet(x) x.parent:= x function Find(x) if x.parent == x return x
x function Find(x) if x.parent == x return x else return Find(x.parent) function Union(x, y) xRoot:= Find(x) yRoot:= Find(y) xRoot.parent:= yRoot در این پیاده‌سازی ساده، این روش بهتر از روش پیاده‌سازی با لیست‌های پیوندی نیست، زیرا درختی که ساخته می‌شود، می‌تواند کاملاً نامتوازن باشد، اما به دو روش می‌توان این پیاده‌سازی را بهبود داد. روش اول که "ادغام بر حسب مرتبه" نام دارد، به این صورت است که همیشه ریشه درخت کوچکتر را به ریشه درخت بزرگتر وصل می‌کنیم. از آن جا که زمان اجرا به عمق درخت وابسته‌است، درخت با
جا که زمان اجرا به عمق درخت وابسته‌است، درخت با عمق کمتر زیر درخت با عمق بیشتر قرار می‌گیرد که فقط در صورتی که عمق‌ها برابر باشند، عمق درخت حاصل افزایش میابد. در این الگوریتم به به جای عمق از واژه "مرتبه" استفاده می‌شود، زیرا اگر از "فشرده سازی مسیر"(در ذیل توضیح داده خواهد شد) هم استفاده کنیم، دیگر "مرتبه" برابر با عمق درخت نخواهد بود. تعریف می‌کنیم که درخت‌های تک عضوی دارای مرتبه صفر هستند و در هر مرحله که دو درخت دارای مرتبه برابر r باشند، درخت حاصل از ادغام آن‌ها دارای مرتبه r+۱ خواهد بود. تنها پیاده
ادغام آن‌ها دارای مرتبه r+۱ خواهد بود. تنها پیاده کردن این تکنیک باعث می‌شود که زمان عملیات‌های "جستجو"، "ادغام" و "ایجاد مجموعه" به‌طور سرشکن برابر (O(log n باشد. کد ارتقا یافته برای توابع "جستجو" و "ایجاد مجموعه": function MakeSet(x) x.parent:= x x.rank:= 0 function Union(x, y) xRoot:= Find(x) yRoot:= Find(y) if xRoot.rank&gt; yRoot.rank yRoot.parent:= xRoot else if xRoot.rank &lt;yRoot.rank xRoot.parent:= yRoot else if xRoot!= yRoot// Unless x and y are already in same set, merge them yRoot.parent:=
already in same set, merge them yRoot.parent:= xRoot xRoot.rank:= xRoot.rank + 1 تکنیک بعدی که "فشرده‌سازی مسیر" نام دارد، روشی است که ساختمان درخت را در هر مرحله که "جستجو" روی آن انجام می‌شود، کم عمق تر می‌کند. ایده این است که هر راسی که در مسیر به راس ریشه وجود دارد، می‌تواند به صورت مستقیم به ریشه متصل شود، زیرا همه این رئوس یک نماینده مشترک دارند. برای پیاده کردن این تکنیک، در هنگامی که "جستجو" به صورت بازگشتی از رئوس درخت به سمت ریشه حرکت می‌کند، پدر هر راس را برابر ریشه‌ای قرار می‌دهد که پیدا
پدر هر راس را برابر ریشه‌ای قرار می‌دهد که پیدا کرده‌است. درخت حاصل کم عمق تر از درخت اولیه‌است که باعث سریع تر شدن عملیات‌ها روی این رئوس و نوادگان آن‌ها می‌شود. کد ارتقا یافته تابع "جستجو": function Find(x) if x.parent == x return x else x.parent:= Find(x.parent) return x.parent این دو تکنیک همدیگر را کامل می‌کنند، اگر هر دو با هم انجام بشوند، زمان سر شکن شده برای هر عملیات از "((O(α(n" می‌شود که "(α(n" معکوس تابع "(f(n) = A(n,n" است و "A" "تابع اکرمن" است که بسیار سریع رشد می‌کند. چون "(α(n" معکوس این
که بسیار سریع رشد می‌کند. چون "(α(n" معکوس این تابع است، "(α(n" برای تمامی مقادیر کاربردی n کمتر از ۵ است؛ بنابراین زمان سرشکن شده برای هر عملیات یک ثابت کوچک است. کاربردها. داده ساختار مجموعه‌های مستقل، تقسیم‌بندی یک مجموعه را مدل می‌کند، به عنوان مثال نگه داشتن مولفه‌های همبندی یک گراف بی‌جهت را می‌توان با این داده ساختار مدل کرد. این مدل می‌تواند برای بررسی کردن این که آیا دو راس در یک مؤلفه قرار دارند یا این که آیا اضافه کردن یال بین آن‌ها می‌تواند یک دور ایجاد کند، به کار برود. این مدل در پیاده‌سازی
دور ایجاد کند، به کار برود. این مدل در پیاده‌سازی الگوریتم کروسکال برای پیدا کردن زیر درخت فراگیر با کمترین وزن در یک گراف نیز به کار می‌رود. توجه کنید که ساختمان داده مجموعه‌های مجزا اجازه حذف یال‌ها را (حتی در صورتی که از "دغام بر حسب مرتبه" و "فشرده سازی مسیر" استفاده نکنیم) نمی‌دهد. البته روشهای پیچیده تری برای کار با این عملیات‌ها طراحی شده‌اند. تاریخچه. با وجود اینکه ایده‌های مجموعه‌های مجزا برای مدت‌ها مورد استفاده قرار می‌گرفت، اولین کسی بود که کران بالای این مسئله که برابر معکوس تابع اکرمن می‌باشد
بالای این مسئله که برابر معکوس تابع اکرمن می‌باشد را در سال ۱۹۷۵ به دست آورد. تا قبل از این زمان، بهترین کران برابر (O(log * n یک تابع کند دیگر (اما نه به کندی معکوس تابع اکرمن) بود. همچنین و یک الگوریتم یکبار اجرا را طراحی کردند که در عمل، کارا تر است اما در بدترین حالت، دو الگوریتم دارای پیچیدگی زمانی برابری هستند.
مسئله پوشش مجموعه، یک مسئله بهینه‌سازی است که بسیاری از مسئله‌های انتخاب منابع را مدل‌سازی می‌کند. مسئله تصمیم‌گیری متناظر آن، مسئله NP کامل پوشش مجموعه را تعمیم می‌دهد و در نتیجه NP سخت است. الگوریتم تقریبی که برای اداره کردن مسئله پوشش راس ارائه شد، در این‌جا به کار نمی‌رود. و در نتیجه باید روش دیگری را به کار گیریم. روش اکتشافی حریصانه‌ای را با نسبت تقریب لگاریتمی بررسی می‌کنیم؛ یعنی هر چه اندازه نمونه بزرگتر می‌شود، اندازه جواب تقریبی ممکن است نسبت به اندازه جواب بهینه رشد کند. چون، تابع لگاریتمی، خیلی
جواب بهینه رشد کند. چون، تابع لگاریتمی، خیلی کند رشد می‌کند، این الگوریتم تقریب ممکن است نتایج مفیدی ارائه ندهد. مسئله. نمونهٔ formula_1 از مسئلهٔ پوشش مجموعه، شامل مجموعهٔ متناهی X و خانوادهٔ F از زیرمجموعه‌های X است. به‌طوری‌که هر عنصر X متعلق به حداقل یک زیرمجموعه در F است:(اگر formula_2 را برابر با p بگیریم) formula_3 می‌گوییم زیرمجموعهformula_4، عناصرش را می‌پوشاند. مسئله، یافتن می نیمم اندازهٔ formula_5است که اعضای آن، تمام X را می‌پوشاند: (اگر formula_6 را برابر با q بگیریم) معادله ۱ formula_7
را برابر با q بگیریم) معادله ۱ formula_7 می‌گوییم هر A که در معادله ۱ صدق می‌کند، X را می‌پوشاند. شکل ۱ مسئلهٔ پوشش مجموعه را شرح می‌دهد. اندازهA به صورت تعداد مجموعه‌های موجود در آن تعریف شد، نه تعداد عناصر موجود در این مجموعه‌ها. در شکل ۱، اندازه پوشش مجموعه می نیمم، ۳ است. مسئله پوشش مجموعه، انتزاع بسیاری از مسئله‌های ترکیبی است. به عنوان مثال ساده، فرض کنید X مجموعه‌ای از مهارت‌های مورد نیاز برای حل یک مسئله است و مجموعه‌ای از افراد برای کار کردن بر بروی این مسئله وجود دارد. می‌خواهیم کمیته‌ای تشکیل
این مسئله وجود دارد. می‌خواهیم کمیته‌ای تشکیل دهیم که شامل کمترین تعداد ممکن از افراد باشد، به‌طوری‌که برای هر مهارت مورد نیاز در X، عضوی از کمیته دارای آن مهارت باشد. در نسخهٔ تصمیم‌گیری مسئلهٔ پوشش مجموعه، می‌پرسیم که آیا پوششی با اندازه K وجود دارد یا خیر؟ k پارامتر دیگری است که در نمونه مسئله مشخص شده‌است. نسخه تصمیم‌گیری این مسئله، NP کامل است. الگوریتم تقریب حریصانه. روش حریصانه، در هر مرحله، مجموعهٔ S را انتخاب می‌کند که بزرگ‌ترین تعداد عناصر باقی مانده‌ای را که پوشش داده نشدند، پوشش می‌دهد:
باقی مانده‌ای را که پوشش داده نشدند، پوشش می‌دهد: formula_8 formula_9 formula_10 formula_11 formula_12 formula_13 formula_14 در مثال شکل ۱، Greedy-Set-Cover، مجموعه‌های formula_15 ، formula_16 ، formula_17 ، formula_18 (را به همین ترتیب) به A اضافه می‌کند. این الگوریتم به صورت زیر کار می‌کند. مجموعه U در هر مرحله شامل مجموعهٔ عناصر باقی ماندهٔ پوشش نداده‌است. مجموعهٔ A شامل پوشش در حال ساخت است. خط ۴، مرحله تصمیم‌گیری حریصانه است. یک زیرمجموعه S انتخاب شد که بیشترین عناصر ممکن پوشش داده نشده را پوشش می‌دهد
بیشترین عناصر ممکن پوشش داده نشده را پوشش می‌دهد (به‌طوری‌که گره‌ها به دلخواه شکسته شدند). پس از انتخاب S، عناصر آن از U، و S در A قرار می‌گیرد. وقتی الگوریتم خاتمه می‌یابد، مجموعه A حاوی زیرخانواده‌ای از F است که X را می‌پوشاند. الگوریتم Greedy-Set-Cover می‌تواند به آسانی پیاده‌سازی شود تا در زمان چندجمله‌ای بر حسب formula_19و formula_20اجرا گردد. چون تعداد تکرارهای حلقه در خطوط ۳ تا ۶ از بالا توسط می نیمم formula_21 محدود می‌شود، و بدنهٔ حلقه می‌تواند طوری پیاده‌سازی شود که در زمانformula_22اجرا گردد،
پیاده‌سازی شود که در زمانformula_22اجرا گردد، پیاده‌سازی وجود دارد که در زمانformula_23 اجرا می‌گردد. البته می‌توان نشان داد که الگوریتم حریصانه، پوشش مجموعه‌ای را برمی‌گرداند که چندان بزرگتر از پوشش مجموعه بهینه نیست.
برگ بو یا غار با نام علمی لاتین لائوروس نوبیلیس (Laurus nobilis) نام گونه‌ای از سرده برگ بو است. گیاهی خوشبو و همیشه‌سبز است که اصل آن از منطقهٔ مدیترانه است و در تمام مدیترانه به عنوان عطر غذا از آن استفاده می‌شود. در متون قدیمی‌تر برای برگ بو نام‌های دیگری نیز استفاده می‌شد که از آن جمله‌اند: غار، حب‌الغار، شجرالغار، دهم، دهمست، دَهْمَشْت‎، رند، عمار، و ذاقی. برگ بو به صورت درختچه و درخت یافت می‌شود. معمولاً در تمام فصول سال سبز است و طول درخت‌های آن به ده متر هم می‌رسد. در بسیاری جاها برای تزیین باغ‌ها
متر هم می‌رسد. در بسیاری جاها برای تزیین باغ‌ها استفاده می‌شود، اما استفادهٔ اصلی آن در آشپزی و به عنوان داروی گیاهی است. در یونان و روم‌باستان، تاجِ تهیه‌شده از برگ‌ها را به‌عنوان جایزه به برندگان بازی‌ها می‌دادند. براساس مدارک موجود، کاشت درخت برگ بو در ایران از دوره قاجاریه آغاز شده‌است. ناصرالدین شاه نهال‌های آن را از اروپا به ایران آورد و در باغ کاخ گلستان کشت نمود. مظفرالدین شاه نیز کشت این درخت را در دیگر باغ‌های سلطنتی توسعه داد. به عنوان نمونه، درختانی در کاخ وزارت دارایی وجود داشت و در حال حاضر
در کاخ وزارت دارایی وجود داشت و در حال حاضر شش درخت کهنسال که احتمالاً مربوط به همان دوران می‌باشد، در ضلع شرقی پارک شهر تهران وجود دارد. از آن به بعد کاشت این درخت در نواحی شمالی ایران، تهران و دیگر نقاط رواج یافته‌است. تشریح درخت. برگ بو به صورت درختچه و درخت یافت می‌شود. اقسام کلی آن بین پنج تا ده متر رشد می‌کند. برگ بو درختی است همیشه‌سبز، دوپایه یا پلی‌گام که ارتفاع آن در نواحی معتدل به ۸ متر و در مناطق گرم تا ۲۰ متر می‌رسد. برگ‌ها به صورت منفرد بر روی شاخه‌ها قرار می‌گیرند. شکل برگ‌ها بیضی کشیده به
شاخه‌ها قرار می‌گیرند. شکل برگ‌ها بیضی کشیده به طول تا ۱۴ و عرض تا ۴/۵ سانتیمتر و لبه آن‌ها موجدار و دندانه دار است. سطح روی برگ، سبز تیره و براق، ولی سطح زیرین کمرنگ‌تر است. این برگ‌ها معطرند و با له شدن بوی بیشتری از خود ساطع می‌کنند. گل‌ها چند تایی و به صورت خوشه به رنگ زرد هستند. میوه برگ بو به صورت سته و تقریباً کروی به قطر حدود یک سانتیمتر، به رنگ بنفش مایل به آبی (ارغوانی) و دارای یک‌دانه می‌باشد. قسمت گوشتی میوه دارای روغنی سبز رنگ و معطر معروف به روغن «لوریه» است. قسمت مورد استفاده گیاه، برگ و
روغن «لوریه» است. قسمت مورد استفاده گیاه، برگ و میوه آن می‌باشد. ساقهٔ آن به صورت راست و مستقیم رشد می‌کند و از دور به شکل جام وارونه یا سرو است. برگ‌های آن ساده و همیشه سبز تیره است و بین سه تا نه سانتیمتر رشد می‌کند. میوه (دانه‌های) این درخت طی ماه‌های فروردین و اردیبهشت به بار می‌نشیند و به رنگ سبز مایل به زرد است که طی ماه‌های تابستان به سیاهی می‌گراید. این درخت از مقاومت خوبی برخوردار است و در مزارع و زمین‌های زیادی با تنوع آب و هوایی مختلف رشد می‌کند، لیکن در مقابل سرمای زیاد حساس است. روش تکثیر.
لیکن در مقابل سرمای زیاد حساس است. روش تکثیر. درخت برگ بو از طریق کشت دانه نشا و قلمه زنی به دست می‌آید، لیکن به دست آوردن آن از طریق کشت دانه فرآیندی کندتر و طولانی‌تر است. از درختان کم توقع به‌شمار می‌آید و نیازمند توجه و مراقبت زیاد نیست و نیازمند آبیاری زیادی نیست. بهره‌های گیاهی. این گیاه استفادهٔ گیاهی و دارویی زیادی دارد. در مشهد اروپا و حوزهٔ مدیترانه، آمریکای شمالی و بخشی از مکزیک برای آشپزی استفاده می‌شود. باید توجه داشت که برگ‌های خشکاندهٔ درخت در آشپزی استفاده می‌شود و نه برگ‌های سبز آن، زیرا
در آشپزی استفاده می‌شود و نه برگ‌های سبز آن، زیرا برگ‌های سبز ممکن است خواص منفی داشته باشد. چنانچه برای طعم و عطر بخشیدن به غذا به ویژه غذاهای گوشتی و ماهی از این گیاه استفاده می‌کنید، لازم است برگ خشکیدهٔ آن را به صورت درسته و کامل در غذا بیندازید و پیش از سرو غذا آن را از ظرف خارج کنید؛ زیرا خوردن این برگ معمول نیست و دارای طعمی قوی است. استفادهٔ زیاد از این گیاه (بیش از چند برگ در غذا) ایجاد مسمومیت می‌کند. در پزشکی برای تقویت معده و به عنوان اشتهاآور و نیز برای هضم غذا و به عنوان ادرارآور استفاده
و نیز برای هضم غذا و به عنوان ادرارآور استفاده می‌شود. همچنین از جوشانده و روغنی که از آن تهیه می‌شود در تورم‌های موضعی استفاده می‌کنند. برگ بو کاربرد فراوانی در عطر‌سازی دارد. نت برگ بو به عنوان یک ایجاد کنننده فضای سبز و معطر هم در عطرهای زنانه و هم مردانه شناخته می‌شود.
مجموعهٔ «ان‌پی-سخت» (به انگلیسی: NP-hard) شامل چندهزار مسئلهٔ مختلف با کاربردهای فراوان است که تاکنون برای آن‌ها راه حل سریع و قابل انجام در زمان معقول پیدا نشده‌است و به احتمال زیاد در آینده نیز یافت نخواهد شد. این که راه حل سریعی برای آن‌ها وجود ندارد هم اثبات نشده‌است. البته ثابت شده‌است که اگر فقط برای یکی از این مسئله‌ها راه حل سریعی پیدا شود٫این راه حل موجب حل سریع بقیهٔ مسئله‌ها خواهد شد. البته احتمال پیدا شدن چنین الگوریتمی ضعیف است. منظور از راه حل سریع آن است که زمان اجرای آن با اندازهٔ ورودی
حل سریع آن است که زمان اجرای آن با اندازهٔ ورودی مسئله به صورت چندجمله‌ای رابطه داشته باشد. ان پی سخت (زمان چندجمله‌ای غیر قطعی سخت) در نظریه پیچیدگی محاسباتی یک کلاسی از مسائل است که "دست کم به سختی سخت‌ترین مسئله‌های NP" است. مسئلهٔ H یک مسئلهٔ ان پی سخت است اگر و فقط اگر یک مسئلهٔ ان پی کامل L که زمان چندجمله‌ای تورینگ تقلیل (polynomial time Turing-reducible) به سمت H وجود داشته باشد (L ≤ TH). به عبارت دیگر L می‌تواند در زمان چندجمله‌ای به وسیلهٔ دستگاه اوراکل با اوراکل H حل شود. به صورت غیررسمی
دستگاه اوراکل با اوراکل H حل شود. به صورت غیررسمی می‌توانیم الگوریتمی در نظر بگیریم که می‌تواند مانند یک ماشین اوراکل به عنوان یک زیر روال برای حل H تماس بگیرد و L را در زمان چندجمله‌ای حل کند اگر فراخوانی زیرروال تنها یک گام برای محاسبه بگیرد. مسئلهٔ ان پی سخت می‌تواند به هر صورتی باشد: مسئله‌های تصمیم‌گیری، مسئله‌های جستجو یا مسئله‌های بهینه‌سازی.. تعاریف جایگزین. تعریف جایگزین ان پی سخت اغلب استفاده محدود ان پی سخت برای مسائل تصمیم‌گیری و سپس برای استفاده کاهش زمان چند جمله‌ای به چند به یک کاهش تورینگ
کاهش زمان چند جمله‌ای به چند به یک کاهش تورینگ است؛ بنابراین، زبان L ان پی سخت است اگر ∀L' ∈ NP, L' ≤ L. اگر همچنین این حالت که L در ان پی باشد بنابراین L ان پی کامل نامیده می‌شود. ریشهٔ انگلیسی. ان پی-سخت: hard)→) کنوانسیون نام‌گذاری ان پی. سیستم نام‌گذاری خانواده ان پی گیج‌کننده‌است: مسائل ان پی سخت همه ان پی نیستند با وجود این که پسوند NP را در کلاس اسمی خود دارند. اگرچه نام هم‌اکنون در حال تثبیت است و بعید است تغییر کند. از طرف دیگر سیستم نام‌گذاری ان پی معنی عمیق‌تری دارد زیرا خانواده ان پی در ارتباط
معنی عمیق‌تری دارد زیرا خانواده ان پی در ارتباط با کلاس ان پی تعریف شده‌اند: در پی آمد این تعاریف داریم: یک اشتباه معمول این است که فکر کنیم که ان پی در ان پی سخت مخفف غیر چندجمله‌ای است. هر چند که به‌طور گسترده‌ای مشکوک است که هیچ الگوریتم زمان چندجمله‌ای برای مسئله‌های ان پی سخت وجود ندارد، این هرگز ثابت نشده‌است. علاوه بر این، کلاس ان پی شامل تمام مسائلی است که می‌تواند در زمان چندجمله‌ای حل شود. مفهوم و مقایسهٔ آن با ان پی-کامل. مسئلهٔ H ان پی-سخت است اگر و فقط اگر مسئلهٔ L از نوع موجود باشد،
است اگر و فقط اگر مسئلهٔ L از نوع موجود باشد، به‌طوری‌که زمان حل آن بر حسب چندجمله‌ای قابل کاهش به Hباشد: (L ≤ TH)به عبارتی دیگر L را می‌توان در زمان زیاد با ماشین H حل کرد. به‌طور غیررسمی ما می‌توانیم به الگوریتمی فکر کنیم که می‌تواندزیرروالی را برای حل H فراخوانی کند و L را در زمان زیاد حل کند اگر فراخوانی آن زیر روال فقط یک گام برای محاسبه طول بکشد. مسائل ان پی-سخت ممکن است از هر نوعی باشند:مسائل تصمیم گیری٫٫. طبق روال تعریف: (توجه داشته باشید که این‌ها صرفاً ادعا هستند نه تعریف): همهٔ مسائل با کاهش H
صرفاً ادعا هستند نه تعریف): همهٔ مسائل با کاهش H می‌توانند در زمان زیاد حل شوند. بنابراین همهٔ مسائل در ان پی قابل کاهش به H هستند. توجه داشته باشید هر چند این شامل ترکیب کردن ۲ تبدیل است: روش حل مسایل ان پی-سخت. روش‌های مختلفی برای حل سریع ولی نزدیک به بهینه برای یک مسئلهٔ ان پی-سخت وجود دارد: الگوریتم‌ها. راه‌های معمول مقابله با چنین مسائلی عبارتند از: مثال‌ها. مثالی از مسئله ان پی سخت در تصمیم‌گیری مسئله جمع زیرمجموعه‌است که به این صورت است: با توجه به مجموعه‌ای از اعداد صحیح، هیچ زیر مجموعه غیر تهی از
از اعداد صحیح، هیچ زیر مجموعه غیر تهی از آن‌ها به صفر اضافه می‌شود؟ این یک مسئلهٔ تصمیم‌گیری است، و برای ان پی کامل اتفاق می‌افتد. مثال دیگر ان پی سخت مسئله بهینه‌سازی پیدا کردن حداقل هزینه مسیر چرخه‌ای از طریق تمام گره‌ها از یک گراف وزندار است که به عنوان مسئله فروشنده دوره گرد شناخته شده‌است. مسائل تصمیم‌گیری ای هستند که ان پی سخت هستند اما ان پی کامل نیستند، برای مثال مسئله توقف. این مسئله ایست که می‌پرسد «با توجه به یک برنامه و ورودی، آیا همیشه اجرا خواهد شد؟». این یک سؤال بله/خیر است، بنابراین یک
خواهد شد؟». این یک سؤال بله/خیر است، بنابراین یک مسئله تصمیم‌گیری است. ثابت کردن که مسئلهٔ توقف ان پی سخت است اما نه ان پی کامل آسان است. برای مثال مسئله بولی قابل راضی کردنی می‌تواند به وسیلهٔ تبدیل آن به توضیحات ماشین تورینگ که برای تخصیص تمام داده‌های درست تلاش می‌کند و زمانی که یکی را پیدا کند که فرمول را به توقف قانع کند و درغیراینصورت به یک حلقه بی‌نهایت می‌رود، به مسئله توقف کاهش پیدا کند. همچنین به راحتی می‌توان دید که مسئله توقف ان پی نیست از آنجا که تمام مسائل در ان پی در تعداد دستورالعمل‌های
که تمام مسائل در ان پی در تعداد دستورالعمل‌های محدود قابل تصمیم‌گیری هستند، درصورتی‌که مسئله توقف به‌طور کلی این‌طور نیست. مسئله‌های ان پی سختی هم وجود دارند که نه ان پی کامل هستند نه تصمیم ناپذیر. برای مثال زبان فرمول بولی اندازه‌گیری درست (True quantified Boolean formulas) در فضای چندجمله‌ای قابل تصمیم پذیر است اما غیر قطعی نشده زمان چندجمله‌ای است (مگر اینکه NP = PSPACE).