تبليغاتX
برنامه نویسی و لینوکس

مساله فروشنده دوره گرد (TSP ) يكي از مسائل مشهور بهينه سازي تركيبي است كه اساس آن به اين صورت است كه يك فروشنده دوره گرد مي خواهد بهN شهر برود و كالاي خود را به فروش برساند ، به طوري كه از هر شهر فقط يك بار عبور كند و تمام شهر ها را رفته باشد و در نهايت كمترين مسير را طي كرده باشد عکس. دراينجا يك ماتريس فاصله شهر ها (d) وجود دارد كه فاصله شهر i از j  را با dij نشان می دهد و فاصله شهر i از خودش را با dii نشان مي دهيم كه مقدار آن صفر است و روي قطر اصلي ماتريس مي باشد . يك تور يك جايگشت Π  از  {n،......1,2,} مي باشد . هدف مساله فروشنده دوره گرد پيدا كردن جايگشتي است كه كمترين طول را دارد. فضاي حل مساله TSP با زياد شدن تعداد شهرها به سرعت افزايش مي باشد و ديگر با روشهاي برنامه ريزي خطي نمي توان جواب بهينه آن را به دست آورد.

 

 

                                                                                           بقیه در ادامه ی مطلب ...


ادامه مطلب
+ نوشته شده توسط معین اوحدی کارشک در جمعه دوازدهم تیر 1388 و ساعت 22:4 |
نرم افزارهای متن باز گمنام
1. Zscreen: این برنامه متن باز برای عکس گرفتن از صفحه نمایش و یا در اصطلاح “screen capture” مورد استفاده قرار می گیرد و تا زمانی که به آن نیاز داشته باشید روی سیستم شما قرار می گیرد.
با این برنامه شما می توانید از یک ناحیه خاص و مشخص شده عکس بگیرید.
این نرم افزار قابلیت این را دارد که از یک پنجره انتخابی توسط شما و یا یک پنجره کامل تصویربرداری کند، این نرم افزار حتی می تواند تصاویری را که از صفحه نمایش تهیه می کند با زدن یک کلید روی صفحات وب بفرستد. این برنامه می تواند به برنامه های ویرایش عکس مانند فتوشاپ متصل شود.
در واقع اگر شما بخواهید به دفعات زیاد و پشت سر هم از صفحه نمایش عکس بگیرید، سرعت عمل Zscreen چندین سال نوری سریع تر از فشردن دکمه Print scan توسط انگشتان دست است.
2- PDF creator: این نرم افزار متن باز به شما این امکان را می دهد تا بتوانید از هر صفحه و یا برنامه ای که قابلیت چاپ را دارد، فایل PDF تهیه کنید.
این برنامه فقط کافی است که یک بار روی رایانه شما نصب شود تا بتوانید به راحتی متن های خود را به PDF تبدیل و توسط هر نوع چاپگری آن را چاپ کنید.
فایل حاصل از این برنامه می تواند روی هر نوع رایانه ای که دارای برنامه adobe reader و یا هر برنامه نظیر آن باشد، خوانده شود. برنامه های زیادی برای ایجاد یک فایل PDF وجود دارد اما اگر شما به دنبال یک نرم افزار متن باز هستید این برنامه از دیگر رقبای خود در جنبش متن باز سبقت گرفته است.
3- Keepass: این نرم افزار از آنهایی است که تا آن را روی رایانه خود نصب نکنید و مورد استفاده قرار ندهید قدرتش را درک نخواهید کرد. این برنامه برای وارد کردن اطلاعاتی از قبیل ایمیل و وب سایت ها و اطلاعات بانک ها در فروشگاه ها و ادارات مورد استفاده قرار می گیرد.
استفاده از این برنامه به شما در نگهداری صدها نام و شماره رمز کمک میکند. به عبارتی این نرم افزار می تواند حکم یک دفترچه یادداشت دیجیتالی را داشته باشد.
4- Handbrake: این نرم افزار متن باز یک تبدیل کننده فایل DVD به MPEG4 است که به شما این امکان را می دهد تا یک DVD را روی سیستم خود نصب کنید و یک تبدیل کننده فایل های ویدئویی به دیجیتال را برای دیدن تصاویر مناسبتر داشته باشید.
استفاده از این برنامه یکی از بهترین راه ها برای جلوگیری از فرسودگی DVDهاست. همچنین با کمک این برنامه می توانید به سادگی چندین فیلم را روی لپ تاپ خود ببینید. برای نتیجه بهتر گرفتن ازاین نرم افزار ما به شما توصیه می کنیم که آن را هم زمان با DVD43 استفاده ک نید.
5- Pea zip: یک انتخاب سودمند و مفید برای فشرده سازی فایل ها است. این نرم افزار می تواند هر نوع از اسناد فشرده را باز کند. این برنامه می تواند فایل ها را از هم جدا و نیز دوباره سر هم کند. این برنامه حتی می تواند یک پردازش را به خوبی اداره کند. از این برنامه چندین نسخه متفاوتی وجود دارد که یکی از آن ها نسخه لینوکس آن است.
6- BonkEnc: این نرم افزار یک رمزگذار، جداکننده فضای CD و مبدل شنیدنی خارق العاده است. این برنامه کم حجم، بهترین انتخاب برای رمزگذاری و جداسازی CDها است. این نرم افزار همچنین قابلیت تبدیل فایل های گوناگون به هم را دارد. به عنوان مثال می تواند فایل های MP3 را به MP4 تبدیل کند.
7- Ganttproject: اگر شما نیاز به انجام یک مدیریت پروژه دارید، این نرم افزار به کمک شما خواهد آمد تا بتوانید هر چیزی را به آسانی سازماندهی کنید. این نرم افزار نام و تعریف کارها و وظایف را می گیرد و در نهایت با تبدیل آن ها به یک درخت و یا دیاگرام به شما در نحوه انتخاب کارها در زمان و مکان درست کمک می کند. این نرم افزار حتی این امکان را به شما می دهد تا داده های خود را با برنامه پروژه مایکروسافت رد و بدل کنید. به هر حال این شما هستید که تشخیص می دهید داده هایتان به کجا برود و سازماندهی شود.
8- AutoHotkey: این نرم افزار متن باز عجیب و غریب به شما امکاناتی می دهد که شاید تا کنون نداشته اید.
در مورد این برنامه می توان گفت که هر کاری از دستش بر می آید. برای شروع کننده ها با ضربه زدن روی کلیدهای کیبورد و یا موس شما می توانید آن را به صورت خودکار تعریف کنید تا دیگر نیازی به تکرار مجدد این کارها نداشته باشید. می توانید هر نوع میان بری را برای ویندوز خود تعریف کنید می توانید هر نوع کلید یا دکمه ای را که می خواهید برای عمل خاصی در ویندوز انتخاب کنید و یا حتی نشانگر موس خود را با کیبورد رایانه خود کنترل کنید.
این تغییرات و تعریف ها توسط شما، با این نرم افزار بدون محدودیت است و شما میتوانید تا زمانی که به یک الگوی کلیدی خاص نیاز دارید از آن استفاده کنید.
9- VirtualDub: این نرم افزار رایگان، قابلیت ضبط ویدئویی را دارد و بسیار کاربردی و مفید است. البته کاربردهای این برنامه متن باز به این جا ختم نمی شود. این برنامه به شما امکان این را می دهد تا فایل های ویدئویی خود را به صورت دستی با یک گروه بزرگی از پلاگینها و فیلترها ضبط کنید. این خصوصیت شاید در نگاه اول خیلی نو نباشد اما برای یک نرم افزار متن باز بسیار جدید و نو است. البته توصیه ما به شما این است که اگر کار ویدئویی شما روی ویندوز زیاد است و شما به ویرایشگرهای قدرتمندی نیاز دارید، به یک نرم افزار پیشرفته مهاجرت کنید.
10- Notepad++: این برنامه واژه پرداز محیطی بسیار جذاب و زیباتر از Notepad ویندوز دارد. برخی از ویژگیهای این برنامه عبارت است از: موقعیت پویای دید، چند سندی، تمام اتوماتیک، پشتیبانی از جست و جو یا جایگزینی کلمات به صورت منظم و قابلیت زوم کردن و خارج شدن از آن و ....

