پروفایل من
امیرحسین مومنی
تماس با من
نویسنده (های) وبلاگ
آرشیو وبلاگ
کامپیوتر چگونه شطرنج بازی می‌کند؟ - آناتومی یک نرم‌افزار شطرنج در سپهر ایرانی نویسنده: امیرحسین مومنی - یکشنبه ۸ خرداد ۱۳٩٠

http://iranto.ca/Fa/images/stories/news5/chess.jpg

 



شطرنج

چرا بررسی شطرنج کامپیوتری؟

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

گذشته از این، بررسی مکانیزم شطرنج‌بازیِ کامپیوتر یک موضوع تأمل‌برانگیز است و به شما نوعی بینش شبه فلسفی درباره تفاوت رویکرد انسان و ماشین نسبت به نوع خاصی از معماها می‌دهد. ضمن این‌که، دریچه ذهن شما را به روی برخی اشتباهات رایج ذهن انسان بازمی‌کند که منجر به تصمیم‌گیری‌های اشتباه و در نتیجه پیامدهای نامطلوب می‌شوند. از این رهیافت می‌توانید ببینید که از دیدگاه علمی یکی از نظریه‌های مربوط به مبنای اشتباه‌کردن انسان هنگام تصمیم‌گیری میان گزینه‌های مختلف چیست.

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

این موضوع نکته دیگری را نیز روشن می‌کند و آن این‌که، چگونه برنامه‌نویسان باهوشی که توسعه‌دهنده مدل برنامه‌نویسی شطرنج بوده‌اند، به منطق این اشتباهات پی‌برده‌اند و سعی کرده‌اند به کامپیوتر یاد دهند با پیش‌بینی این اشتباهات، از انسان پیش‌دستی کند. جالب اینجاست که در مدل برنامه‌نویسی شطرنج، دغدغه کامپیوتر نه سرمایه‌گذاری روی اشتباهات حریف، بلکه چاره‌جویی در مورد اشتباهات احتمالی خودش است! از آن جالب‌تر این‌که، بازی شطرنج جزء بازی‌های اصطلاحاً <با اطلاعات کامل> طبقه‌بندی می‌شود. بازی‌هایی که هر دو طرف دستشان برای یکدیگر رو شده است.

بنابراین، وقتی می‌فهمیم که به‌رغم اطلا‌ع طرفین از وضعیت مهره‌های یکدیگر، این همه پیچیدگی در تجزیه ‌و تحلیل وضعیت‌های پیش رو وجود دارد، می‌توانید حدس بزنید علت این همه ناکامی آدمیزاد در پیش‌بینی سرنوشت بسیاری از تحولات چیست؛ آن هم هنگامی که دست حریف برایش رو نیست.

در نهایت، مطالعه و بررسی مدل برنامه‌نویسی شطرنج یک تمرین فکری خوب و آموزنده برای همه برنامه‌نویسان ماجراجوست و می تواند ذهن کاوشگر آنان را بیش از پیش ورزیده کند. به قول معروف، هم فال است و هم تماشا!

اثر افق‌

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

 

لابد شنیده‌اید که کامپیوتر هنگام شطرنج بازی تا چند مرحله جلوتر را در ذهن خودش مرور می‌کند و پیامدهای هر یک از حرکت‌های فرضی را در هر مرحله ارزیابی می‌کند. واقعاً هم همین‌طور است.

حالا فرض کنید یک نرم‌افزار طوری برنامه‌ریزی شده است که تا هفت مرحله جلوتر را می‌تواند محاسبه و ارزیابی کند. تصور کنید یک کامپیوتر با استفاده از چنین الگویی ناگهان متوجه ‌شود که ممکن است در پنج نوبت دیگر مُهرهِ وزیرِ خودش را از دست بدهد و حتماً می‌دانید مهره وزیر چقدر مهم است.

