|
|
|
|
|
به نام خدا سلام ! 13 نکته ی جالب در مورد بیل گیتس 1- کتاب های زیادی در مورد بیل گیتس نوشته شده است، آمازون 137,632 نتیجه در این مورد ارائه می دهد. 2- اولین شرکتی که او تاسیس کرده است شرکت Traf-O-Data می باشد. 3- جد بزرگ او یک قانونگذار و شهردار، پدربزرگش رئیس بانک ملی، و پدرش یک وکیل موفق بود. 4- در سال 1968 اولین کامپیوترها در آکادمی Lakeside نصب شدند، که در نتیجه نمرات او افت کردند چرا که او روزها و شب ها را بر سر یادگیری این دستگاه جدید می گذراند. 5- گیتس، پال آلن و دوستانشان به علت فعالیت روی کارهای Hack باعث Crash کردن کامپیوترها در آکادمی Lakeside شدند. 6- وقتی جوان بود عادت داشت که به عقب و جلو تکان بخورد. البته هنوز هم وقتی عمیقا در فکر است این کار را انجام می دهد. 7- در هاروارد احساس کسالت و بی حوصلگی می کرد و بیشتر وقت خود را با برنامه نویسی و بازی پوکر می گذراند. 8- گیتس به اساتید خود در دانشگاه گفته بود که او حدود 30 سالگی یک میلیونر خواهد بود. 9- گیتس در 31 سالگی به یک میلیونر تبدیل شد یعنی یک سال دیرتر از آنچه خود پیش بینی کرده بود. 10- یکی از اساتید او درباره او می گوید: " بیل یک برنامه نویس متحیرکننده بود، اما در عین حال یک فرد منزجر کننده". 11- زندگی همراه با بی اعتنایی او در هاروارد او را در طول تابستان 1974 بیمار ساخت و او تحصیلاتش را رها کرد. 12- اولین کار برنامه نویسی او در دبیرستان برای ساخت برنامه ای بود که یک جدول زمان بندی مناسب را سازماندهی می کرد. بیل از آن برای ثبت نام در کلاس هایی که بهترین و تحریک کننده ترین دختران و نیز جمعه های کم کاری را داشت، استفاده می کرد. اینجا باید گفت که آقای گیتس شما هم؟؟!! 13- گیتس با همسرش، ملیندا، در ژانویه 1994 در جزیره ای در هاوایی که برای مراسم جشن عروسی اجاره کرده بود، ازدواج کرد. بعضی از این نکات رو بر اساس حرفهایی که جدیدا گیتس در اسرائیل گفته است نوشتم. اگر شما هم نکاتی از این دست دارید در نظرات بنویسید تا اضافه کنم. البته عمدا 13 نکته نوشتم تا بگویم کمی نحس است. |
||
|
+
نوشته شده در یکشنبه یکم اردیبهشت 1387ساعت 8:12 بعد از ظهر توسط مسعود لپه چی
|
|
||
|
|
|
|
|
به نام خدا سلام !!!
چرا بررسي شطرنج كامپيوتري؟ ممكن است بپرسيد بررسي آناتومي يك برنامه شطرنج اصلاً چه فايدهاي دارد؟ پاسخ را در دو سه نكته ميتوانم خلاصه كنم. در وهله نخست، بررسي آناتومي يك بازي شطرنج از لحاظ تئوري هوشمصنوعي ميتواند نمونه بسيار جالبي از كاربرد اين علم تلقي شود. در بسياري مواقع وقتي گفته ميشود هوش مصنوعي، براي بسياري از مردم واقعاً سؤال است كه اين هوش از كجا ميآيد و چگونه شكل ميگيرد. شطرنج يكي از جاهايي است كه ميتوانيد ببينيد چگونه يك سري معادلات رياضي كه ظاهري ساده، اما باطني پيچيده دارند، به تدريج در پيچ و خم پردازشهاي بعدي مبناي هوشمندي ماشين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 ارزش هر نوع مهره است. اما ارزيابي كمّي كافي نيست. بايد ديد اين مهرهها از نظر عملي چقدر كارآمد هستند. شايد يك وزير كه بالقوه ميتواند خطر بزرگي باشد، به جهت آچمز شدن در شرايطي كه او را ناگزير از پاسباني از جان شاه كرده است، عملاً در مراحل مياني يا پاياني بازي كارايي محدودي داشته باشد. به هرحال براي ارزيابي بازي معادلات مختلفي نوشته شده است كه در هر نرمافزار از بعضي از آنها استفاده ميشود. طبيعي است كه هرچه اين معادلات جامعنگرتر باشند، دقت نرمافزار بيشتر ميشود. خود تكنيك ارزيابي چند ركن دارد: توازن كمي قوا، قدرت مانور و ميزان نفوذ مهرهها روي خانههاي مختلف صفحه بازي، توسعه بازي، آرايش پياده نظام، و امنيت شاه، از جمله مهمترين اركان ارزيابي هستند.
به عنوان مثال، تئوري كلاسيك شطرنج تأكيد دارد كه مهرههاي ضعيفتر بازي مثل فيل و اسب بايد هرچه سريعتر به وسط معركه آورده شوند. شاه خوب است كه هرچه سريعتر به فكر رفتن به قلعه باشد و مهرههاي رخ و وزير بهتر است در جاي خود آرام بنشينند تا بازي به لحظات استراتژيك و سرنوشتساز خود نزديك شود. در تئوري مدرن شطرنج به جنبههاي پيشرفتهتري از بازي نيز انديشيده ميشود.
مثلاً اينكه مهرهايي مانند اسب و فيل بايد سريعاً در فكر فتح مركز باشند تا هم از حملات وزير حمايت كنند و هم فضا را براي مانور دادن رخها باز كنند. معادلات و تكنيكهاي ارزيابي در حقيقت ميتوانند به اين مسئله پاسخ دهند كه اگر كامپيوتر بخواهد از يك استراتژي معين براي پيروزي استفاده كند (مثلاً فتح مركز)، چگونه بايد ميزان تحقق اين اهداف مياني را ارزيابي و بررسي كند. تكنيكهاي ارزيابي همچنين ميتوانند به اين مسئله فكر كنند كه آرايش پياده نظام چگونه است؟ مثلاً تا چه اندازه نزديك بودن پيادهها به يكديگر شعاع عمل آنها را محدود يا باز كرده است. چقدر شانس پيروزي براي وزير شدن يك پياده وجود دارد و مواردي از اين قبيل. جمع بندي به اين ترتيب ميتوان مدل هوشمند مصنوعي در يك نرمافزار شطرنج را چنين خلاصه كرد: اين هوشمندي چهار ركن دارد: يكم: <بينايي> نرمافزار دوم: آگاهي از قوانين بازي سوم: هوشمندي در جستوجو براي يافتن بهترين حركت بعدي چهارم: هوشمندي در سنجش وضعيت كنوني و ارزيابي ميزان تحقق استراتژي انتخاب شده براي رسيدن به پيروزي نهايي يا دستيابي به اهداف مياني پي نوشت لازم به ذكر است كه تلقي هوشمندانه بودن محاسبات نرمافزارهاي شطرنجباز، محل بحث فراوان است و عدهاي عقيده دارند كه چنين نرمافزارهايي را نبايد هوشمند به حساب آورد. در نتيجه در اين نوشتار، هوشمند بودن نرمافزار شطرنجباز، نظر شخصي نويسنده است . |
||
|
+
نوشته شده در یکشنبه یکم اردیبهشت 1387ساعت 7:30 بعد از ظهر توسط مسعود لپه چی
|
|
||
|
|
|
|
|
به نام خدا سلام !!!!!
قابلیت تایپ فارسی در فتوشاپ طراحی گرافیکی امروزه به عنوان یکی از پردرآمدترین شغلها محسوب میشود. گرافیستهای حرفهای امروزه با انجام طراحیهای مختلف به اشکال و عناوین مختلف برای خود کسب درآمد میکنند. این طراحان از نرمافزارها و ابزارهای متعددی برای این منظور استفاده میکنند. در میان این نرمافزارها میتوان به نرمافزارهای بسیاری برخورد کرد که در میان کاربران و طراحان از محبوبیت خاصی برخوردار هستند اما در تمامی این نرمافزار همیشه نرمافزاری برتر و محبوبتر از دیگر نرمافزارها نیز میتوان یافت و در این مورد میتوان به شاهکار شرکت Adobe اشاره کرد . نرمافزار Photoshop ، نرمافزاری که تمامی کاربران کامپیوتر با نام آن آشنا هستند و بسیاری از کاربران، حتی در سطوح مبتدی نیز از این نرمافزاری برای رفع نیازهای مختلف خود استفاده میکنند. ![]() Adobe Photoshop CS3 Extended آخرین نسخه از این نرمافزار محبوب است که در آن ویژگیهای بسیار متنوع و زیادی را میتوان یافت. در این نسخه ابزارهای متعدد زیادی برای استفاده کاربران قرار داده شده که به وسیله آنها کاربران به راحتی قادر به طراحی و ساخت تصاویر مختلف گرافیکی خواهند بود. از بهترین ابزارهای موجود در این نرمافزار میتوان به فیلترهای مختلف تصویری اشاره کرد که در انجام امور طراحی بسیار پرکاربرد است و به کمک آنها کاربران میتوانند افکتهای مختلف تصویری را روی تصاویرشان ایجاد کنند. همچنین از دیگر ویژگیهای این نرمافزار میتوان به قابلیت ساخت تصاویر دو بعدی و سه بعدی نیز اشاره کرد. معرفی برخی از ویژگیهای جدید نرمافزار Adobe Photoshop CS3 Extended 10.0 Middle East - قابلیت تایپ مستقیم فارسی و سایر زبانهای آسیایی: قابلیت منحصر به فردی که تنها در نسخههای Middle East فتوشاپ قرار دارد که کاربران فارسی زبان بدون نیاز به نرمافزار کمکی (فارسیساز و...) میتوانند فارسی تایپ کنند!
- قابلیت منحصر به فرد ویرایش و خلق سه بعدی تصاویر و متون با پشتیبانی کامل از فرمتهای نرمافزارهای برتر سه بعدی ساز دنیا همچون 3D Studio Max و...
- قابلیت منحصر به فرد ویرایش فیلمها و فرمتهای ویدئویی! اکنون شما قادر به ویرایش فریمهای فایلهای ویدئویی خود از داخل محیط Adobe Photoshop CS3 Extended خواهید بود! با قابلیت پشتیبانی از فرمتهای MPEG, MOV AVI, MPEG- 4, FLV, 3G, FLC و...
- قابلیت منحصر به فرد Smart Filters: قابلیت جدید کار با فیلترها که به شما در اضافه کردن، ویراستن و حذف فیلترها از تصاویر به صورت آنی و لحظهای کمک میکند کیفیت تصاویر حاصله را تا حداکثر ممکن بالا نگاه میدارد.
- ابزار قدرتمند Refine Edge tool: قابلیت انتخاب و برش آیتمها در تصاویر بسیار آسانتر در قیاس با نسخههای پیشین، میزان خطای بسیار پایینتر در برش، اتوماسیون بسیار بالاتر و هوشمندتر شدن نرمافزار در این زمینه و کیفیت بسیار بالای تصویر حاصله در قیاس با نسخههای پیشین.
- محیطی راحتتر و کاراتر برای کار با نرمافزار: استفاده از حداکثر فضای مانیتور برای بسط و ویرایش تصاویر بزرگ همراه با حفظ تمامی ابزارهای فتوشاپ در کنار محیط.
-ویرایش و پردازش سریع و بهتر تصاویر RAW: پشتیبانی کامل و بسیار سریعتر از این فرمت رایج و قدرتمند دوربینهای دیجیتالی توسط پلاگین جدید و درونی نسخه CS3 تحت عنوان Adobe Photoshop Camera Raw Plug- in.
- مدیریت سریعتر و انعطافپذیرتر بر پروژههای طراحی خود توسط نرمافزار قدرتمند Adobe Bridge CS3! |
||
|
+
نوشته شده در جمعه سی ام فروردین 1387ساعت 7:0 قبل از ظهر توسط مسعود لپه چی
|
|
||
|
|
|
|
|
به نام خدا GUI چیست ؟ GUI مخفف عبارت Graphical user interface یا رابط گرافیكی كاربر می باشد . GUI در حقیقت نوعی رابط كاربری می باشد كه به كاربر كامپیوتر امكان برقراری ارتباط بصورت گرافیكی و بسیار بهینه شده و قابل فهم و نمایش را می دهد . رابط گرافیكی با استفاده از سمبل ها و تصاویر گرافیكی سعی در ایجاد عناصری با معنی خاص می باشد كه كار با كامپیوتر را بسیار راحتتر می كند . در حقیقت رابط گرافیكی تلاشی برای فرار از محیط های متنی می باشد . قبل از ایجاد GUI تمامی كاربران كامپیوتر ها مجبور بودند تمامی دستورات و در حقیقت ورود و خروج داده را از طریق متنی انجام دهند . حتما اكثر شما با صفحات سیاه داس یا ترمینال لینوكس آشنایی دارید . البته این محیط های متنی هنوز هم طرفداران بسیاری دارد و مخصوصا در سرور ها یا كاربرد هایی خاص بسیار بهینه تر و مناسب تر می باشد . اما اكثرا كاربران و مخصوصا كاربران خانگی كار با این محیط متنی را بسیار سخت و وقت گیر می دانند ! پس تلاشی برای ایجاد عناصر گرافیكی (widget) كه هر یك مفهوم و كاربرد خاصی داشتند آغاز شد . اكثر عناصر در سیستم و حتی سخت افزار ها حالتی ترسیمی و نمایشی پیدا كردند و كاربر می توانست با دستگاه ماوس در محیطی گرافیكی حركت كرده ، عناصر مختلف را انتخاب و یا وارد بخش های مختلفی شود . هم اكنون تقریبا تمامی كاربران كامپوتر با این رابط های گرافیكی آشنایی كامل دارند و حداقل با یك یا چند نمونه از این محیط ها كار كرده اند . |
||
|
+
نوشته شده در دوشنبه بیست و ششم فروردین 1387ساعت 5:20 بعد از ظهر توسط مسعود لپه چی
|
|
||
|
|
|
|
|
به نام خدا سلام ! با استفاده از این ترفند يكي از قابليت هاي ويندوز XP مي توانيد برنامه هاي نصب شده بر روي سيستم خود را به شكل سريع تر اجرا كنيد. به عنوان مثال در نرم افزارهايي مثل Photoshop و Corel Draw كه باز شدن آنها مقداري طول مي كشد، مي توانيد اين برنامه ها را سريع تر باز كنيد. براي اين كار روي Shortcut برنامه مورد نظر راست كليك كنيد، سپس Properties را برگزينيد. سپس به تب Shortcut برويد. اكنون در قسمت Target به پايان آدرس فايل برويد. سپس بعد از علامت پاياني يك Space بزنيد و دستور 1:/prefetch را تايپ كنيد. در پايان OK را بزنيد و خارج شويد. دقت کنید که این کد باید از از راست به چپ در محل کپی کردن در آید. |
||
|
+
نوشته شده در دوشنبه بیست و ششم فروردین 1387ساعت 5:13 بعد از ظهر توسط مسعود لپه چی
|
|
||
|
|
|
|
|
به نام خدا سلام !!!
این فایل یک فایل متنی با پسوند .ini می باشد که تنظیمات دو فایل،Scanreg.exe scanregw.exe از این فایل نشات می گیرد. که مهمترین این تنظیمات شامل موارد زیر می باشد: 1-با تایپ دستور Backup=1 ،ویندوز به طور خودکار در هنگام بوت شدن از رجیستری نسخه ی پشتیبان تهییه می کند وبا تایپ0= Backupاین کار انجام نخواهد شد (پیش فرض مقدار 1 میباشد ) با تایپ دستور Max backup Copies = 0-99 و اختصاص دادن یک عدد بین 0تا99 می توان تعداد فایل های (cab را که به عنوان نسخه ی پشتیبان در نظرگرفته می شودرا تغییر داد. پیش مقدار 5می باشد). 2- راه دوم برای آنکه از رجیستری نسخه ی پشتیبان تهییه کردآن است که از دو فایل System.dat User.dat در مسیری غیر از مسیر Copy Windows تهییه کنید و آن رادر هنگام آسیب دیدن رجیسری جایگزین فایل های آسیب دیده کنید . 3-سومین روش برای تهییه ی نسخه ی پشتیبان از رجیستری بدین صورت است که برنامه اجرایی Regedit.exeرا در ویندوز اجرا کرده واز files منوی Export registry را انتخاب کنید در این حالت پنجره ای با عنوان فایل Export registry files باز خواهد شد ،در این پنجره ابتدا نام فایل را مشخص کرده ودر فریم Export rangeگذینه ی Allرا انتخاب کنید. با زدن دکمه ی Saveفایل مورد نظر با پسوند reg در مسیر مشخص شده ساخته می شود . ودر نهایت برای آنکه بتوان از این نسخه برای تعمیر رجیستری استفاده کرد این است که از منوی File ، گزینه یImport Registy File را انتخاب کنید و با باز شدن پنجره ی مربوطه نام فایلی را که قبلا مشخص کردید ،انتخاب کنید . ویا اینکه دوی این فایل دوباره کلیک کرده وبعد دکمه yes فشار دهید تا نسخه ی پشتیبان جایگزین رجیستری آسیب دیده شود 4- آخرین راه برای تعمیر رجیستری آسیب دیده آن است که فایل مخفی و سیستمی System . Ist را به جای فایل ُSystem .dat جایگذین کنید. هنگامی که سیستم عامل ویندوز را روی سیستم خود نصب می کنیم و ویندوز برای اولین بار با موفقیت بوت می شود یک فایل مخفی و سیستمی System.1st در درایوی که ویندوز در آن نصب شده است C:\ ساخته می شود که این فایل یک نسخه پشتیبان بسیار کوچک از رجیستری اولیه می باشد که با کپی و جایگزین کردن این فایل به جای فایل System.dat می توان رجیستری را طبق مراحل زیر به حالت اولیه برگرداند: 1- سیستم را مجددا راه اندازی کرده و وارد داس شوید. 2- فرمان زیر را برای کپی و جایگزین کردن فایل System.1st به جای System.dat در خط فرمان صادر کنید: XCopy c:\System.1st c:\Windows\System.dat/H/R 3- سیستم را دوباره راه اندازی کنید. توجه: این نسخه پشتیبان از رجیستری (System.1st) مربوط به تنظیمات و رجیستری اولین بوت ویندوز می باشد و تنظیمات سخت افزارهای نصب شده و برنامه های کاربردی را شامل نمی شود (برنامه های کاربردی و سخت افزارهای نصب شده دیگر عمل نخواهند کرد) و در حقسقت این راه به عنوان آخرین راه برای تعمیر رجیستری و حفظ سیستم عامل، استفاده خواهد شد. |
||
|
+
نوشته شده در دوشنبه بیست و ششم فروردین 1387ساعت 5:8 بعد از ظهر توسط مسعود لپه چی
|
|
||
|
|
|
|
|
به نام خدا سلام ! در مورد اسم شرکت ها: Adobe: Apple: Cisco: Google: Hotmail: HP: Intel: Lotus: Mirosoft: Motorola: Oracle: Red Hat: Sony: SUN: Xerox: Yahoo: |
||
|
+
نوشته شده در دوشنبه بیست و ششم فروردین 1387ساعت 4:55 بعد از ظهر توسط مسعود لپه چی
|
|
||
|
|
|
|||
|
به نام خدا
در ساليان اخير ، متدولوژی های متفاوتی بمنظور طراحی برنامه ، پياده سازی و در اختيار طراحان برنامه های کامپيوتری قرار گرفته شده است . برخی از اين متدلوژی ها ی طراحی، پيچيده و برخی ديگر ساده می باشند . در تمامی حالات ، هدف يکی است : کمک به برنامه نويسان در جهت نوشتن برنامه ها ئی که بسادگی نوشته ، اشکال زدائی و در نهايت نگهداری گردند . اهميت طراحی برنامه الگوريتم الگوريتم های ميکرو در مقابل ماکرو مراحل پنج گانه
در ادامه به بررسی هريک از مراحل فوق ، خواهيم پرداخت . مرحله مقداردهی اوليه مرحله ورودی مرحله پردازش مرحله خروجی مرحله پاکسازی ( Cleanup ) آيا هر برنامه شامل پنج مرحله گفته شده است؟ پالايش يک طرفه ( Sideways Refinement ) پالايش يک طرفه مرحله مقدار دهی اوليه
همانگونه که در شکل فوق ، مشاهده می گردد بموازات حرکت از سمت چپ بسمت راست ، جزئيات مربوطه افزايش خواهد يافت . شکل فوق ، پالايش يک طرفه ، ليستی از برنامه های جانبی و توابع مورد نياز بمنظور انجام فعاليت های مربوطه در مرحله مقداردهی اوليه را نشان می دهد . هر روتين کوچک، مسئول انجام عملياتی خاص خواهد بود . شبه کد ( Pseudo Code )
شبه کد ، عملياتی را که يک روتين می بايست انجام دهد ، بدون اتکاء به گرامر يک زبان برنامه نويسی خاص ، تشريح می نمايد. شبه کد ، زبانی مبتنی بر گرامری خاص نبوده و الگوريتمی از عمليات مورد نظر که می بايست توسط يک روتين انجام شود را مشخص می نمايد. مزيت شبه کد، شباهت زياد آن به زبان انگليسی است و می توان آن را با افراديکه برنامه نويس نبوده و بنوعی در فاز طراحی صاحبنظر می باشند ، به اشتراک تا صحت استنباطات حاصل شده تائيد و يا اصلاح گردد.( در فاز طراحی می بايست يک ارتباط مستمر با کاربران صاحبنظر برقرارگردد، ما قرار است مسئله آنان را حل نمائيم نه مسئله خود را و يا نمی خواهيم مسئله ای ديگر را بر حجم مسائل آنان اضافه نمائيم!) بدين ترتيب ، امکان تشخيص خطاء و اعمال تعييرات لازم در خصوص برخورد با خطاهای احتمالی در ابتدا فراهم می گردد ( يکی از اصول مهندسی نرم افزار در اين رابطه به اين موضوع اشاره می نمايد که به هر ميزان که زمان کشف يک خطاء در چرخه حيات يک برنامه سريعتر باشد ، هزينه برخورد با خطاء کاهش خواهد يافت ) . در بخش دوم اين مقاله ، با متدولوژی UML)Unified Modeling Language ) آشنا خواهيم شد. UML ، يک متدولوژی طراحی متداول خصوصا" در زمينه برنامه نويسی شی گراء است . UML ، يک متدولوژی طراحی خصوصا" در زمينه برنامه نويسی شی گراء است . روند شکل گيری UML دياگرام های UML
آناليز شی گراء (OOA) طراحی شی گراء ( OOD ) دي | ||||