ترفند لینوکسی

کنترل از راه دور
کنترل رایانه دیگران را در دست بگیرید
یکی از مواردی که باعث محبوبیت خط فرمان در بین کاربران گنو/ لینوکسی شده است. قابلیت نفوذ از طریق آن به سیستم های دیگر است. اغلب هکرها، کاربران سیستم عامل های Unix و گنو/ لینوکسی هستند. آن ها از این قابلیت خط فرمان به خوبی استفاده کرده و به رایانه اشخاص در سراسر جهان دسترسی پیدا می کنند. دستوری که به آن اشاره می شود، قدرت بالایی برای نفوذ به رایانه دیگران دارد، به طوری که کنترل کامل رایانه هک شده را در دست می گیرد.
با استفاده از این دستور حتی می توانید گرافیک رایانه هک شده را تحت کنترل خود داشته باشید.
برای استفاده از این پروتکل باید سرویس آن را فعال کنید. در سیستم عامل Open SUSE این سرویس به صورت پیش فرض فعال است.
برای فعال کردن این سرویس از قطعه کد زیر استفاده کنید:
# /etc/nit.d/sshd start
نحوه استفاده از این دستور به صورت زیر است:
# ssh USERNAME@IP_ADDRESS
در قطعه کد بالا و در قسمت IP_ADDRESS، آی پی مربوط به سیستم مورد نظر قرار می گیرد. بعد از وارد کردن دستور بالا از شما سوالی برای این که آیا تمایل ورود به سیستم مورد نظر را دارید پرسیده خواهد شد. پس از اعلام تمایل می توانید پسورد user را وارد کرده و به سیستم آن ssh کنید.
اگر علاقه مندید کنترل گرافیک سیستم مورد نظرتان را هم در دست داشته باشید می توانید از سوئیچ- X به همراه دستور زیر استفاده کنید:
# ssh-X USERNAME@IP_ADDRESS
شیشه ای کردن پنل
یکی از مواردی که باعث زیبایی هرچه بیشتر سیستم عامل می شود، شیشه ای کردن نوار پایین صفحه است. برای این منظور می توانید بر روی این نوار راست کلیک کرده و گزینه ..Configure Panel. را انتخاب کنید.
در صفحه ای که مشاهده می کنید در سربرگ Appearance گزینه Enable Transparency را فعال کنید. بعد از آن می توانید با فشردن کلید Advanced Options مقدار شفافیت پنل را مطابق میل خود تغییر دهید. در پایان، تغییرات اعمال شده را ذخیره کنید.
برای این که پنجره های مربوط به دسکتاپ نیز شیشه ای شوند فقط کافی است بر روی یکی از آنها راست کلیک کرده و در قسمت Pager Options گزینه Transparent را فعال کنید.