بنابراین، باید جایی در منطق نرم‌افزارِ شطرنج، به کامپیوتر گفته شده باشد که در تصمیم‌سازی برای حرکت بعدی خودت <به وضعیت مهره وزیر اولویت بده.> البته از لحاظ تئوریِ مدرن شطرنج، می‌توان پرسید که آیا واقعاً ارزش یک مهره وزیر در سراسر یک بازی یکسان است؟ و آیا باید یک شطرنج باز در هر شرایطی به حفظ جان این مهره بیش از هر مهره دیگر اهمیت بدهد؟

 

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

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

<اثر افق> در شطرنج کامپیوتری که اولین بار توسط هانس برلینر مطرح شد، از این جهت جالب است که به‌گونه طنزآمیزی تبلور ماهیت بعضی از خطاهای انسانی نیز هست. به راستی خیلی از ما آدم‌ها دقیقاً به دلیل همین کوته‌بینی، اشتباه می‌کنیم. یعنی بارها در زندگی تصور می‌کنیم وقتی مشکلی در افق دیدمان نیست، یعنی آن مشکل وجود ندارد؛ در حالی که مشکل وجود دارد و کافی است یک گام به جلو برداریم تا آن را ببینیم، ولی تا آن گام را برنداریم، از دیدنش ناتوان هستیم. درست مثل زمانی که یک بطری نوشابه گازدار را ناگهان بدون حضورذهن باز می‌کنیم و تازه وقتی آن را باز کردیم و گازش بیرون جهید و پیراهنمان را کثیف کرد، یادمان می‌افتد که باید در بطری را آرام باز می‌کردیم.

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

 

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

درس دیگری که از این پدیده می‌توان گرفت این است که دنبال کردن خط سیر تحولات در هرجهت تا عمق x مرحله کار بیهوده‌ای است. بعضی از مسیرها مهم‌ترند. این مسیرها را باید تا عمق مثلاً ده یا پانزده نوبت بازی دنبال کرد و بعضی دیگر را باید تا عمق پنج مرحله دنبال و بعد از آن را رها کرد. اشتباه است اگر همه مسیرها را تا عمق مثلاً هفت نوبت دنبال کنیم. در این صورت چگونه باید تشخیص دهیم کدام مسیر اهمیت استراتژیک بیشتری دارد و کدام‌یک از مسیرها کم اهمیت‌تر هستند؟

این چیزی است که یک انسان هوشمند گاهی به صورت خودآگاه و گاهی ناخودآگاه انجام می دهد. به همین دلیل وقتی مثلاً شیئی را در اتاقمان گم می‌کنیم، تمام اتاق را به شعاع سه متر زیر و رو نمی‌کنیم. این کار نادرست است. پس با خود می‌گوییم کجاها را باید دقیق‌تر بگردیم؟ کجاها را باید یک نگاه سطحی بیندازیم؟ شما از کجا می‌فهمید برخی مناطق داخل اتاقتان اهمیت بیشتری برای پیدا کردن یک شی گمشده دارد؟

 

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

اثر افق یک موضوع مهم در معماری فکری یک نرم‌افزار شطرنج است، ولی تمامِ مسئله‌ای نیست که کامپیوتر باید حل کند. اثر افق فقط یک جنبه از مشکلات تکنیک‌های جست‌وجو است و تکنیک‌های جست‌وجو یکی از چهار ستون اصلی هر نرم‌افزار شطرنج هستند. کامپیوتر باید به حل سه مسئله محوری دیگر نیز فکر کند: چیدمان مهره‌ها، تولید حرکت، و ارزیابی، به ترتیب سه موضوع مهم دیگری است که هر نرم‌افزار شطرنج باید به آن فکر کند و در ادامه نیز به بررسی این چهار رکن می‌پردازیمچیدمان مهره‌هچیدمان مهره‌ها، عبارت است از تصویرسازی کامپیوتر از صفحه بازی. کامپیوتر چگونه باید صفحه بازی را <ببیند>؟ چگونه باید بفهمد این مهره‌ها کجا هستند؟

