stanford-oval/wikipedia huggingface dataset:
الگوریتم جستجوی رشته
بررسی چند مورد از الگوریتم‌های معرفی شده > الگوریتم جستجوی رشته‌ی ساده‌لوحانه (Naïve string search algorithm)

آسان‌ترین و ناکارآمدترین راه برای آن‌که یک رشته و مکان آن را در یک متن پیدا کنیم، امتحان کردن یک به یک همه‌ی مکان‌هایی که آن رشته می‌تواند قرار بگیرد است. یعنی یک اشاره‌گر را به عنوان ابتدای الگو، روی متن جلو می‌بریم و بررسی می‌کنیم که آیا این اشاره‌گر، می‌تواند ابتدای یک تکرار از الگو در متن باشد یا خیر. برای این‌کار، کاراکترهای بعد از اشاره‌گر را دانه‌به‌دانه با الگو مقایسه می‌کنیم؛ در صورت عدم انطباق یکی از آن کاراکتر‌ها، مشخص می‌شود که اشاره‌گر در مکان فعلی نمی‌تواند نمایان‌گر یک تکرار برای رشته باشد، پس اشاره‌گر را یک واحد به جلو می‌بریم. و در صورتی تا انتهای مقایسه، هیچ تناقضی وجود نداشت، به این معنی است که اشاره‌گر به یک تکرار از الگو در متن اشاره می‌کند.
شبه‌کد جستجوی رشته‌ی ساده‌لوحانه:
procedure NaiveStringMatcher (T,P)
begin
  n=length(T);
  m=length(P);
  for s=0 to n-m do
    if P[1...m]=T[s+1...s+m] then
      print ("Pattern occurs with shift" s);
end
این الگوریتم از مرتبه زمانی  O(m(n-m+1))\in O(mn) است (فرض می‌کنیم که در این شبه‌کد، عمل مقایسه‌ی زیررشته‌ها به صورت کاراکتر به کاراکتر انجام خواهد شد).
بررسی چند مورد از الگوریتم‌های معرفی شده > جستجو بر پایه پذیرنده‌ی متناهی معین (Deterministic Finite Automata)

در این روش، ابتدا یک پذیرنده متناهی معین می‌سازیم که رشته‌هایی که حاوی الگوی مورد جستجوی ما هستند را بپذیرد؛ به این ترتیب که ابتدا یک زنجیره از State ها قرار می‌دهیم، که هر State نماینده‌ی یک مکان از الگو است (که تا آن‌جا روی الگو پیش رفته‌ایم). در واقع هر State نمایانگر یک پیشوند از الگو است. به غیر از یال‌های رو به جلو که با کاراکتر‌های متناظر الگو Label گذاری شده‌اند، هر State به‌ازای هر کاراکتر دیگر، به State ای قبل از خودش می‌رود. مثلاً State نماینده‌ی پیشوند  S، با یال  x به State نماینده‌ی پیشوند  P می‌رود، اگر و تنها اگر  P بزرگ‌ترین پیشوندی از الگو باشد که برای  Sx پسوند است. همچنین رأس انتهایی متناظر با آخرین کاراکتر الگو، رأس پذیرش است.
با خواندن کاراکتر از رشته متن و حرکت روی این DFA، هر بار که به State پذیرش برسیم، یک تکرار از الگو را در متن پیدا کرده‌ایم. همچنین با تعمیم این روش، می‌توان الگوریتمی را برای جست‌وجوی عبارت‌های منظم در متن طراحی کرد.
البته هزینه ساخت چنین پذیرنده‌ای زیاد است (در صورت استفاده از ایده‌ی الگوریتم KMP، می‌توان با زمان  O(m\Sigma ) این پذیرنده را ساخت) اما استفاده از آن سریع است.
DFA شکل زیر برای تشخیص دادن واژه‌ی MOMMY استفاده شده‌است:
بررسی چند مورد از الگوریتم‌های معرفی شده > روش‌های مبتنی بر اندیس

این الگوریتم‌های جستجو متن را پیش‌پردازش می‌کنند؛ بعد از ساختن زیررشته اندیسی (برای مثال درخت پسوندی یا آرایه پسوندی)، تعداد بارهایی که الگوی مورد جستجو در متن اتفاق افتاده‌است، به سرعت مشخص می‌شود؛ برای مثال یک درخت پسوندی را می‌توان در  \Theta (m)
ساخت و همه‌ی z رخ‌داد الگوی مورد نظر در متن را می‌توان در  \operatorname {O} (m+z)
پیدا کرد. این کار به سادگی با استفاده از یک بار جست‌و‌جوی عمق اول روی درخت پسوندی انجام می‌شود.
مراجع

↑  Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7
↑  Kleinberg، Jon؛ Tardos، Éva. Algorithm Design. Pearson. شابک ۹۷۸۰۳۲۱۲۹۵۳۵۴.
↑  Substring Index
پذیرنده متناظر با رشته‌ی MOMMY
آب‌توت (ممسنی)