سیستم عامل چیست؟
اگر بخواهیم در کوتاهترین جمله تعریفی از سیستم عامل داشته باشیم، می توانیم بگوییم: سیستم عامل مجموعه ای از انواع نرم افزارهاست که حول یک هسته مرکزی را احاطه کرده اند. همه سیستم عامل ها از اجزای اصلی ساخته شده اند که در مورد آن ها توضیح خواهیم داد و در ادامه سیستم عامل را به صورت عمیق تر مورد بررسی قرار دهیم.
سیستم عامل تراکنش بین سخت افزار و نرم افزارهای کاربردی را بر قرار می سازد. سخت افزار شامل پردازنده، دیسک های سخت، کارت های گرافیکی، کارت های صوتی و ... می باشد. از سکوهای سخت افزاری مختلف می توان به X86 مانند پردازنده های اینتل و AMD، آلفای کامپک، PowerPC مربوط به موتورولا و IBM، موتورولای M68K، اسپارک مربوط به سان مایکروسیستم و AMD64 که سکوی جدید 64 بیتی AMD مبتنی بر X86 است اشاره نمود.
بخش اصلی در هر سیستم عامل هسته مرکزی آن است. هسته با سخت افزارهای پایه ای سیستم، مانند پردازنده، حافظه کنترل کننده های ابزار ارتباط برقرار می کند. تمامی تراکنش های میان سخت افزار و نرم افزارهای کاربردی از طریق هسته صورت می پذیرد. هسته وظیفه ترجمه درخواست های نرم افزارهای کاربردی را به زبانی که قابل فهم برای ابزارهای سخت افزاری است، به عهده دارد. از جمله اجزای مهم دیگری که از سیستم عامل ها می توان به آنها اشاره کرد رابطه های کاربری، راه اندازهای ابزاریٍ، (Device Drivers) فایل سیستم ها، سرویس ها (Madoul) و نرم افزار ها هستند. در صورتی که عمیق تر به موضوع نگاه نکنیم، مجموعه این عوامل دست به دست می دهند و سیستم عامل را برای استفاده کاربران مهیا می کنند.
رابطه های کاربری
تمامی گرافیک سیستم عامل که مخاطب اصلی کاربران است به عنوان رابط کاربری به حساب می آید. به یقین همه شما با رابط کاربری ویندوز به خصوص XP خوب آشنایی دارید. سیستم عامل لینوکس نیز از رابط های کاربری متفاوتی برخوردار است که معروف ترین آنها KDE و GNOME هستند.
راه اندازهای ابزاری
ماژول هایی هستند که به سیستم عامل توانایی ارتباط با ابزارهای سخت افزاری سیستم را می دهند. البته در برخی سیستم عامل ها از جمله ویندوز این کدها به صورت ماژول نیستند و نمی توانند کنار هسته سیستم عامل قرارا گیرند به همین منظور است که برای نصب درایورها در ویندوز باید حتما سیستم عامل را راه اندازی مجدد کنید که هسته خود را با تغییرات جدید آماده کند.
فایل سیستم ها
هر سیستم عامل از انواعی از فایل سیستم ها استفاده می کند. در سیستم عامل ویندوز از فایل سیستم های FAT32 و NTFS استفاده می شود. درسیستم عامل لینوکس نیز از فایل سیستم های EXT2 و EXT3 استفاده می شود.
سرویس ها
سرویس ها که در سیستم عامل ها به آنها شبح اطلاق می شود، در پشت صحنه سیستم عامل کار می کنند. از این جهت به آنها شبح اطلاق می شود که بدون آن که دیده شوند در پشت صحنه سیستم عامل فعالیت شان را انجام می دهند. به عنوان مثال Apache و at دو نمونه از شبح هستند.