چگونه باید فهمید الان پنج مهره سیاه، هفت مهره سفید را تهدید می‌کنند؟ نرم‌افزارهای شطرنج عمدتاً از تکنیکی به نام bitboard برای دیدن صفحه بازی استفاده می‌کنند.

 

بیت بورد که ظاهراً اختراع شطرنج بازان شوروی سابق است، متشکل از یک آرایه 64 بیتی است که متناظر با 64 خانه شطرنج درنظرگرفته شده‌اند.

 

نرم‌افزارهای امروزی شطرنج از تعداد بسیار زیادی بیت‌بورد برای به تصویر کشیدن وضعیت مهره‌ها در ذهن خود استفاده می‌کنند. هر بیت از این آرایه ممکن است صفر یا یک باشد. وضعیت <یک> به معنی اشغال بودن خانه و وضعیت <صفر> به معنی خالی بودن خانه متناظر در صفحه شطرنج است. مثلاً یک بیت‌بورد ممکن است مربوط به خانه‌هایی باشد که توسط فیل سیاه اشغال شده‌اند. یک بیت بورد دیگر ممکن است مربوط به خانه‌هایی باشد که مهره‌های سفید،‌ مهره‌های سیاه را مورد حمله قرار داده‌اند و یک بیت بورد دیگر نشان دهد اسبی که در خانه 4e قرار دارد، کدام خانه‌ها را زیر نفوذ خود داردتولید حرکت‌

<تولید حرکت> قسمت دیگری از وظیفه نرم‌افزار است و منظور از آن این است که هنگامی که نوبت بازی به کامپیوتر می‌رسد، قبل از این که تصمیم بگیرد چه کار کند، باید بداند حرکت‌های مجاز او کدامند. در وهله نخست ممکن است به نظر برسد این کار آسان است، ولی به یاد بیاورید که هر مهره شطرنج قوانین حرکتی خاصی دارد. مثلاً شاهی که در حالت کیش است، قابل حرکت دادن نیست.

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

خوشبختانه در مدل نرم‌افزاری شطرنج از قوانین این بازی چندین ساختار یا آرایش داده‌ای مختلف استخراج شده است که می‌توانید آن‌ها را نوعی از <محاسبات قبلاً انجام شده> بنامید. این‌ها در واقع الگوهای آرایشی خاصی هستند که می‌توانند مسیر محاسبه برای به دست آوردن تمام حرکت‌های مجاز بعدی را کوتاه کنند. تکنیک‌های جست‌وجو

<تکنیک‌های جست‌وجو> قلب هر نرم‌افزار شطرنج هستند. منظور از <جست‌وجو> یافتن حرکت‌های خوب و مجاز بعدی است. مجاز بودنشان در مرحله تولید حرکت شناسایی شده است و ارزیابی میزان خوب یا بد بودن این حرکت‌ها و سرانجام انتخاب یکی از آن‌ها می‌ماند. این کار به واقع مشکل است. چنان که دیدید، اثر افق یکی از مسائلی است که باید حل شود. جست‌وجو در پایه‌ای‌ترین شکل آن با معادله‌ای به صورت b به توان n توصیف می‌شود که در آن b اصطلاحاً فاکتور انشعاب و n عمق حرکت است.

 

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

 

البته این الگوریتم‌ها برای رویارویی با مقولاتی مانند اثر افق طراحی نشده‌اند، بلکه صرفاً مسیر ارزیابی حالت‌های مختلف سود و زیان انجام دادن انواع حرکت‌های مجاز را کوتاه می‌کنند. از جمله الگوریتم‌های موفق می‌توان به الگوریتم نگا اسکوت، الگوریتم MTD)f) و الگورتیم تکرارشونده آلفابتا اشاره کرد.