| آب توت | آب توت |
| --- | --- |
روستا: روستا
آب توتموقعیت در ایراننمایش نقشه ایرانآب توتآب توت (استان فارس)نمایش نقشه استان فارس: آب توتموقعیت در ایراننمایش نقشه ایرانآب توتآب توت (استان فارس)نمایش نقشه استان فارس
مختصات: ۳۰°۱۷′ شمالی ۵۱°۳۸′ شرقی﻿ / ﻿۳۰٫۲۸۳°شمالی ۵۱٫۶۳۳°شرقی﻿ / 30.283; 51.633: مختصات: ۳۰°۱۷′ شمالی ۵۱°۳۸′ شرقی﻿ / ﻿۳۰٫۲۸۳°شمالی ۵۱٫۶۳۳°شرقی﻿ / 30.283; 51.633
کشور: ایران
استان: فارس
شهرستان: ممسنی
بخش: بخش مرکزی
دهستان: جوزار
جمعیت: ۲۱ نفر
آب توت روستایی از توابع بخش مرکزی شهرستان ممسنی در استان فارس ایران است.
جمعیت

این روستا در دهستان جوزار قرار دارد و براساس سرشماری مرکز آمار ایران در سال ۱۳۸۵، جمعیت آن ۲۱ نفر (۶خانوار) بوده‌است.
الگوریتم جستجوی دودویی

| 0 | 1 |
| --- | --- |
Visualization of the binary search algorithm where 7 is the target value: Visualization of the binary search algorithm where 7 is the target value
رده: الگوریتم جستجو
ساختمان داده: آرایه (ساختار داده)
کارایی بدترین حالت:  O(log n)
کارایی بهترین حالت: O(1)
کارایی متوسط: O(log n)
پیچیدگی فضایی: O(1)
الگوریتم جستجوی دودویی (به انگلیسی: Binary Search) یا جستجوی دودویی خوارزمی، تکنیکی است برای یافتن یک مقدار عددی از میان مجموعه‌ای از اعداد مرتب. این متد محدودهٔ جستجو را در هر مرحله به نصف کاهش می‌دهد، بنابراین هدف مورد نظر یا به زودی پیدا می‌شود یا مشخص می‌شود که مقدار مورد جستجو در فهرست وجود ندارد.
جستجوی دودویی فقط در آرایه‌های مرتب استفاده می‌شود. در این روش عنصر مورد نظر با خانه وسط آرایه مقایسه می‌شود اگر با این خانه برابر بود جستجو تمام می‌شود اگر عنصر مورد جستجو از خانه وسط بزرگتر بود جستجو در بخش بالایی آرایه و در غیر این صورت جستجو در بخش پایینی آرایه انجام می‌شود (فرض کرده‌ایم آرایه به صورت صعودی مرتب شده‌است) این رویه تا یافتن عنصر مورد نظر یا بررسی کل خانه‌های آرایه ادامه می‌یابد.
جستجوی دودویی نمونه‌ای از الگوریتمهای تقسیم و غلبه (به انگلیسی: Divide and conquer) می‌باشد.
مقدمه

پیدا کردن اندیس یک عنصر خاص در یک لیست مرتب شده مفید است زیرا با استفاده از اندیس داده شده می‌توان به سایر اطلاعات مربوط دست یافت.
فرض کنید داده ساختاری شامل مجموعه‌ای از اطلاعات نام آدرس و شماره تلفن و غیره‌است و آرایه ای که نام‌ها را دربردارد از ۱ تا N شماره‌گذاری شده‌است، یک در خواست می‌تواند این باشد: شماره فردی به نام X چند است. برای پاسخ دادن به این سؤال آرایه مورد نظر باید جستجو شده و اندیس مربوط به نام داده شده در صورت وجود برگردانده شود، در این حالت شماره تلفن ذخیره شده در آرایه تلفن‌ها در این اندیس، همان شماره فرد X است و به همین ترتیب برای آدرس و غیره نیز می‌توان عمل کرد.
خواص درخت دودویی

n تعداد گره‌ها در یک درخت دودویی کامل است و با استفاده از این فرمول می‌توان آن را یافت  n=2^{h+1}-1 (در آن h عمق درخت است)
N تعداد گره‌ها در یک درخت دودویی کامل است حداقل برابر  n=2^{h} و حداکثر برابر n=2^{h+1}-1 (h عمق درخت است)
L تعدادی از گره‌های برگ در درخت دودویی کامل است و با استفاده از فرمول  L=2^{h} محاسبه می‌گردد.
N تعداد گره‌ها در یک درخت دودویی کامل نیز می‌تواند با استفاده فرمول  n=2L-1 محاسبه می‌شود. (L، تعدادی از گره‌های برگ در درخت است)
تعدادی از لینک‌های تهی (فرزندان غایب از گره‌ها) در یک درخت دودویی کامل از n گره (n+1)
تعداد  n-L از گره‌های داخلی در یک درخت دودویی کامل از n گره (گره‌های غیر برگ)  \lfloor n/2\rfloor .
برای هر درخت غیر تهی با گره‌های برگ  n_{0} و  n_{2} گره‌ها از درجه 2   n_{0}=n_{2}+1.
اثبات:
N = تعداد کل گره
B = تعداد شاخه‌ها
مثال > بازی‌های حدس شماره