سیستم عامل؛ چرا و چگونه!
سیستم عامل ملی، لینوکس فارسی و در نهایت طرح ملی نرم افزارهای آزاد متن باز عناوین یکی از مهمترین پروژه های ملی مرتبط با فن آوری اطلاعات هستند. پروژه ای که در صورت موفقیت می تواند شکل و نحوه استفاده از رایانه را در سال های آتی در کشور تغییر دهد. در ایران همانند بسیاری از کشورهای پیشرفته یا در حال توسعه عده ای از صاحب نظران به این فکر افتادند تا سیستم عاملی ارزان تر و در عین حال با قابلیت بومی سازی را به عنوان جایگزین احتمالی سیستم عامل ویندوز مایکروسافت در نظر بگیرند.
در واقع مواردی همچون هزینه بالای خرید سیستم عامل ویندوز، عدم دسترسی به کد منبع این سیستم عامل، مشکلات سیاسی احتمالی در روابط کشورها و همچنین وابستگی به محصولات یک شرکت خصوصی از جمله دلایلی بوده است که بسیاری از کشورها را مایل به سرمایه گذاری و تشویق شرکتها برای کار روی سیستم عامل های دیگر کرده است. سیستم عامل یونیکس، همواره به عنوان یک جایگزین شایسته برای سیستم عامل شرکت مایکروسافت مطرح بوده است. اما در سالهای اخ یر با پیشرفت سریع سیستم عامل لینوکس و مزایای این سیستم عامل، همچون آزادی های حقوقی و تجاری بیشتر در تغییر و استفاده از کدهای این نرم افزار با اشتیاق توسعه دهندگان و برنامه نویسان برای صرف وقت در توسعه این سیستم عاملو یا نرم افزارهای قابل اجرا تحت این سیستم بسیاری از کشورها راغب به بکارگیری نسخه های بومی این سیستم عامل شدند. سرانجام 34 پروژه طرح ملی لینوکس فارسی با هزینه 10 میلیارد ریال اجرایی شد. مدیر طرح ملی لینوکس فارسی، از اجرایی شدن 34 پروژه فنی و غیر فنی در طرح ملی لینوکس فارسی از طریق برگزاری مناقصه با هزینه تقریبی 10 میلیارد ریال خبر داد. در اهداف عمده طرح ملی لینوکس از فراهم کردن بستر تولید یک سیستم عامل ایرانی با پشتیبانی داخلی به همراه نرم افزارهای آزاد/ متن باز کاربردی بر مبنای سیستم عامل گنو/ لینوکس، رفع مشکلات پایه ای و اساسی مرتبط با زبان فارسی در بخش های مختلف سیستم عامل گنو/ لینوکسو سایر نرم افزارهای آزاد/ متن باز پر کاربرد و افزایش سطح آگاهی افراد و ترویج استفاده از نرم افزارهای آزاد متن باز یاد شده است. بر اساس فرآیند محلی سازی سیستم عامل گنو/ لینوکس، سه فاز فنی متفاوت در این پروژه تعیین شده و درحال انجام است که از جمله آنها می توان به تهیه امکانات و ابزارهای پایه ای مورد نیاز برای زبان فارسی، به کارگیری نتایج فاز نخست در کتابخانه های مهم گنو/ لینوکس و توسعه برخی نرم افزارهای آزاد/ متن باز متداول و پرکاربرد اشاره کرد. در سه سال گذشته، لینوکس فارسی با پشتیبانی داخلی در بازار بوده و خروجی طرح نیز کاملا ملموس است، به گونه ای که با توجه به آزاد و در اختیار عموم بودن خروجی های طرح، شرکت های ایرانی مانند شرکت داده پردازی ایران، اقدام به بسته بندی نتایج و خروجی های طرح و ایجاد توزیع تجاری نموده اند و اقدام به ارائه پشتیبانی تجاری در بازار کرده اند. در حال حاضر، حداقل شش توزیع زنده یا قابل نصب از گنو/ لینوکس شامل «شبدیکس، لرنوکس، پارسیکس، فارلیکس، کارآمد و شریف لینوکس» در داخل کشور با استفاده از خروجی های طرح تهیه شده اند. از نمونه فعالیتهای دانشگاهی در حوزه متن باز می توان به توصعه نرم افزارهایی برای کاربردهای اداری به صورت متن باز (با شرایط خاص) توسط دانشگاه فردوسی مشهد اشاره کرد. در راستای بالا بردن آگاهی عمومی در مورد نرم افزارهای آزاد/ متن باز فعالیت هایی نیز انجام شده که می توان به برگزاری بیش از 36 همایش در سه سال گذشته در شهرهای مختلف، تولید محتویات آموزشی چند رسانه ای برای آموزش مبتنی بر رایانه لینوکس، تولید 2200 اسلاید آموزشی برای آموزش مقدماتی تا پیشرفته لینوکس، تولید 103 ساعت آموزش الکترونیک لینوکس، انتشار خبرنامه چاپی، انتشار خبرنامه الکترونیکی و تولید 14 کتاب مختلف از فعالیتهای انجام گرفته در این حوطه اشاره کرد.