اما علاوه بر الگوریتم‌های اصلی، در محاسبه حرکت‌های بعدی باید به فکر راهکارهایی برای مقابله با اثر افق نیز بود. مثلاً تیم توسعه کامپیوتر Deep Blue مفهوم <بسط‌های ویژه> یا Singular Extensions را توسعه دادند. این تکنیک می‌گوید: واضح است که در بازی شطرنج بعضی حرکت‌ها خیلی مؤثرتر و مهم‌تر از حرکت‌های دیگرند و نباید خیلی وقت تلف کرد تا به درست بودن آن ها پی برد.

به تعبیر خودمان، نباید در مورد انتخاب این حرکت‌ها زیاد تأمل کرد. مثلاً ممکن است به این نتیجه برسید که با دو حرکت دیگر می‌توانید وزیر حریف را بگیرید. تئوری بسط‌های ویژه می‌گوید وقتی به چنین موقعیت‌هایی برخورد می‌کنید، هوشمندانه‌تر این است که وقت بیشتری بگذارید و تا چند نوبت، بیشتر از مقدار پیش فرض خودتان برای محاسبه حرکت‌های بعدی، این مسیر را دنبال کنید؛ مبادا دام یا اشتباهی در کار باشد! این کار بهتر از این است که ماشین وار همه مسیرها را به یک اندازه دنبال کنید. ارزیابی‌

سرانجام مسئله چهارم دیگری که باید کامپیوتر در فکر آن باشد، مسئله <ارزیابی> وضعیت کلی بازی است. چگونه کامپیوتر باید بفهمد که الان از حریفش جلو است یا عقب؟ آیا در شرف پیروزی است یا شکست؟ باید برای نجات از شکست یا به تعویق انداختن آن برنامه‌ریزی کند یا به فکر تسریع پیروزی قریب‌الوقوع خود باشد؟ معمای <ارزیابی بازی> از جمله مهم‌ترین مسائل پیش روی برنامه‌نویسان شطرنج است. مسئله <تکنیک‌های جست‌وجو> حتی در پیچیده‌ترین شکلش در سرتاسر ساختار بازی شطرنج تابع یک سری قواعد عمومی است: اگرعمل A اتفاق بیفتد و سپس واکنش B روی دهد، آن‌گاه احتمال وقوع حالت C وجود دارد.

این مسیر ممکن است دوباره پس از دو نوبت بازیِ طرفین تکرار شود. در حالی که مسئله <ارزیابی> یک مسئله راهبردی و خاص هر مورد بازی شطرنج است و امکان ندارد آرایش کنونی بازی، تعداد مهره‌های طرفین و وضعیت قوت و ضعف آن‌ها پس از یک نوبت بازی طرفین مانند نوبت قبلی باشد. <ارزیابی> در ساده‌ترین شکلش شامل بررسی این واقعیت است که هر یک از دو حریف در هر مقطعی از بازی چند مهره دارند و این مهره‌ها صرف نظر از چیدمانشان چه ارزشی دارند. این در حقیقت نوعی ارزیابی کمّی از وضعیت بازی است.