این بازی‌های ساده با چیزی شبیه این شروع می‌شوند:" من عددی را بین ۴۰ و ۶۰ در نظر گرفته‌ام و تو آن را حدس می‌زنی و من با این پاسخ‌ها تو را راهنمایی می‌کنم: کمتر، بیشتر و بله!
فرض کنید تعداد اعداد ممکن برابر N است، بنابراین  \lceil \log _{2}N\rceil  سؤال لازم است تا عدد مورد نظر پیدا شود چون هر سؤال فضای جستجو را نصف می‌کند.
حتی اگر محدودهٔ اعداد مورد نظر نا محدود باشد (یعنی توسط N محدود نشده باشد) باز هم می‌توان با حداکثر  2\lceil \log _{2}k\rceil  مرحله (که K عدد انتخاب شده‌است) عدد مورد نظر را یافت. بدین ترتیب که با شروع از یک و دو برابر کردن آن در هر مرحله ابتدا مرز بالایی را پیدا نموده و سپس عدد خواسته شده را پیدا می‌کنیم. به عنوان مثال اگر عدد انتخاب شده ۱۱ باشد ما می‌توانیم ترتیب پرسش‌های زیر را برای پیدا کردن عدد دنبال کنیم: ۱ ← ۲ ← ۴ ← ۸ ← ۱۶ ← ۱۲ ← ۱۰ ← ۱۱.
هم چنین می‌توان این تکنیک را گسترش داد تا شامل اعداد منفی نیز بشود، به عنوان مثال حدس‌های زیر دنبال می‌شوند تا عدد ۱۳- پیدا شود: ۰ ← ۱- ← ۲- ← ۴- ← ۸- ← ۱۶- ← ۱۲- ← ۱۴- ← ۱۳-.
مثال > لیست‌های کلمات

انسان‌ها معمولاً ترکیبی از جستجوی دودویی و الگوریتم‌های جستجوی الحاقی را هنگام جستجوی دفترچه تلفن به کار می‌برند. بعد از حدس اولیه ما از این حقیقت استفاده می‌کنیم که ورودی‌ها مرتب اند و در نتیجه سریع تر به هدف می‌رسیم. مثلاً وقتی به دنبال «کریمی» می‌گردیم اگر «گنجی» و «قلی پور» پیدا شوند ما می‌توانیم به صفحه‌ای بین حدس‌های قبلی مراجعه کنیم و اگر مثلاً «کمالی» را نشان می‌داد می‌دانیم که صفحهٔ مورد نظر جایی بین «قلی پور» و «کمالی» خواهد بود.
تابع

برای این که وارد جزئیات تابع شویم باید قراردادهای رسمی تری را تعریف کنیم. ایده اولیه این است که داده ساختاری وجود دارد که به صورت آرایه A نمایش داده می‌شود، و المان‌های آن به صورت A(1), A(2),…,A توصیف می‌شوند و به هر ترتیبی قابل دستیابی‌اند.
داده ساختاری شامل دادهٔ دیگری به نام Key می‌شود، آرایه به گونه‌ای مرتب می‌شود که A(1).Key <= A(2).Key و ….
هدف این است که مقدار x داده شده و اندیس p پیدا شود به‌طوری‌که A(p).Key = x.
برای آغاز محدوده‌ای که باید جستجو شود کل داده‌هایی است که با متغیرهای L و R مشخص می‌شود و این مرزها در هر بار تکرار الگوریتم کاهش می‌یابند.
پیاده‌سازی > تکرار

یکی از روش ها برای پیدا کردن عنصر مورد نظر x در یک آرایه بنام A روش تکرار است،که مراحل زیر را شامل می شود:
1.دو متغیر i و j به ترتیب مقادیر اولیه 0 و n-1 را می گیرند.(n طول آرایه مورد نظر است.)
2.تا زمانیکه  i\neq j است مراحل زیر را اجرا می کنیم:
2.1.متغیر k مقدار   \left\lceil {\frac {i+j}{2}}\right\rceil  را که همان سقف  {\frac {i+j}{2}}  است را می گیرد.
2.2.اگر  A[k]>x باشد، j مقدار k-1  میگیرد.
2.3.اگر  A[k]\leq x باشد، i مقدار k را میگیرد.
3.حال  i=j است،اگر  A[i]=xبود، i را خروجی میدهیم در غیر این صورت خروجی نخواهیم داشت.
Niklaus Wirth الگوریتم تکرار را در پاسکال ارائه کرده‌است:
i := 1;
 j := N; {array size: var A: array [1..N] of integer}
 repeat
 k := (i + j) div 2;
 if x> A[k] then
 i := k + 1
 else
 j := k - 1;
 until (A[k] = x) or (i> j);