برخورد نرم افزاری با یک پدیده سخت افزاری
Raid مناسب خود را انتخاب کنید
واژه RAID از کلمات Redundant Array of Inexpensive Disks گرفته شده است. با توجه به این کلمات، چند مفهوم عمده از RAID برداشت می شود. کاملا طبیعی است که برای ایجاد RAID به دو یا تعداد بیشتری هارد دیسک نیازمند خواهیم بود اما در مورد کاربران خانگی کمتر اتفاق می افتد که تعداد زیادی هارد دیسک به رایانه خود متصل کنند. با افزایش تعداد هارد دیسک ها، می توان سرعت را به مراتب افزایش داد، این جاست که مفهوم دوم به یای ما خواهد آمد و راه را پیش روی ما باز خواهد کرد.
در سیستم RAID، بر استفاده از هارد دیسک های ارزان قیمت تأکید شده است. این به این معناست که با هارد دیسک های جدید و شاید گران قیمت نمی توان RAID تشکیل داد اما در عمل ایجاد RAID با هارد دیسک های ارزارن قیمت عملی تر و به صرفه تر است. چرا که یک کاربر معمولی می تواند به جای خرید یک هارد دیسک جدید و گران قیمت، دو و یا حتی تعداد بیشتری هارد دیسک قدیمی تر خریداری کند و یک RAID ایجاد کند. البته به همین نکته نیز تبصره هایی وارد است. به عنوان مثال یکی از دلایل ایجاد RAID افزایش امنیت اطلاعات است. استفاده از یک هارد دیسک قدیمی که خود آن هر لحظه ممکن است از کار بیفتد در یک سیستم RAID کاری منطقی به نظر نمی رسد!
ایجاد سیستم RAID کاری حساس و پیچیده است. از همین رو سازندگان سخت افزار و سیستم عامل های مختلف به عموم کاربران خود توصیه نمی کنند که از سیستم RAID استفاده کنند.
در اولین قدم لازم است که با سطوح RAID آشنا شوید (در توضیحاتی در این مورد اشاره شده است). پس از این لازم است که یکی از انواع RAID سخت افزاری یا نرم افزاری را برای رایانه خود انتخاب کنید.
RAID سخت افزاری، مبتنی بر مادر بورد و کنترلر آن است و مستقل از سیستم عامل صورت می گیرد اما RAID نرم افزاری در محیط سیستم عامل و بدون دخالت RAID انجام می گیرد.
با توجه به این نکات، برای هر یک از این دو نوع RAID می توان کاربردهای مختلفی در نظر گرفت. یکی از دلایل ایجاد RAID افزایش سرعت کار و بالا آمدن سیستم عامل است در صورتی که RAID نرم افزاری پس از نصب سیستم عامل انجام می گیرد و عملا هیچ تأثیری بر بالا آمدن سیستم عامل نخواهد گذاشت. در عوض این روش آسان تر از روش سخت افزاری است و روی مادربوردهای ارزان قیمت و قدیمی نیز قابل اجرا است.
در صورتی که یک هارد دیسک جدید به رایانه خود بیفزایید، بدون ایجاد تغییرات عمده می توانید این هارد دیسک را به RAID نرم افزاری خود ا ضافه کنید اما این کار در RAID سخت افزاری امکان پذیر نیست.
دقت داشته باشید که ویندوز XP می تواند تنها از RAID سطح صفر پشتیبانی کند، در حالی که ویندوز سرور می تواند از RAID سطح یک نیز پشتیبانی کند.
برای ایجاد RAID نرم افزاری در سیستم عامل ویندوز روی My Computer راست کلیک کرده و Manage را انتخاب کنید. از پنجره جدید، Disk Management را برگزینید. در این قسمت حداقل 2 یا تعداد بیشتری هارد دیسک را که به رایانه خود متصل کرده اید را مشاهده می کنید. روی هارد دیسک هایی که قصد دارید سیستم RAID را روی آنها ایجاد کنید راست کلیک کرده و با استفاده از گزینه Convert to Dynamic آنها را به دیسکهای دینامیک تبدیل کنید.
یک دیسک دینامیک، دیسکی است که مجموعه ای از اطلاعات مربوط به دیگر دیسکهای دینامیک را در خود ذخیره می کند. در واقع در حالت عادی، دیسک ها با یکدیگر هیچگونه ارتباطی ندارند اما با دینامیک کردن دیسک، آنها را از وجود یکدیگر با خبر می کنید، علاوه بر این که تغییر اطلاعات در هر یک از دیسک ها، روی دیسک های دینامیک دیگر نیز تأثیر خواهد گذاشت.
دقت کنید که تبدیل کردن یک دیسک به دیسک دینامیک باعث می شود که تنها سیستم عامل فعلی روی آن فعال باقی بماند و دیگر سیستم عامل هایی که ا حتمالا روی آن دیسک نصب شده اند، غیرقابل دستیابی است.
در مرحله بعد، از Select Volume Type گزینه Striped را انتخاب کنید و با استفاده از Next به مرحله بعد بروید. هارد دیسک های دینامیک خود را انتخاب کرده و حجم مورد نظر خود را برای هر هارد دیسک انتخاب کنید. این حجم تعیین می کند هر یک از این هارد دیسک ها چه مقدار از فضای خود را در اختیار یک درایو از سیستم RAID قرار دهد. توصیه می شود که این حجم برای هارد دیسک های مختلف، برابر انتخاب شود. سپس به مرحله بعد بروید و یک حرف برای نام درایو جدید خود انتخاب کنید و کار را به پایان برسانید. در این مرحله شما صاحب یک درایو شده اید که تحت سیستم RAID صفر کار می کند. یعنی سرعت ذخیره و خواندن اطلاعات این درایو به اندازه تعداد هارد دیسک ها افزایش یافته است. در مرحله انتخاب حجم، تمام حجم هارد دیسک ها را انتخاب نکنید تا بتوانید با تکرار این عملیات، تعداد بیشتری درایو برای خود تولید کنید.

+ نوشته شده توسط معین اوحدی کارشک در جمعه پنجم تیر 1388 و ساعت 21:59 |
این هم لینک دانلود رساله ی روبوسینا از صفر بهترین منبع برای شروع :

دانلود روبوسینا از صفر

+ نوشته شده توسط معین اوحدی کارشک در سه شنبه بیست و نهم اردیبهشت 1388 و ساعت 17:36 |
شبیه سازی دو بعدی را از کجا شروع کنیم؟

شبيه سازی دوبعدی فوتبال
در اين رشته که از جمله قديمی ترين رشته های مسابقات جهانی ربوکاپ است، تيمهايی متشکل از 11 برنامه نرم افزاری با هم به رقابت می پردازند .

مرحله ی اول :

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

مرحله ی دوم :

یک نسخه از سیستم عامل لینوکس را در سیستم خود نصب کنید .(من سوزه رو پیشنهاد می کنم.)

مرحله ی سوم :

باید سرور مسابقات را از آدرس زیر دریافت کنید :

دریافت سرور

شما باید سرور و مانیتور را دریافت کنید .(نسخه ی 13)

برای نصب سرور :

1-اول هر دو فایل را از حالت فشرده خارج کنید.