تئوری شطرنج برای هر نوع مهره وزن مخصوصی قائل است. مثلاً می‌گویند وزیر نُه امتیاز می‌ارزد، رخ پنج، فیل چهار، اسب سه و پیاده یک امتیاز. به این ترتیب نرم افزار می‌تواند از فرمول (Sum (Ni * Vi استفاده کند که در آن مجموعِ حاصل‌ضرب Ni در Vi ‌به ازای هر نوع مهره برای یک حریف محاسبه می‌شود. در اینجا Ni تعداد مهره‌هایی از یک نوع و Vi ارزش هر نوع مهره است.

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

 

به عنوان مثال، تئوری کلاسیک شطرنج تأکید دارد که مهره‌های ضعیف‌تر بازی مثل فیل و اسب باید هرچه سریع‌تر به وسط معرکه آورده شوند. شاه خوب است که هرچه سریع‌تر به فکر رفتن به قلعه باشد و مهره‌های رخ و وزیر بهتر است در جای خود آرام بنشینند تا بازی به لحظات استراتژیک و سرنوشت‌ساز خود نزدیک شود. در تئوری مدرن شطرنج به جنبه‌های پیشرفته‌تری از بازی نیز اندیشیده می‌‌شود.

 

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

به این ترتیب می‌توان مدل هوشمند مصنوعی در یک نرم‌افزار شطرنج را چنین خلاصه کرد: این هوشمندی چهار رکن دارد:

یکم: <بینایی> نرم‌افزار

دوم: آگاهی از قوانین بازی‌

سوم: هوشمندی در جست‌وجو برای یافتن بهترین حرکت بعدی

چهارم: هوشمندی در سنجش وضعیت کنونی و ارزیابی میزان تحقق استراتژی انتخاب شده برای رسیدن به پیروزی نهایی یا دستیابی به اهداف میانی پی نوشت‌

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

 



لینک      نظرات ()      

مطالب اخیر
کلمات کلیدی وبلاگ
دوستان من
پایگاه اطلاع رسانی دفتر مقام معظم رهبری پايگاه اطلاع رساني دفتر نماينده ولي فقيه در استان و امام جمعه بوشهر سازمان تبلیغات اسلامی صدا و سیماي جمهوري اسلامي ايران مركز بوشهر پايگاه داده هاي فرهنگي- ديني پایگاه اینترنتی حاج حامد شاکرنژاد واحد مرکزی خبر موسسه شميم نخلستان بوشهر و كانون قرآْن مسجد ابوالفضل علیه السلام دفتر حفظ و نشر آثار حضرت آيت‌الله‌العظمی سيدعلی خامنه‌ای (مد‌ظله‌العالی) مؤسسه فرهنگي موعود شورای اسلامی شهر تهران شبکه آموزش سيما شبكه يك صدا و سيمای جمهوری اسلامی ايران شبكه جهاني جام جم رسانه بین الملل سیما آموزش نماز قرآن و عترت :: رادیو :: سرویس جهانی منتظرالمهدي مرکز جهانی اطلاع رسانی آل البیت علیه السلام مرکز جهانی اطلاع رسانی آل البیت علیه السلام 2 پايگاه تخصصى نهج البلاغه وابسته شميم انتظار خبرگزاری آينده روشن خبرگزاری قرآنی ايران كانون راهبردي، فرهنگي و آموزشی خیمه جامعه ی وبلاگ نویسان بوشهر تشكلهاي ديني و مراكز فرهنگي كشور 100 خاطره از شهدا || شهید چمران و ... جنبش عدالتخواه دانشجویی عصر انتظار دولت مهر آرشیو اخبار 20:30 یوزرنیم و پسورد نود 32 دنیای مجازی دانلود رایگان کتابهای کامپیوتری فقط عکس ..عکس ... عکس قالب های پرشین بلاگ جامعه ی وبلاگ نویسان بوشهر نسیــــــــم شمــال لغت نامه دهخدا گل آقا پایگاه مقاومت عاشقان ثارالله شیراز وب سایت امام خمینی ره آموزش نظامی پیامبر امید :: یا لثارات الحسین :: .::لاله های آسمانی::. پایگاه آموزشی خبری آی تی گل نرگس پایگاه آموزشی خبری آی تی گل نرگس دستمال آبی پایگاه عفاف و حجاب صفوف آهنین پارس تولز مرجع ابزار وبمستر ایران مرکز مشاوره ازدواج و خانواده من هنوز زنده ام باشگاه خبرنگاران جوان استان همدان کانون شاگردان شهداء استان بوشهر بچه های مشهد بسیجیان گمنام عطر ظهور پایگاه خبری دانشجویان دانشگاه آزاد کاشان عشق است خدا پایگاه مقاومت صاحب الزمان (عج) اردبیل پاینده باد جمهوری اسلامی ایران علمي فرهنگي عمار هرمزگان نوشته های ساکت ما و یاد ترانه یک گام تا رهایی تلنگر ماجراهای من ورایانه هبوط سروش 8 طاها نیوز طاها شیخیانی کلامی از فرزند کورش پایگاه اطلاع رسانی قاری امیرحسین توحیدی دفتر تمرین سید مهدی کمال آرا پرشین گیگ دکتر نادر چقاجردی .::. ايلام امروز ::. آکاایران ، آکا الکتریک ، آکاالکتریک كشتي كج ایستگاه صلواتی 2 ... خبرهای خبرگزاری ها و سایت ها ثبت سایت شما در فهرست سایتهای ایرانی پايگاه رسمي محمدرضا سرشار (رضا رهگذر) عشق - عقل - ایمان کامران نجف زاده - به نام آرام دل‌ها رو به جلو بچه حزب الهي هوانورد حرکت مداوم و رو به جلو با راهکارهای نوین سایت صنعت و دانش سازمان مدارس معارف اسلامي پایگاه اطلاع رسانی دفتر آیة الله العظمی مکارم شیرازی محمدکاظم روحانی نژاد خبرنگار صداوسیما جهاد فی سبیل الله بر دوش همه ماست صدا و نما ناگفته های من وتو به رنگ حقوق تيتر - ایمان ندومی دشتي ها هیأت مذهبی محبان اهلبیت علیهم السلام شهرستان بوشهر هیئت جوانان منتظر مراغه *بیت الزهرا حاج سیدعزیزحسینی دشتی (عمدة الاخیار) گلچین مطالب لوکس فارسی شناخت رهبری پیامک های ادبی - بیشه مقالات عمران ومعماری پایگاه گسترش آراء و اندیشه‌های حضرت امام خمینی رحمة الله علیه شیعه تم.:. قالب مذهبی امام روح الله وب سایت شهید گمنام منتظر... بچه‌های قلم پایگاه اینترنتی خورشید آل یاسین دانشجویان دانشگاه صنعتی کرمانشاه ایران نامه صلی الله علی الباكین الحسین روضه رضوان وب سایت شهید گمنام وبلاگ سیاسی مذهبی رهروان ولایت فجر آزادی - شهیدان زنده اند باولایت زنده ایم گیلان ، استان زیبای من کامران نجف زاده خبرنگارقلبهای ما نهاد نمایندگی مقام معظم رهبری در امور اهل سنت ایرانشهر وبلاگ رسانه فدائیان عشق با ولایت تا شهادت جهان اسلام پایگاه وب شبکه آموزش سیمای جمهوری اسلامی ایران وب سایت شخصی خانم صاحب الزمانی .:: عطرنماز ::. بهشت دل انديشه قم راه ولایت سربازان آخرالزمان چاپ 5 ستاره پایگاه اطلاع رسانی سپاه عاشورا استان آذربایجان شرقی وبلاگ قرآنی تصاویر جدید حاج حامد شاکر نژاد بنیاد دعبل خزاعی پنل ارسال پیامک رایگان ایذه سلام انجمن بزرگ نیمباز گرگان پست ‌الکترونیک ایرانی 'چاپار' دانشجویان کارشناسی اطاق عمل اتصال ******************* Join پرندگان ایران ایران نامه پایگاه اطلاع رسانی دانشگاه نیوز ايمني- حفاظت دريايي- جستجو و نجات دريايي | سازمان بنادر و دریانوردی جنـبش پیامـکی +جهان 2014 ( ◠‿◠)+ اشک قلم سپهربلاگ سایت مشاغل ناصرون - رسانه مجازی جوانان مطالبه گر جنوب کشور ارزش های دفاع مقدس بیسیم چی عشق اول آخرم فقط خدا ☫ عَلِیٌّ وَلِیُّ الله ☫ اخبار فناوری اطلاعات شبکه دوستان بهشت من شبکه اجتماعی ادبیات جهان