پیاده‌سازی > بازگشتی

پیاده‌سازی متداول این تابع توسط الگوریتم بازگشتی زیر می‌باشد:
BinarySearch(A[0..N-1], value, low, high) {
 if (high <low)
 return -1 // not found
 mid = low + ((high - low) / 2)  // Note: not (low + high) / 2 !!
 if (A[mid]> value)
 return BinarySearch(A, value, low, mid-1)
 else if (A[mid] <value)
 return BinarySearch(A, value, mid+1, high)
 else
 return mid // found
 }
پیاده‌سازی متداول این تابع توسط الگوریتم بازگشتی در سی شارپ به صورت زیر می‌باشد:
static bool BinarySearch(int[] A, int x, int i, int j) {
 if (i> j)
 return false;
 int m = (i + j) / 2;
 if (x> A[m])
 return BinarySearch(A, x, m + 1, j);
 else if (x <A[m])
 return BinarySearch(A, x, i, m - 1);
 else
 return true;
 }
دیگر کاربردها > یافتن عنصر سمت چپ

برای یافتن عنصر سمت چپ عنصر مورد نظرمان یعنی T در آرایه A به ترتیب زیر عمل میکنیم:
1.به ترتیب به L و R  مقادیر اولیه 0 و n را می دهیم.
2.تا زمانیکه L<R باشد مراحل زیر را تکرار میکنیم:
2.1.مقدار  \left\lfloor {\frac {L+R}{2}}\right\rfloor  را به m نسبت می دهیم که همان جزء صحیح  {\frac {L+R}{2}} می باشد.
2.2.اگر  A[m]<T باشد،L مقدار m-1  را میگیرد.
2.3.اگر  A[m]\geq T باشد،R مقدار m  را میگیرد.
3.مقدار L خروجی داده می شود.
شبه کد زیر این مراحل را نشان می دهد:
binary_search_leftmost(A, n, T):
    L = 0
    R = n
    while L < R:
        m = floor((L + R) / 2)
        if A[m] < T:
            L = m + 1
        else:
            R = m
    return L
دیگر کاربردها > یافتن عنصر سمت راست

برای یافتن عنصر سمت چپ عنصر مورد نظرمان یعنی T در آرایه A به ترتیب زیر عمل میکنیم:
1.به ترتیب به L و R  مقادیر اولیه 0 و n را می دهیم.
2.تا زمانیکه L<R باشد مراحل زیر را تکرار میکنیم:
2.1.مقدار  \left\lfloor {\frac {L+R}{2}}\right\rfloor  را به m نسبت می دهیم که همان جزء صحیح  {\frac {L+R}{2}} می باشد.
2.2.اگر  A[m]>T باشد،R مقدار m  را میگیرد.
2.3.اگر  A[m]\leq T باشد،L مقدار m+1  را میگیرد.
3.مقدار R-1 خروجی داده می شود.
شبه کد زیر این مراحل را نشان می دهد:
binary_search_rightmost(A, n, T):
    L = 0
    R = n
    while L < R:
        m = floor((L + R) / 2)
        if A[m] > T:
            R = m
        else:
            L = m + 1
    return R - 1
تکرار برای N <64
سینتیک لایه نازک

لایه نازک. یکی از پرکاربردترین مباحث در علم مواد میباشد . این لایه در ویژگی های الکتریکی، مکانیکی، نوری و ... میتواند به طور جدی اثر گذار بوده و بتواند خواص جدیدی را به ماده ما اضافه نماید .(برای اطلاع بیشتر به صفحه لایه نازک مراجعه نمایید )
جدا از مباحث تکنولوژیکی لایه نازک، مبحث بررسی سینتیک این لایه نیز مهم است . برای اثبات سینتیک این لایه میتوان از قانون دوم فیک استفاده نمود . این لایه بی نهایت میباشد اما ما میتوانیم دو لایه نیمه بی نهایت را در نظر گرفته و کار را برای خودمان ساده تر سازیم .
برای یاد آوری فرم کلی قانون دوم فیک بدین صورت میباشد :


برای حل معادلات دیفرانسیلی نیازمند شرایط مرزی و اولیه هستیم :
1- غلظت در x بی نهایت برابر صفر میباشد .
2- غلظت در x منفی بی نهایت هم برابر صفر است .
3- در زمان صفر و مکان صفر مقدار ذرات N ، i میباشد .
kinetic of thin layer
حال با استفاده از شرایط مرزی و اولیه نسبت به حل این معادله اقدام میکنیم :
کاربرد سینتیک لایه نازک :