2-وارد پوشه ی سرور شوید و کلید اف چهار را فشار دهید تا ترمینال باز شود و سپس تایپ کنید :

./configure;make;make install

حتما باید با حروف کوچک بنویسید و سپس کلید اینتر را فشار دهید .

همین عمل را در پوشه ی مانیتور انجام دهید .

 

مرحله ی سوم :

بیس را دریافت کنید .

دریافت بیس

این بیس یک تیم پایه است که فقط شوت می زند و شما باید با الگوریتم های هوش مصنوعی تیم را قوی کرده و قهرمان شوید .

اگر هم سوالی داشتید در این انجمن  مطرح کنید .

 

از این که تمام متن را با حروف فارسی نوشتم متاسفم چون ویندوزم خرابه!

سبز باشید!

 

+ نوشته شده توسط معین اوحدی کارشک در چهارشنبه نهم اردیبهشت 1388 و ساعت 12:48 |
طرفداران زبان دلفی و اشخاصی که قصد دارند با این زبان، پا به دنیای برنامه نویسی بگذارند، خوب است یک شناخت کلی از این زبان، ابزارها و اجزای تشکیل دهنده آن کسب کنند.می دانیم که دلفی یک زبان بصری یا ویژوال است که اجزای بسیاری در آن به صورت آماده وجود دارد و می توان به ساده ترین شکل و با سرعت زیاد آنها را درون فرم برنامه قرار داده و از قابلیت های آنها استفاده کرد.

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

 

بقیه در ادامه ی مطلب ...


ادامه مطلب
+ نوشته شده توسط معین اوحدی کارشک در دوشنبه هفتم اردیبهشت 1388 و ساعت 13:7 |
این مقاله نحوه ی به روز رسانی ubuntu8.10  از نسخه 8.04 راکه در سی ام اکتبر ۲۰۰۸ منتشر شده  به شما آموزش می دهد.

 

مقاله در ادامه ی مطلب ...


ادامه مطلب
+ نوشته شده توسط معین اوحدی کارشک در دوشنبه هفتم اردیبهشت 1388 و ساعت 13:5 |
Konsole: یک ترمینال قدرتمند و پر از ویژگی به صورت پیش فرض در محیط KDE می باشد. از ویژگی های آن
شفافیت مجیط رومیزی، تصاویر پس زمینه،پروفایل ها، تب ها، آگاه سازی و بسیاری از رویه های دیگر که می توان از آن انتخاب کرد.

Gnome-Terminal: ترمینال محیط گنوم که از تب و شفافیت محیط رومیزی با یک واسط پاک و ساده برخوردار است.

Yakuake: یک ترمینال شگفت آور برای محیط KDE که از مزیت بزرگ آن مخفی بودن تا زمانی که با F12 صدا زده شود، می باشد. از یک سبک شبیه به ترمینال Quake 3 یا سایر بازی های FPS برخوردار است. از تنظیمات کنسول شامل افکت های شفاف و آگاه سازی استفاده می کند.

Tilda: این یک ترمینال دیگری است که سبکی شبیه به کنسول های Quake دارد. آن را می توان همتای Yakuateنامید. هنگامی که شما برای اولین بار آن را اجرا می کنید، شما با یک پنجره برای تنظیم آن و انتخاب میانبر سراسری برای نمایش و مخفی سازی آن روبرو خواهید شد.

ROXTerm: این ترمینال یک ترمینال نوشته شده با GTK با یک واسط شبیه به یکی از ترمینال های گنوم می باشد.که پس زمینه ها، افکت های شفافیت محیط رومیزی، پروفایل ها، طرح های رنگی و خیلی چیزهای دیگر را پشتیبانی می کند.

Xterm: یک ترمینال سنتی برای سیستم پنجره X با یک واسط حداقل می باشد. با استفاده از فایل پیکره بندی خود قابل پیکره بندی می باشد.

Eterm: یک ترمینال پیشرو در طراحی شبیه به سبک های روشن می باشد. شما برای اجرای باید از کلمه Eterm با e بزرگ استفاده کنید.

xvt: یک ترمینال پایه که از مقدار حافظه خیلی کم استفاده می کند و شبیه xterm می باشد.

rxvt: مخفف ترمینال توسعه یافته مجازی ما ( our extended virtual terminal )می باشد، که می تواند به عنوان یک جایگزین کوچک تر xterm استفاده گردد.

mrxvt: از تب ها و تصاویر پس زمینه در حالی که حریص حافظه نمی باشد استفاده می کند و وابستگی به کتابخانه های KDE و Gnome ندارد.

rxvt-unicode : از ویژگی های آن می توان به افکت های شفاف اشاره کرد. شامل اسکرول بارها و پشتیبانی از کاراکترهای یونیکد پشتیبانی می کند.

atrem: بعد از ترمینال xvt آمده است. بر پایه xvt می باشد و به حافظه کمتری نسبت به xterm نیاز دارد.

wterm: نمونه ساز ترمینال سبک و ساده دیگری که شامل اسکرول بارها، تصاویر پس زمینه و شفاف می باشد.

منبع:
http://tuxarena.blogspot.com/2008/09/13-terminal-emulators-for-linux.html
ترجمه: احسان شاهرخی
ehsantux@gmail.com

 

+ نوشته شده توسط معین اوحدی کارشک در شنبه بیست و نهم فروردین 1388 و ساعت 20:32 |
مقدمه ای بر الگوریتم ژنتیک