انتشار بی نهایت گذرا یک نمایه غلظت دلخواه محلول لایه نازک توسعه یافته در بخش آخر را می توان برای ساخت راه حل هایی برای انتشار گذرا نمودار های انتشار پیچیده تر با استفاده از مفهوم برهم نهی خطی ، همانطور که به صورت شماتیک در شکل  زیر نشان داده شده است، استفاده کرد. ایده اصلی این است که میتوان با استفاده از بخش بخش کردن هر قسمت نسبت به ساخت معادله کلی اقدام نمود . سپس پاسخ انتشار گذرای کلی سیستم را می توان از پاسخ انتشار گذرا یکپارچه محاسبه کرد.
که به صورت کلی فرمول آن به شکل زیر است:
لایه های با غلظت متفاوت
فرمول نمودار غلظت پیچیده
الگوریتم جستجو

در علوم کامپیوتر و ریاضیات، یک الگوریتم جستجو، الگوریتمی است که یک مسئله را به عنوان ورودی می‌گیرد و بعد از ارزیابی کردن راه حل‌های ممکن، یک راه حل برای آن مسئله برمی‌گرداند. مجموعهٔ راه حل‌های ممکن برای یک مسئله را فضای جستجو می‌نامند. بعضی از الگوریتم‌ها که با عنوان الگوریتم‌های ناآگاهانه شناخته می‌شوند الگوریتم‌هایی هستند که از متدهای ساده‌ای برای جستجوی فضای نمونه استفاده می‌کنند. در حالی که الگوریتم‌های آگاهانه با استفاده روش‌هایی مبتنی بر دانش در بارهٔ ساختار فضای جستجو، می‌کوشند تا زمان جستجو را کاهش دهند.
رده‌بندی

در کتاب راسل این الگوریتم‌ها به شکل زیر رده‌بندی شده‌اند.
الگوریتم‌های ناآگاهانه
الگوریتم نخست-پهنا
الگوریتم نخست-ژرفا
الگوریتم‌های آگاهانه
الگوریتم نخست-بهترین
الگوریتم مکاشفه‌ای
جستجوی ناآگاهانه

یک الگوریتم جستجوی ناآگاهانه الگوریتمی است که به ماهیت مسئله کاری ندارد. از این رو می‌توانند به‌طور عمومی طراحی شوند و از همان طراحی برای محدودهٔ عظیمی از مسائل استفاده کنند، این امر نیاز به طراحی انتزاعی دارد. از جمله مشکلاتی که این چنین الگوریتم‌هایی دارند این است که اغلب فضای جستجو بسیار بزرگ است و نیازمند زمان زیادی (حتی برای نمونه‌های کوچک) می‌باشد. از این رو برای بالا بردن سرعت پردازش غالباً از الگوریتم‌های آگاهانه استفاده می‌کنند.
در این نوع الگوریتم‌ها، اگر اطلاعات اضافی دربارهٔ نودهایی که هنوز بیان و بسط داده نشده‌اند نداشته باشد تا بتواند تصمیم بگیرد که ابتدا کدام نود را بررسی نماید به عبارت دیگر روش‌های جستجویی که از مکاشفه استفاده نمی‌کنند غیر فعال هستند.
روش‌های جستجوی ناآگاهانه عبارتند از:
الگوریتم جستجوی اول سطح
الگوریتم جستجوی اول عمق
الگوریتم جستجو با هزینه یکنواخت
الگوریتم جستجوی عمقی محدود شده
جستجوی عمق اول عمیق‌کننده تکراری
الگوریتم جستجوی دو طرفه
جستجوی لیست