الگوریتم ژنتیک یا Genetic Algorithm (GA) در واقع شبیه سازی بقای انسان هست! تا حالا پیش خودتون فکر کردین این همه سال گذشته چطوری انسان ها از بین نرفتن و نسلشون پا برجاس؟ فکر می کنید رمز موفقیتشون چیه؟

فکر کنم 183462130973.347928374261010000001 باشه!
" ... "

انسان ها بقا دارن چون با یه قانون خاصی پیش میرن که واضحه که موفق بوده!
حالا همین قانون رو توی کامپیوتر میشه شبیه سازی کرد! اما چجوری؟
فکر کنید میخوایم جواب این تابع رو بدست بیاریم:
كد:
X^2 + e^X + 3*sin(X) + int(-X^X) / X = 12
بنظر خیلی پیچیده میاد! شاید با روش های تحلیلی حل نشه و نیاز به محاسبات عددی باشه! یکی از راه ها الگوریتم ژنتیک هست که بعضی اوقات به شکل باور نکردنی سریع به جواب میرسه.
خوب پس من با یه مقدمه ازش شروع می کنم:


اولین مرحله اینه که ما یک سری کرومزوم به عنوان جمعیت اولیه بصورت تصادف انتخاب می کنیم. هر کرومزوم یه عدد هست در مبنای دو.
مثلا این کرومزوم هارو به عنوان جمعیت اولیه در نظر می گیریم:
كد:
00001011
00100010
01000000
11100001
01101100
00000111
11001010
11110000
00010101
10000000
11100100
بعد از اینکه جمعیت اولیه معلوم شد این کرومزوم ها توی تابع Fitness امتحان میشن و بر حسب اینکه به جواب مورد نظر نزدیکن یا نه یه عدد بین صفر تا یک بهشون اختصاص داده میشه که صفر یعنی اصلا بدرد نمی خوره و یک یعنی عالیه!
بر حسب سلامتی کرومزوم ها چند تا از اون ها به عنوان والدین نسل بعدی انتخاب میشن! مرحله ی بعدی مرحله ی Breed هست که طبق فرایند Crossover کرومزوم ها با هم ازدواج می کنن و بچه دار میشن!

وااای مگه یه مشت صفرو یکم می تونن با هم ازدواج کنن!
" یکم صبر کنی میبینی که می تونن! "

خوب حالا فرآیند Crossover چطور انجام میشه؟
از کرومزوم های برگزیده دوتا دوتا انتخاب میشن و فرایند Crossover روی هر زوج بصورت زیر انجام میشه:
كد:
First pair:
00001|011
00100|010
After crossover:
00001010
00100011
در بالا فرآیند Crossover رو برای زوج اول می بینید! همونطور که مشخصه اول هر کزومزوم از بیت 5ام به دو قسمت تقسیم شدن و 5 بیت اول کرومزوم اول با 3 بیت دوم کرومزوم دوم ترکیب شده و برعکس. به این ترتیب دو فرزند جدید بوجود اومد.
همین کار برای بقیه ی کرومزوم ها هم انجام میشه، ممکنه یک کرومزوم دو یا چند بار در فرآیند Crossover بکار برده شه، احتمال شرکت کرومزوم هایی که سلامت بهتری دارند توی فرآیند Crossover بیشتره!
بعد از فرآیند Crossover یک مرحله داریم که احتمال وقوعش خیلی کم هست به نام جهش یا Mutation. توی این فرآیند یک بیت تصادفی از یه کرومزوم تصادفی رو عوض می کنند. مثلا اگر بیت چهارم یک کرومزوم انتخاب بشه در صورتی که صفر باشه اونو یک می کنند یا بلعکس.
كد:
First chromosome:
00001011
After mutation:
00011011
این فرایند تو واقعیت هم وجود داره مثلا در یک آدم جهشی به وجود میاد و نابغه میشه یا در یه آدم دیگه جهش بوجود میاد و ناقص میشه! در الگوریتم ژنتیک هم همینطوره، یک جهش ممکنه کاملا مفید یا کاملا مضر باشه.
بعد از این مرحله دوباره کرومزوم های جدید به جمعیت اولیه برای نسل بعد بر می گردند و این فرآیند ها تکرار میشه تا با یک تلورانسی به جوابی که می خوایم نزدیک شیم! این روش در مقایسه با بقیه ی روش های آزمایش و خطا خیلی پیشرفته تره و خیلی وقت ها بسیار سریعتر به نتیجه ی مطلوب میرسه!

منبع: سیاوش محمودیان - بلاگ - مقدمه ای بر هوش مصنوعی
__________________
+ نوشته شده توسط معین اوحدی کارشک در پنجشنبه پانزدهم اسفند 1387 و ساعت 13:5 |
اين مقاله در رابطه با اوزان ورودي و نحوه مديريت آنها نوشته شده است. وزن دهي در مقادير ورودي زماني مورد استفاده قرار مي گيرد كه Agent در مقابله با تعداد زيادي راه قرار دارد و مي‌بايستي يكي از اين راه‌ها را انتخاب نمايد. استفاده از وزن دهي در مقادير ورودي، باعث مي‌شود تا Agent بهترين راه را در وضعيت فعلي انتخاب نمايد. اين مقاله ابتدا توضيحاتي مختصر در اين رابطه مي‌دهد و سپس مسائل مربوط به اوزان را شرح خواهد داد. به منظور بهتر مشخص شدن مثال‌هاي ورودي از شبيه سازي فوتبال ٢ بعدي به عنوان محيط استفاده گرديده است.