الگوریتم‌های جستجوی لیست شاید از ابتدایی‌ترین انواع الگوریتم‌های جستجو باشند. هدف آن پیدا کردن یک عنصر از مجموعه‌ای از کلید هاست (ممکن است شامل اطلاعات دیگری مرتبط با آن کلید نیز باشد). ساده‌ترین این الگوریتم‌ها، الگوریتم جستجوی ترتیبی است که هر عنصر از لیست را با عنصر مورد نظر مقایسه می‌کند. زمان اجرای این الگوریتم از (O(n است وقتی که n تعداد عناصر در لیست باشد. اما می‌توان از روش دیگری استفاده کرد که نیازی به جستجوی تمام لیست نباشد. جستجوی دودویی اندکی از جستجوی خطی است. زمان اجرای آن از(O(lgn است. این روش برای لیستی با تعداد دادهٔ زیاد بسیار کار آمد تر از روش الگوریتم جستجوی ترتیبی است. اما در این روش لیست باید قبل از جستجو مرتب شده باشد.جستجو با میان یابی برای داده‌های مرتب شده با تعداد زیاد و توزیع یکنواخت، مناسب تر از جستجوی دودویی است. زمان اجرای آن به‌طور متوسط ((O(lg(lgn است ولی بدترین زمان اجرای آن (O(n می‌باشد.
الگوریتم graver الگوریتم پله‌ای است که برای لیست‌های مرتب نشده‌استفاده می‌شود.
جدول درهم‌سازی نیز برای جستجوی لیست به کار می‌رود. به‌طور متوسط زمان اجرای ثابتی دارد. اما نیاز به فضای اضافه داشته و بدترین زمان اجرای آن از(O(n است.
جستجوی درختی

الگوریتم‌های جستجوی درختی، قلب شیوه‌های جستجو برای داده‌های ساخت یافته هستند. مبنای اصلی جستجوی درختی، گره‌هایی است که از یک ساختمان داده گرفته شده‌اند. هر عنصر که بخواهد اضافه شود با داده‌های موجود در گره‌های درخت مقایسه می‌شود و به ساختار درخت اضافه می‌شود. با تغییر ترتیب داده‌ها و قرار دادن آن‌ها در درخت، درخت با شیوه‌های مختلفی جستجو می‌شود. برای مثال سطح به سطح (جستجوی نخست-پهنا) یا پیمایش معکوس درخت (جستجوی نخست-ژرفا). از مثال‌های دیگر جستجوهای درختی می‌توان به جستجوی عمقی تکرار شونده، جستجوی عمقی محدود شده، جستجوی دوطرفه، جستجوی هزینه یکنواخت اشاره کرد.
جستجوی گراف

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

در یک جستجوی آگاهانه، از نوع خاصی از مسائل به عنوان راهنما استفاده می‌شود. یک گونهٔ خوب یک جستجوی آگاهانه با کارایی قابل توجهی نسبت به جستجوی ناآگاهانه به وجود می‌آورد. الگوریتم‌های برجستهٔ کمی از جستجوی آگاهانهٔ یک لیست وجود دارد. یکی از این الگوریتم‌ها hash table با یک تابع hash که برمبنای نوع مسئله‌ای که دردست است می‌باشد. بیشتر الگوریتم‌های جستجوی آگاهانه، بسطی از درخت‌ها هستند. همانند الگوریتم‌های ناآگاهانه، این الگوریتم‌ها برای گراف‌ها نیز می‌توانند به کار روند.
جستجوی خصمانه

در یک بازی مثل شطرنج، یک درخت بازی شامل تمام حرکات ممکن توسط هر دو بازیکن و نتایج حاصل از ترکیب این حرکات وجود دارد، و ما می‌توانیم این درخت را جستجو کرده و مؤثرترین استراتژی برای بازی را بیابیم. این چنین مسائلی دارای مشخصهٔ منحصر به فردی هستند. برنامه‌های بازی‌های رایانه‌ای، و همچنین فرم‌های هوش مصنوعی مثل برنامه‌ریزی ماشین‌ها، اغلب از الگوریتم‌های جستجو مثل الگوریتم minimax (مینیمم مجموعه‌ای از ماکزیمم‌ها)، هرس کردن درخت جستجو و هرس کردن آلفا-بتا استفاده می‌کنند.
الگوریتم اف اسکن

(FSCAN) F-SCAN یک الگوریتم زمان‌بندی دیسک است که حرکت آرم و هد دیسک در سرویس دهی درخواست‌های خواندن و نوشتن را تعیین می‌کند. طی روبش تمام درخواست‌ها در صف اول داده‌ها ی اولیه هستند و تمام درخواست‌های جدید در صف داده‌های ثانویه قرار داده می‌شوند. بنابراین سرویس دهی به درخواست‌های جدید به تأخیر می‌افتد تا زمانی که تمام درخواست‌های قدیمی تحت پردازش قرار گیرد. هنگامی که روبش پایان می‌یابد آرم به تمام صف داده‌های اولیه برده می‌شود و دوباره سرتاسر آن شروع می‌شود.
الگوریتم اف اسکن > تحلیل الگوریتم

الگوریتم F-SCAN مطابق N-Step-SCAN از چسبانکی آرم جلوگیری می‌کند در صورتی که در الگوریتم‌های دیگر مانند SSTF, SCAN و C-LOOK چنین امری اتفاق نمی‌افتد. چسبانکی آرم در الگوریتم‌های دیگر وقتی رخ می‌دهد که هجمه‌ای از درخواست‌ها برای مسیر مشترک موجب می‌شود تا آرم دیسک توقف پردازش در آن مسیر گردد، از این رو ترجیح داده می‌شود که هیچ جستجویی برای درخواست‌های آن مسیری که در آن است مورد تأیید واقع نشود، از آن جا که F-SCAN درخواست‌ها را به دو صف داده‌ها جدا می‌کند، روبرو شدن با درخواست‌های جدید به صف داده‌های در حال انتظار برده می‌شود، آرم روبش خود را تا مسیر بیرونی ادامه می‌دهد و از این رو چسبانکی پیش روی الگوریتم نیست. یک معاوضه آشکار وجود دارد به طوری که درخواست‌ها در صف داده‌های در حال انتظار باید انتظار طولانی‌تر تا برای به اجرا درآوردن بکشند، اما در مبادله F-SCAN برای تمام درخواست‌های رضایت بخش تر است.
دیگر متغیرها شامل موارد زیر می‌شود:
الگوریتم آسانسور –اسکن
LOOK (C-LOOK)
N-Step-SCAN
سمندرک آلپی

| سمندرک آلپی محدودهٔ زمانی: Late Miocene تا امروزه  PreЄ Є O S D C P T J K Pg N      | سمندرک آلپی محدودهٔ زمانی: Late Miocene تا امروزه  PreЄ Є O S D C P T J K Pg N      |
| --- | --- |
سمندرک آلپی، Ichthyosaura alpestris: سمندرک آلپی، Ichthyosaura alpestris
وضعیت حفاظت: وضعیت حفاظت
 کمترین نگرانی  (IUCN 3.1):  کمترین نگرانی  (IUCN 3.1)
رده‌بندی علمی: رده‌بندی علمی
فرمانرو:: جانوران
شاخه:: طنابداران
رده:: دوزیستان
راسته:: سمندر
تیره:: سمندران
سرده:: Ichthyosaura
گونه:: alpestris
سمندرک آلپی (نام علمی: Ichthyosaura alpestris) نام یک گونه از تیره سمندران است.
زیردریایی کلاس هتل

| 0 | 1 |
| --- | --- |
پیشینه: پیشینه
مالک: 
اطلاعات کلی کلاس: اطلاعات کلی کلاس
تکمیل شده:: ۸
بازنشسته:: ۸
حفظ شده:: ۰
مشخصات اصلی: مشخصات اصلی
وزن::  ۵٬۵۰۰ تن بزرگ (۵٬۵۸۸ تن)
درازا::  ۱۱۴ متر (۳۷۴ فوت ۰ اینچ)
پهنا::  ۹٫۲ متر (۳۰ فوت ۲ اینچ)
آبخور::  ۷٫۳۱ متر (۲۴ فوت ۰ اینچ)
سرعت::  ۱۸ گره (۲۱ مایل بر ساعت؛ ۳۳ کیلومتر بر ساعت)
زیردریایی کلاس هتل (به انگلیسی: Hotel-class submarine) یک کلاس از زیردریایی است که طول آن ۱۱۴ متر (۳۷۴ فوت ۰ اینچ) می‌باشد.
امید رایان

| Ryan's Hope | Ryan's Hope |
| --- | --- |
سازنده: Claire Labine Paul Avila Mayer
بازیگران: هلن گلگر Bernard Barrow Michael Levin کیت مولگرو Ilene Kristen Ron Hale نانسی آدیسون John Gabriel Louise Shaffer ارل هیندمن Malcolm Groome Karen Morris-Gowdy Cali Timmins
کشور سازنده: United States
شمار فصل‌ها: ۱۳
شمار قسمت‌ها: ۳٬۵۱۵
تولید: تولید
تهیه‌کننده‌های اجرایی: Claire Labine (1975–82) Paul Avila Mayer (1975–82) Ellen Barrett (1982–83) Joseph Hardy (1983–88) Felicia Minei Behr (1988–89)
مدت: 30 minutes (۱۹۷۵–۱۹۸۹)
تولیدکننده‌ها: Labine-Mayer Productions (1975–1980) شرکت پخش رسانه‌ای آمریکا
پخش: پخش
شبکهٔ اصلی: شرکت پخش رسانه‌ای آمریکا
انتشار اولیه: ۷ ژوئیه ۱۹۷۵ (۱۹۷۵-07-۰۷) – ۱۳ ژانویه ۱۹۸۹ (۱۹۸۹-01-۱۳)
انتشار: انتشار
نمایش‌های مشابه: General Hospital
امید رایان (انگلیسی: Ryan's Hope) یک سریال آبکی است که از ۷ ژوئیه ۱۹۷۵ تا ۱۳ ژانویه ۱۹۸۹ در شرکت پخش رسانه‌ای آمریکا پخش می‌شد.
سالوو داکویستو

سالوو داکویستو
سالوو داکویستو (به ایتالیایی: Salvo D'Acquisto)، زادهٔ ۱۷ اکتبر ۱۹۲۰، عضو کارابینیری ایتالیا در زمان جنگ جهانی دوم بود. سالوو بعد از مرگش مدال طلای نظامی ایتالیا را دریافت کرد. او جان ۲۲ شهروند غیرنظامی را از دست سربازان آلمانی نجات داد.
زندگی

سالوو در شهر ناپل متولد شد. بین هشت فرزند خانواده او فرزند ارشد بود. پدرش در یک کارخانه مواد شیمیایی کار می‌کرد. او در سن ۱۴ سالگی مدرسه را رها کرد، این مسئله در آن زمان بین فرزندان پسر طبقه کارگر مرسوم بود.
او در سال ۱۹۳۹ برای پیوستن به کارابینیری داوطلب شد. یک سال بعد، چند ماه قبل از شروع جنگ جهانی دوم به لیبی رفت. کمی بعدتر از ناحیه پا مجروح شده، و سپس دچار بیماری مالاریا شد. او سپس به ایتالیا بازگشت و در سال ۱۹۴۲ به مدرسه افسری رفت. او فارغ‌التحصیل شد و به عنوان معاون گروهبان در یک پاسگاه در نزدیکی شهر رم مشغول به انجام وظیفه شد.
زندگی > چگونگی مرگ

در هشتم سپتامبر، دسته ای از سربازان نازی در نزدیکی یک مجموعه نظامی که پیشتر توسط نیروهای ایتالیایی استفاده می‌شد اتراق کردند. این ناحیه در منطقه زیر نظر پاسگاهی بود که سالوو در آن کار می‌کرد. در روز ۲۲ سپتامبر سربازان آلمانی مشغول بازرسی جعبه مهمات رها شده بودند که ناگهان یک انفجار رخ داد، و دو سرباز کشته و دو نفر دیگر زخمی شدند.
فرمانده، لشکر تقصیر مرگ سربازان را گردن افراد «بی‌نام محلی» انداخته و خواستار همکاری کارابینیری شد. در آن روز پاسگاه تحت فرماندهی موقت سالوو بود. صبح روز بعد سالوو در حالی که مقداری اطلاعات جمع‌آوری کرده بود، سعی کرد به افسران آلمانی توضیح دهد که مرگ سربازان فقط یک حادثه بوده، اما آلمانی‌ها اصرار بر روایت خود از حادثه داشتند و خواستار اقدامات تلافی جویانه شدند.
در ۲۳ سپتامبر آلمانی‌ها شروع به جستجو و بازداشت ۲۲ نفر از ساکنان محلی نمودند. در بازجویی همه شهروندان گفتند که آنها بی گناه بودند. هنگامی که آلمانی‌ها دوباره دربارهٔ نام افراد مسئول انفجار پرسیدند، سالوو داکویستو پاسخ داد که هیچ‌کس مسئول انفجار نبوده و انفجار اتفاقی بوده، آلمانی‌ها او را تمسخر نموده، به او توهین کردند و پس از مدتی ضرب و شتم لباس نظامی او را پاره کردند.
ناگهان به زندانیان بیل دادند و آنها را مجبور کردند برای خودشان یک گور دسته جمعی حفر کنند که پس از اعدام در آن دفن شوند. کار حفاری قدری طول کشید و پس از مدتی کار حفر به پایان رسید، آشکار بود که آلمانی‌ها در تهدید خود بسیار جدی بودند. سالوو داکویستو به جرمی که می‌خواستند ۲۲ نفر را بخاطرش اعدام کنند، «اعتراف» کرد؛ و گفت که او به تنهایی مسئول «قتل» بوده و باقی غیر نظامیان بی گناه بودند و خواستار آن شد که آنها را آزاد کنند. یکی از کسانی که آزاد شد جوان ۱۸ ساله ای بود که شاهد اعدام سالوو آکویستو با جوخه آتش بود. سالوو ۲۲ سال بیشتر نداشت. باقی مانده‌های بدن سالوو داکویستو در کلیسای سانتا کلارای شهر ناپل دفن شد.
میراث

او به عنوان یک شهید و صاحب مقام شفاعت در کلیسای کاتولیک رومی شناخته می‌شود. در ۲۶ فوریه سال ۲۰۰۱ پاپ ژان پل دوم در صحبت خود با کارابینیری اظهار داشت: «تاریخ کارابینیری ایتالیا نشان می‌دهد که اوج تقدس را می‌توان در انجام وظیفه وفادارانه نسبت به مملکت به دست آورد. من فکر می‌کنم که همکار عزیز شما سالوو داکویستو، که از ارتش ایتالیا پس از مرگش مدال طلا دریافت کرد، صاحب مقام شفاعت نزد خداوند می‌باشد.»
در سال ۱۹۷۴، فیلم Salvo D'acquisto ساخته شد. این فیلم به کارگردانی Romula Guerrieri و بازیگر ماسیمو رانیری زندگی و ایثار سالوو را به نمایش کشید.
یک تمبر پستی در ایتالیا در سال ۱۹۷۵ به بزرگداشت او صادر شد. .
نقل قول

«ما باید خودمان را با اراده خدا مطابقت دهیم، و هرگونه رنج و قربانی را در این راه بپذیریم.»[نیازمند منبع]
آرامگاه سالوو در سانتا کیارای شهر ناپل
مجسمه سالوو داکویستو روبروی ایستگاه قطار در شهر سیسترنا ایتالیا
لوح یادبود سالوو داکویستو