ادامه مطلب
+ نوشته شده توسط معین اوحدی کارشک در دوشنبه بیست و هشتم بهمن 1387 و ساعت 16:56 |
ایران اسلامی و فناوری برتر روباتیک

به جرات میتوان گفت یکی از وسیع ترین شاخه های فنی مهندسی،رشته مهندسی رباتیک میباشد.

برای اثبات این حقیقت کلمه robotic یا RoboticEngineering را در اینترنت جستجو کنید و یا نگاهی با تاملبه حضور رباتها در رشته ها و مکانهای مختلف بیاندازید.
برای مثال رباتی را معرفی میکنم که ارتباط بسیار کمی با رشته های فنی مهندسی و علوم پایه دارد،ربات جراح تحت فرمان پزشک جراح در اتاق عمل با حضور مستقیم پزشک و یا غیر مستقیم و با کمک اینترنت ،نمودی از پیشرفت این رشته است که بسیار مفید و حیاتی میباشد.تصور کنید رباتی را که شما طراحی کرده اید وسیله ای برای نجات یک بیمارو بهبودی وی شده است که قطعاَ لذت موفقیت آنفخستگی زحمتتان را از بین میبرد.
نمونه ی بارز دیگر گستردگی علم رباتیک، که بسیار مورد توجه کشورهای مختلف مثل ژاپن،کره،آمریکا و ایران و چند کشور دیگر میباشد،رباتهایامداد و نجات هستنند که یاری رسان گروه امداد در حوادث غیر قابل پیش بینی میباشد.به هر حال این گرایش از رباتیک آن قدر اهمیت داشته است که مسابقاتی تحت عنوان شبیه سازی امداد و نجات در روبوکاپ برگزار میگردد.
وظیفه اصلی رباتهای امداد رسان پیدا کردن مصدومین و اعلام مکان آنها به سرور میباشد.
رباتها در پروژه های JPL شرکت فضایی NASA نقش مهمی دارند از جمله آنها Spriteو Sojourner می باشد.این نیز استفاده دیگری از رباتیک میباشد .
مصارف رباتها در همه ابعاد زندگی انسان به سرعت در حال گسترش است تا کارهای سخت و خطرناک را به جای انسان انجام دهند مثل بررسی وضعیت داخلی راکتورها هسته ای که یک ربات هیچ گاه تحت تاثیر تشعشعات رادیو اکتیو قرار نمیگیرد و این یک جایگزینی خوب و مفید رباتها میباشد.
مسابقات روبوکاپ درایران 
بیش از یک دهه پیش اولین مسابقات روبوکاپ در کشور ژاپن برگزار شد که مورد استقبال اکثر کشور های جهان بویژه جمهوری اسلامی ایران قرار گرفت و با توجه به تاکیدات مقام معظم رهبری مبنی بر پیشرفت جنبش نرم افزاری مورد توجه جوانان ایرانی قرار گرفت و آنها توانستند با دست خالی اما با ایمان و پشتکار فراوان به موفقیت های بزرگی برسند و کشور ما توانست مجوز برگزاری یکی از معتبر ترین مسابقات جهانی یعنی"ایران اپن" را از فدراسیون جهانی اخذ کند و مقام های برتر جهانی را از آن خود کند.


رده بندی مسابقات روبوکاپ : 
۱ : مسابقات فیزیکی : 
 ۱ : small size league
 2 : middle size league
 3 : یه مسابقاتی مثل روبات انسان نما و روبات چهار پا و .. است که زیاد دربارشون نمیدونم .تقریبا مقدماتی ان.مثل راه رفتن از پله بالا رفتن و ..
۲ : مسابقات مجازی : simulation legue
که من در همین مورد صحبت میکنم.
دو سه تا مسابقه هست اینجا که 
۱ : مسابقات فو تبال : 2d , 3d
۲ : مسابقات مربی گری coach

چشم انداری از رباتیک

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

ابته مفید بودن ساخته دست بشر در درجه اول قرار میگیرد در راستای همین مطالب بد نیست نگاهی با تامل و جدی به فیلم "مرد 200 ساله" بیاندازید که به تصور شما کمک میکند.
برخی از مقام ها ی جهانی تیم های ایرانی در مسابقات سال 2008 : 

Iranian Award Winner Teams
Team Affiliation League Award
Brave Circles Sheikh Bahaee University Rescue Infrastructure Simulation 1st Place
Impossibles08 Sharif University of Technology Rescue Agent Simulation 3rd Place
MRL Azad University of Qazvin Middle-Size 1st Place in Technical Challenge
MRL Azad University of Qazvin Soccer 3D Development 1st Place
MRL Azad University of Qazvin Rescue Robot 2nd Place
MRL Azad University of Qazvin Rescue Robot 3rd Place in Best-In-Class Mobility
Resquake+resko@UniKoblenz K.N Toosi University of Technology+University of Koblenz Landau Rescue Robot 3rd Place
Resquake K.N Toosi University of Technology Rescue Robot 2nd Place in Best-In-Class Mobility
UI-AI Azad University of Qazvin Soccer Mixed Reality 3rd Place

منابع:
www.robocup.de/RC08/index.html
www.linuxboy.blogfa.com


+ نوشته شده توسط معین اوحدی کارشک در یکشنبه بیستم بهمن 1387 و ساعت 22:13 |