روشهای برآوردهزینه تولید نرم افزار

روشهای برآوردهزینه تولید نرم افزار

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

بنابراین مهم‌ترین ابزار یک پروژه نرم‌افزاری و به طور تقریبی بخش اعظم هزینه‌های آن به نیروی کار متخصص درگیر در آن مرتبط است. سوال این است که چه‌گونه می‌توان زمان و هزینه‌ی یک پروژه نرم‌افزاری را تخمین زد. ماهیت خلاق پروژه‌های نرم‌افزاری و انتزاعی بودن آن تخمین هزینه و زمان انجام آن‌ها را بی‌نهایت مشکل می‌کند. روش‌های متداول تخمین زمان و هزینه خود اساسا انتزاعی است با این همه هنوز هم تخمین پروژه امری لازم و ضروری محسوب می‌شود. روش‌های مختلفی در تخمین و برآورد حجم فعالیت‌های لازم در انجام یک پروژه نرم‌افزاری در جامعه نرم‌افزار ارایه شده است. فارغ از این‌که از چه روشی در تخمین زمان و هزینه یک پروژه نرم‌افزاری استفاده می‌شود، مهم آن است که بدون وجود اطلاعات کافی در زمینه حوزه و دامنه سیستم و قابلیت‌ها و توانایی‌های آن و هم‌چنین شرایط محیطی و فرهنگی تیم تولید نرم‌افزار و پیچیدگی‌های تکنیکی آن، برآورد واقع‌بینانه پروژه کاری دور از دست‌رس می‌نماید. پس نخست باید اطلاعات ضروری آماده شود. نگارنده این اطلاعات را در سه دسته تقسیم کرده است: ۱٫ اطلاعات مربوط به حوزه سیستم و نیازهای کارکردی و غیر کارکردی آن ۲٫ اطلاعات مربوط به محیطی که سیستم در آن عملیاتی خواهد شد. ۳٫ اطلاعات مربوط به محیط تولید و توسعه سیستم از این سه دسته اطلاعات گروه اول مهم‌ترین است. عدم تشخیص درست نیازها و قابلیت‌های کارکردی و غیر کارکردی سیستم، عموما و به‌غایت ما را از تخمین درست هزینه و زمان مورد نیاز دور می‌کند. به همین دلیل لازمه یک برآورد مناسب، تشخیص و تعیین اولیه نیازهای سیستم در فرآیندی سازمان‌یافته است. در روش‌های سنتی ساخت‌یافته به طور معمول بخشی از فعالیت‌های مرحله‌ی امکان‌سنجی به این امر اختصاص دارد. در فرآیندهای مدرن مهندسی نرم‌افزار مانند RUP نیز یکی از فعالیت‌های مهم مرحله اول آن یعنی Inception به تعیین و تخمین نیازهای سیستم و انتظارات اولیه برمی‌گردد؛ یعنی همان اطلاعات لازم جهت برآورد هزینه و زمان پروژه نرم‌افزاری. نکته‌ی مهم آن است که در کشور ما ایران، به طور معمول قبل از انجام چنین مرحله‌ای و صرفا بر اساس شرح مشخصات بسیار کلی سیستم؛ یعنی بدون داشتن سه بخش اطلاعات که در بالا به آن اشاره شد، زمان و هزینه پروژه‌ استعلام و برآورد و حتا تعیین می‌شود. چنین کاری در عمل به شکست پروژه‌های نرم‌افزاری منجر می‌شود. چرا که در مسیر تولید سیستم به دلیل اختلاف فزاینده‌ای که بین برآوردهای اولیه و هزینه‌های واقعی پروژه‌ای به وجود می‌آید دو نتیجه مشخص را غیر قابل اجتناب می‌کند: – یا هزینه تولید سیستم افزایش می‌یابد که این یعنی ضرر تولیدکننده نرم‌افزار – و یا سیستم با قابلیت‌ها و انتظارات ناکافی و در کیفیتی نامناسب ارایه می‌شود و این یعنی ضرر کارفرما یا مشتری پس چه باید کرد؟ چه‌گونه می‌توان اطلاعات لازم سه گانه فوق را به دست آورد؟ آیا استفاه از RFP گروه اطلاعات اول را فراهم می‌سازد؟ به این سئوال به سختی می‌توان پاسخ داد؛ چرا که بر حسب آن که RFP را چه گروهی و با چه فرمت و استانداردی تهیه کرده باشد، جواب می‌تواند متفاوت باشد. در این میان حلقه‌ی گمشده‌ی دیگری نیز به نظر می‌آید. اجرای مرحله اول فرآیند برای تعیین و برآورد واقعی‌تر پروژه ضروری است، با این همه مشکل در آن است که مشخص نیست هزینه‌ی اجرای این مرحله بر عهده کارفرما خواهد بود یا مجری؟ در صورتی که پروژه طی قراردادی قبل از اجرای این مرحله واگذار شود، پس برآوردها تفاوت فراوانی با واقعیت خواهد داشت و در صورتی که قرارداد پس از مرحله‌ی اول و جمع‌آوری اطلاعات بسته شود، در آن صورت هزینه‌ی اجرای مرحله اول بر عهده چه کسی خواهد بود؟ به همین دلیل بسیاری از پروژه‌های نرم‌افزاری در نیمه‌ی راه به دلیل برآوردهای غلط به شکست می‌انجامند یا در واقع نمی‌توانند نیازهای کاربران را برآورده نمایند. همان طور که گفته شد روش‌های مختلفی برای تخمین و برآورد حجم فعالیت‌های لازم برای انجام یک پروژه نرم‌افزاری معرفی شده است. معروف‌ترین آن‌ها روش COCOMO است. از آن‌جا که قصد این نوشته تشریح این روش نیست فقط به بیان این نکته بسنده می‌شود که در این روش اساسا میزان خطوط کد لازم برای تولید برنامه بر اساس مفهوم Function point تخمین زده شده و بر اساس آن حجم فعالیت‌های لازم برای پروژه تخمین زده می‌شود. با فرض این‌که نیازهای سیستم در قالب یوزکیس‌ها شناسایی شده اند، متخصصین RUP نیز روش‌های گوناگونی را برای تخمین هزینه و برآوردهای واقع بینانه پروژه ارایه کرده‌اند. روش دیگری که در میانه‌ی دهه‌ی ۱۹۹۰ ارایه شد روش Use Case Point است. در این روش با تعریف Use Case Point های سیستم و تخصیص نفر ساعت لازم برای پیاده‌سازی آن‌ها حجم فعالیت لازم تخمین زده می‌شود. هر یوزکیس شامل سناریو یا سناریوهایی است. علاوه بر UseCaseهای سیستم واسطه‌های ارتباطی یوزکیس با دنیای بیرون ازجمله برای مثال پنجره‌های ویندوز و یا صفحات وب نیز وجود دارند که طراحی و پیاده‌سازی آن خود حجم کار قابل توجهی را می‌طلبد. بنابر این قدم اول تشخیص یوزکیس‌ها و تشریح سناریوهای آن‌هاست. فرآیند تشخیص و تشریح یوزکیس‌های سیستم هر چه با دقت بیش‌تری انجام شود، برآوردهای واقعی‌تری را منتج خواهد بود. اما همان‌طور که کارشناسان RUP به خوبی می‌دانند، یوزکیس‌ها به عنوان مدلی از فعالیت‌های سیستم به طور کامل انتزاعی بوده و بسته به آن‌که چه کسی و از چه زاویه‌ای آن‌ را می‌نویسد سطوح و پیچیدگی‌های مختلفی می‌توانند داشته باشند. برای مثال می‌توان صدور چک را یک یوزکیس تلقی کرد و هم‌زمان می‌توان صدور چک را زیرسیستمی معرفی نمود که خود شامل تعداد مشخصی یوزکیس است. نتیجه آن که سطوح یوزکیس‌ها می‌توانند مختلف باشند و بنابراین در تعیین تعداد یوزکیس پوینت‌ها باید دقت بیش‌تری مبذول نمود. به هرحال بهتر است که سطوح انتزاع در تمامی سیستم از یک روال ثابتی پیروی کند، در غیر این صورت باید ضریب سطح انتزاع نیز در معادلات مربوط به Use Case Point در نظر گرفته شود. – کارکنان بخش نرم افزار گروه دومی که مدیر یک پروژه با آن‌ها روبه‌روست، اعضای بخش‌های تولید نرم‌افزار و کمی دقیق‌تر اعضای تیم‌های نرم‌افزاری است. افرادی با تخصص‌ها و ویرگی‌های گوناگون که به منظور تولید و ارایه یک محصول نرم‌افزاری سازمان یافته‌اند. سازمان دادن و هدایت چنین تیمی به منظور تولید محصولی با کیفیت در چهارچوب زمان و هزینه پیش‌بینی شده کار ساده‌ای نیست. بخشی از مشکل همان‌طور که پیش از این نیز اشاره شد به ماهیت نرم‌افزار مرتبط است. برخی از ویژگی‌های خاص نرم‌افزار که آن را از دیگر محصولات تکنولوژیک متمایز می‌کند، عبارت است از: – محصول نرم‌افزاری به طور کامل انتزاعی است. – تولید آن به خلاقیت نیاز دارد. – گرایش به سمت پیچیدگی دارد. – برآورد زمان و هزینه‌ی تولید آن بحث‌انگیز و مشکل است. نیروی انسانی مهم‌ترین سرمایه اولین مشکل یک مدیر پروژه‌ی فراهم آوردن نیروی انسانی مناسب برای تیم است. مهندسان نرم‌افزاری که توانایی‌های آن‌ها به تخصص‌های نرم‌افزاری صرف محدود نشده و از مهارت‌های فردی دیگری چون برقراری ارتباط، توانایی، انگیزه‌ و روحیه‌ی خودآموزی و تحقیق برخوردار باشند. یک مدیر با تجربه بر آن است تا کسانی را برای همکاری انتخاب (یا استخدام) کند که به رشد دانش مجموعه تیم کمک کند. از آن‌جا که فناوری تولید نرم‌افزار به سرعت رو به تکامل است، یک مدیر با تجربه بر آن است که دانش مجموعه تیم یا شرکت خود را افزایش داده و بستری فراهم کند تا مجموعه تحت سرپرستی‌اش از آموزش کافی برخوردار باشند. در چنین حالتی کیفیت و کمیت دانش و توانایی اعضای تیم مضاعف میشود. اگر چه چنین آموزشهایی هزینه دارد با این همه سرمایه گذاری ارزشمندی محسوب می‌شود. به نظرنگارنده آموزش حین کار باید به عنوان یک اصل در شرکت‌ها و بخش‌های تولید نرم‌افزار پذیرفته شود . هدف اصلی این آموزش باید بر افزایش کارآیی اعضای تیم‌های نرم‌افزاری متمرکز باشد. به راحتی می‌توان ثابت کرد که هزینه‌ای که صرف آموزش تیم می‌شود، به سرعت با افزایش کارآیی اعضای تیم و رشد کیفیت نرم‌افزارهای تولیدی جبران می‌شود. خروج از برآوردهای زمانی برآورد تلاش‌های لازم برای تولید یک نرم‌افزار و برآورد زمان پروژه‌های نرم‌افزاری، یکی از بحث انگیز ترین مسایل مدیریت در پروژه های نرم‌افزاری است. بررسی روش‌های تخمین هزینه و زمان تولید یک نرم‌افزار از حوصله این نوشته خارج است. بسیاری از پروژه‌های نرم‌افزاری تنها بدلیل خروج از برآوردهای زمانی خود شکست خورده‌اند. بنا بر این بوضوح باید گفت که برآورد واقعی هزینه‌ی اجرای یک پروژه نرم‌افزاری یکی از بنیانی ترین قدمهای موفقیت یک پروژه نرم‌افزاری است [۱]. وقتی که پروژه‌ای می‌رود تا از زمان خود خارج شود، از مهندسان نرم‌افزار خواسته می‌شود ( و یا انتظار می‌رود) تا ساعات بیش‌تری را کار کنند تا پروژه بر مسیر پیش‌بینی شده منطبق شود. نکته این‌جاست که فشار کاری بر تیم نمی‌تواند لزوما نتایج قابل انتظار را برآورده سازد. برای روشن شدن این نکته تصور کنید که حفره‌ای در یک کشتی در حال حرکت ایجاد شده و کاپیتان کشتی از ملوانان می‌خواهد که آب وارد شده به کشتی را با سطل‌هایی به دریا بازگردانند تا کشتی غرق نشود! واضح است که پس از مدت زمانی، ملوانان آن قدر خسته می‌شوند که حتا نمی‌توانند سطل‌های خود را بلند کنند! و آب با سرعت بیش‌تری به کشتی نفوذ کرده و کشتی به همراه همه ملوانان به قعر دریا خواهد رفت! پس چه باید کرد؟ یک راه جای‌گزین برای چنین حالتی کشف محل رخنه و رفع اشکال و نقص به وجود آمده است. خروج از زمان پیش‌بینی شده برای مثال می‌تواند نشان از مشکل بزرگ دیگری یعنی نبود هماهنگی میان اعضای تیم باشد. بهترین راه آن است که یا پس از ۸ ساعت کاری و یا با تقسیم پروژه به بخش‌های کوچک‌تر، پس از رسیدن به اهداف هر بخش، همه به خانه‌های خود بروند. طبیعی است که اگر هدف قابل لمسی را ببینند احساس رضایت بسیار بیش‌تری خواهند داشت. چرا که فرستادن تیم به خانه‌های خود و یا حذف همه‌ی اضافه کاری‌ها بدون این که اعضای تیم پشرفت کارشان را به صورتی قابل لمس مشاهده کنیم، فقط باعث آن خواهد شد که زمانی هم که خارج از محیط کارند هم‌چنان به آن فکر کنند. به هر حال در زمانی که پروژه از زمان خود خارج می‌شود، بر عهده‌ی مدیر پروژه است که محل اشکال را کشف و نسبت به رفع آن به بهترین شکل ممکن و نه با درخواست یا انتظار کار اضافی، اقدام کند. نکته‌ی آخر آن‌که زمان‌بندی پروژه‌های نرم‌افزاری هنوز بیش‌تر یک هنر است تا علم. واقعا راهی برای پیش‌بینی همه‌ی ریسک‌های موجود در پروژه وجود ندارد و به همین دلیل توصیه می‌شود که در برآوردهای هزینه‌ی و زمان پروژه‌های نرم‌افزاری بسیار محافظه کارانه عمل شود. انگیزه انگیزه نقش بسیار مهمی در زندگی یک مهندس نرم‌افزار بازی می‌کند. کار نرم‌افزار نه یک کار خدماتی، نه یک کار تولیدی صنعتی بلکه خلاقیتی در دنیایی مجازی است. یک سیستم نرم‌افزاری، موجودی مجازی است که خلق می‌شود، رشد می‌کند و در نهایت از میان می‌رود. برای این که خلاقیت در اعضای تیم وجود داشته و تقویت شود، ایجاد و تقویت انگیزه‌های آنان بسیار مهم است. در بازار کار مناسب هر لحظه انتظار خروج عضوی از تیم می‌رود. یک مدیر پروژه ارزش مهارت‌هایی را که در اختیار دارد به خوبی می‌شناسد و می‌داند که سرمایه‌ی اصلی تیمش نیروی انسانی کار آزموده‌ای است که در اختیار دارد. فراموش نکنیم که با رشد سریع تکنولوژی‌های جدید، تقاضا برای مهارت‌های جدید همیشه رو به افزایش بوده و لذا برای بسیاری از مهندسان نرم‌افزار مجرب و کار آزموده، یافتن شغل مناسب در شرایط خوب بازار، مشکل نیست. گاهی حتا یک مهندس نرم‌افزار کار جدیدی را قبول می‌کند صرفا برای این که با تکنولوژی‌های جدید آشنا شده و موقعیت‌های جدید را تجربه کند. با فراهم آوردن شرایطی که اعضای تیم در حین کار خود از آموزش‌های مناسب برخوردار شوند، انگیزه جست‌وجوی کار جدید با هدف آشنایی با حوزه‌های جدید تکنولوژی به خودی خود از میان خواهد رفت. با این همه یک پروژه‌ی نرم‌افزاری همیشه مواجه با چالش از دست دادن هر یک از اعضای تیم است. یک راه حل احتمالی برای حل مساله بالا آن است که همیشه کاندیداهای آماده برای مصاحبه به منظور جای‌گزینی آن‌ها وجود داشته باشد. اما نباید فراموش کرد که جای‌گزینی اعضای تیم همواره با ریسک‌هایی همراه است و پر کردن جای خالی یک عضو تیم، به خصوص در میانه‌های راه پروژه، چندان هم ساده نیست.

یک مورد استفاده از الگوریتم زنبور عسل در دنیای دیجیتال

یک مورد استفاده از الگوریتم زنبور عسل در دنیای دیجیتال

هدف کنترل و تامین امنیت رایانه‌ها صورت می گیرد

دنیای مجازی در تسخیر زنبور دیجیتال

 

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

           

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


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

 

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

هریک از این زنبور‌های منفرد همچون همتایان زیستی واقعی خود خیلی زرنگ و باهوش نیستند. اما مواردی نظیر سرعت برقراری اتصال، بهره‌برداری سی‌پی‌یو یا یکی از تقریبا ۶۰ مورد جزییات فنی دیگر رایانه همان چیزی است که تمام و کمال از سوی این جانوران مجازی احساس شده و مورد دقت و مراقبت لازم قرار می‌گیرد.

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

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

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

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

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

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

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

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

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

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

به اعتقاد کارشناسان هرچند فرآیند اسکن یا تجسس آنتی‌ویروس‌ها در اوقات معین و معمولا در شب‌ها، موجب مصرف بهینه رایانه می‌شود، اما در عوض یک رایانه را در معرض آسیب‌پذیری بیشتری قرار می‌دهد.

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

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

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

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

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

بهینه سازی کلونی زنبورها

بهینه سازی کلونی زنبورها

سیستم های طبیعی مختلفی به ما یاد می دهند که ارگانیسم های خارجی بسیار ساده ایی توان تولید سیستم هایی با قابلیت انجام کارهایی بسیار پیچیده به کمک برهم کنشهای پویا با هم را دارند.متاهیوریستیک (ابرکشف) کلونی زنبورها (BCO) در این پروژه آورده شده است.کلونی مصنوعی زنبورها در پاره ایی نزدیک به هم و در مقایسه با کلونی زنبورهای طبیعی , متفاوت عمل میکنند.

 BCOبه همان میزان که قابلیت حل مسائل ترکیبی قطعی را دارد , قادر به حل مسائل ترکیبی ایی است که دارای عدم قطعیت نیز می باشند.

 

توسعه ی الگوریتم کشف کننده ی جدید برای حل مسئله ی Ride-Matching به کمک راه پیشنهاد شده (استفاده از کلونی زنبورها) راهی روشنگر برای نشان دادن قابلیتهای این روش محسوب می شود.


معرفی

           شمار زیادی از مدل های مهندسی و الگوریتم هایی که برای حل مسائل پیچیده به کار می رود که بر اساس کنترل و مرکزگرایی بنا شده اند.برخی از سیستمهای طبیعی )کلونی های حشرات اجتماعی) به ما یاد می- دهند که یک سری ارگانیسم های ساده ی خارجی قابلیت تولید سیستم هایی را دارند که به کمک بر هم کنشهای پویا قابلیت انجام اعمال بسیار پیچیده را دارند.

گروه زنبورها به خاطر استقلال داخلی کلونی و عملکردهای توزیع شده و سیستم درون سازمانی یکی از بهترین کلونی ها برای توضیح این مسئله شناحته شده است.


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


        حشرات اجتماعی (زنبورعسل , زنبور معمولی , مورچه ها , موریانه ها) برای میلیونها سال بر روی کره زمین زندگی کرده اند , آشیانه های مختلف و بسیاری از ساخته های پیچیده تر ساخته اند و آذوقه شان را سازماندهی کرده اند.کلونی حشرات اجتماعی بسیار انعطاف پذیر محسوب می شود و به خوبی قابلیت همساز شدن با محیط جدید را دارند.این انعطاف پذیری این امکان را به کلونی میدهد تا بتواند حتی با مواجه شدن با شرایط سخت و مشکلات , به زندگی خود ادامه دهد.

 

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


           مثالی برای چنین رفتارهایی , رقص مورچه ها در هنگام جمع آوری محصول است.مثال دیگری برای این حالت ترشح فنومون (هورمون جنسی) در مورچه هاست که موجب راه گذاری برای مورچه های دیگر خواهد شد.این سیستم های ارتباطی بین حشرات مختلف موجب به وجود آمدن مقوله ایی به نام “هوش اشتراکی” می شود.به این معنی که حشرات فوق به هنگام قرار گرفتن در کنار یکدیگر دارای فاکتوری هوشمند می شوند که در غیاب یکدیگر قادر به انجام چنین کاری نیستند.


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


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

  1.  منبع غذا را رها کند و دوباره به دنبال زنبور رقصانی بگردد تا بتواند منبعی جدید پیدا کند.
  2. خود به دنبال منابع غذایی جدید بگردد.
  3. در کندو اقدام به رقصیدن کرده و زنبورهای جدیدی را به دنبال خود بکشاند.


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


          لوسیچ و تدوروویچ اولین کسانی بودند که از رویه های پایه و ساده ی زنبوری برای حل کردن مسائل ترکیبی بهینه سازی استفاده کردند.آنها سیستم زنبوری (BS) را معرفی کردند و از آن برای حل مساله ی معروف Travelling Salesman استفاده کردند.

 

          در کلونی مصنوعی طراحی شده توسط ما شباهتها و تفاوتهایی با کلونهای واقعی زنبورها در طبیعت وجود دارد. در ادامه به معرفی FBS (Fuzzy Bee System) میپردازیم که قادر به حل مسائل ترکیبی طرح شده توسط انسانها است.به کمک FBS , Agent ها در ارتباطات با همدیگر از قوانین تقریبی دلیل گرایی و منطق Fuzzy استفاده می کنند.


           در BCO مامورهایی که ما به آنها “زنبور مصنوعی” می گوییم با همدیگر اجتماع می کنند تا بتوانند قادر به حل مسائل مشکلتر باشند. تمامی زنبورهای مصنوعی در ابتدای فرایند جستجو , در کندوی اصلی قرار دارند.در فرایند جستجو نیز , زنبورهای مصنوعی به طور کاملا مستقیم با یکدیگر ارتباط برقرار می کنند. هر زنبور مصنوعی یک سری حرکات محلی خاص انجام داده و به کمک آنها قادر خواهد بود تا راه حلی را بری مشکل فعلی خود پیدا کند.
         این زنبورها تک تک راه حلهای کمکی و زیرپایه ایی را ارائه می دهند تا در آخر با ادغام این راه حلها , راه- حل اصلی برای حل مسئله ی ترکیبی به دست بیاید.


       روند جستجو از تکرارهای پشت سر هم تشکیل شده است.اولین تکرار زمانی پایان میابد که اولین زنبور راه حل زیر پایه ی خود را برای حل مسئله ی اصلی ارائه دهد.


        بهترین راه حل زیرپایه در خلال اولین تکرار انتخاب شده و پس از آن , تکرار دوم شروع خواهد شد.در تکرار دوم , زنبورهای مصنوعی شروع به پیدا کردن راه حلی جدید برای مسئله ی زیر پایه میکنند و


        در پایان هر تکرار حداقل یک و یا چند راه حل ارائه شده وجود دارد , که آنالیست مقدار همگی آنها را مشخصی میکند. به هنگام حرکت در فضا , زنبورهای مصنوعی ما یکی از دو حرکت “حرکت به سمت جلو” و یا “حرکت به سمت عقب” را انجام می دهند. به هنگام “حرکت به سمت جلو” زنبورها راه و روشهای جدیدی را برای حل مسئله پیدا می کنند.آنها اینکار را به کمک یک سری جستجوهای شخصی و اطلاعات بدست آمده ی گذشته انجام میدهند. بعد از آن , زنبورها عمل “حرکت به سمت عقب” را انجام می دهند که همان برگشتن به کندوی اصلی است.در کندو همگی زنبورها در یک فرایند “تصمیم گیری” شرکت می کنند.ما در نظر می گیریم که هر زنبوری قابلیت درک و دریافت اطلاعات زنبورهای دیگر را بر اساس کیفیت دارد.به کمک این روش , زنبورها این قابلیت را دارند که با استفاده از اطلاعات دیگران , راههای بهتر حل مسئله را پیدا کنند.


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

                 ب) بدون اینکه کسی را جذب کند , دوباره به سراغ منبع راه حل خود برود.

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

 

            بر اساس میزان کیفیتی که زنبور از منبع خود به دست می آورد , فاکتوری به نام “وفاداری” در وی بوجود می آید که در واقع همان وفاداری به راهی است که خود زنبور انتخاب کرده است. بار دومی که زنبورهای مصنوعی برای پیدا کدن راه حل مسئله به حرکت در می آیند , این بار سعی در پیدا کردن راه های جدیدی برای حل مسئله دارند و بعد از اینکار دوباره عمل “حرکت به سمت عقب” را انجام داده و به کندو برمی گردند و دوباره در کندو در بحثی که در مورد پیدا کردن بهترین راه شکل گرفته , شرکت میکنند.


این روند زمانی پایان میابد که یک راه حل تقریبا کامل برای مسئله پیدا شود.

 


          زنبورها در فرایند پیدا کردن بهترین راه حل با مشکلات تصمیم گیری مختلفی مواجه میشوند.مشکلات زیر برخی از مشکلات رایج بین آنهاست :

  1.  راه حل زیرپایه ی بعدی که باید به راه حل اصلی اضافه شود چیست ؟
  2. آیا باید راه حل زیرپایه ی فعلی را رها کرد و به دنبال راه حل زیرپایه ی جدیدی رفت ؟
  3. آیا باید به گسترش راه حل زیرپایه ی فعلی ادامه داد ولی فعلا بدنبال دیگر زنبورها نرفت ؟


           بسیاری از مدلهای تصمیم گیری بر اساس ابزارهای مدلینگ مختلفی به وجود آمده اند.این حالات کاملا منطقی و عقلی هستند و بر اساس این اطلاعات بوجود آمده اند که ماموران تصمیم گیر (Decision Maker Agents)  مامورانی با داشتن بیشترین اطلاعات هستند و همیشه بهترین راه حل را برای پایان دادن به حل مسئله در نظر میگیرند. برای اینکه بتوان مدل های حل مسئله ی مختلفی را بوجود آورد محققان شروع به استفاده از راههای بی قاعده تری کردند.


        مفهوم ساده ی منطق فازی (Fuzzy) که توسط “زاده” معرفی شد قابلیت بهتری در توضیح مسائلی که با عدم قطعیت ادغام شده اند را دارد.با توجه به اطلاعات فوق , ما در انتخاب اینکه منطق زنبورها بر چه اساسی صورت می گیرد , از منطق فازی استفاده می کنیم.زنبورهای مصنوعی ما از منطق گرایی تقریبی و منطق فازی برای انجام اعمال خود استفاده می کنند.


          به هنگام دادن راه حلهای زیرپایه ی جدید به زنبور مصنوعی , زنبور حالت های زیر را برای برقراری ارتباط با راه حل زیرپایه ی فوق در نظر میگیرد : کم جاذبه , جذاب , خیلی جذاب


همچنین ما در نظر می گیریم که یک زنبور مصنوعی میتواند مقادیر خاصی را مانند “کوتاه” , “متوسط” و “بلند” و یا “ارزان” , “متوسط” و “گران” در نظر بگیرد.

 

            الگوریتم منطق تقریبی برای حل کردن مسئله ی جذابیت , از قوانین زیر تشکیل شده است :

  • اگر مقادیر بدست آمده از راه حل زیر پایه خیلی خوب باشد ،آنگاه راه حل بدست آمده خیلی جذاب است.


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

احتمال برای راه حل زیر پایه ی i که به راه حل اصلی الحاق میشود برابر است با نسبت میزان جذابیت تقسیم بر تمامی جذابیتهای راه حلهای زیر پایه ی دیگر :


برای اضافه کردن راه حلهای جدید به راه حل اصلی , زنبورها از نوعی انتخاب به نامRoulette Wheel Selection استفاده می کنند.


          در توصیف مکانیزم مقایسه ی راه حل های زیر پایه ی زنبور , ما موضوع “بدی راه حل زیرپایه” را معرفی می کنیم که برابر است با :

 

  •  بدی راه حل زیرپایه به وسیله ی k امین زنبور
  •  مقادیر تابع مفعولی از راه حل زیرپایه ایی که به وسیله ی n امین زنبور کشف شده
  •  مقادیر تابع مفعولی از بهترین راه حل زیرپایه ی کشف شده از ابتدای روند جستجو تاکنون
  • مقادیر تابع مفعولی از بدترین راه حل زیرپایه ی کشف شده از ابتدای روند جستجو تاکنون


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

  • اگر راه حل کشف شده بد بود،آنگاه وفاداری کم خواهد شد.

 

      زنبورها از منطق تقریبی و مقایسه ی راه حلهای زیرپایه ی کشف شده شان با بهترین راه حل زیرپایه , و مقایسه ی راه حلهای زیرپایه کشف شده با بدترین راه حلها از آغاز روند جستجو استفاده می  کند.


      در این روش حقایق تاریخی که بوسیله ی تمامی اعضای کلونی زنبور بوجود آمده اند تاثیر قابل توجهی بر راههای آینده ی جستجو دارند.

     از زمان شروع زندگی زنبورها و یا بهتر از بگوییم از زمان شروع زندگی حشرات اجتماعی , احتمال رخدادی است که در آن زنبور به پرواز در طول همان مسیر بدون گرفتن همراه ادامه دهد. احتمال بسیار کمی است ( <<1).
زنبورها تا محل رقص پرواز می کنند و با احتمالی برابر با می رقصند.این نوع ارتباط بین زنبورها منجر به ساخته شدن فاکتوری به نام “هوش جمعی” میکند.


      در این حالت هنگامی که زنبور تصمیم می گیرد که همان مسیر را پرواز نکند , آن زنبور به سالن رقص رفته و از دیگر زنبورها پیروی خواهد کرد.


هر راه حل زیرپایه که در ناحیه ی رقص اعلان شده , دو ویژگی اصلی داشته است :

  1.  مقادیر تابع مفعولی
  2. تعداد زنبورهایی که آن راه حل زیرپایه را اعلان کرده اند


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


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

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


       جذابیت محاسبه شده ی راه در این روش میتواند مقادیری بین ۰ و ۱ را اختیار کند.هر چقدر مقدار محاسبه زیادتر باشد , راه حل اعلان شده جذابیت بیشتری دارد.زنبورها کم و بیش به راه اولیه و قدیمی خود وفادارند , همزمان راه های اعلان شده ی جدید جذابیت کم و بیشی برای آنها خواهد داشت.


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


         در این روش تعداد زنبورهایی که در طول یک مسیر خاص پرواز میکنند , قبل از رفت بعدی تغییر داده شده.با استفاده از دانش اجتماعی و به اشتراک گذاری اطلاعات , زنبورها بر مسیرهای تضمین شده ی جستجو تمرکز میکنند , و مسیرهای کمتر تضمین شده را کم کم ترک میکنند.

الگوریتم زنبور عسل

الگوریتم زنبور عسل

الگوریتم زنبور شامل گروهی مبتنی بر الگوریتم جستجو است که اولین بار در سال ۲۰۰۵ توسعه یافت ؛ این الگوریتم شبیه سازی رفتار جستجوی غذای گروه های زنبور عسل است. در نسخه ابتدایی این الگوریتم نوعی از جستجوی محلی انجام می دهد که با جستجوی کتره ای{Random } ترکیب شده و می تواند برای بهینه سازی ترکیبی {زمانی که بخواهیم چند متغیر را همزمان بهینه کنیم.}یا بهینه سازی تابعی به کار رود.

جستجوی غذا در طبیعت


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

قطعات گلدار با مقادیر زیادی نکتار و گرده که با تلاشی کم قابل جمع آوری است،به وسیله ی تعداد زیادی زنبور بازدید می شود؛ به طوری که قطعاتی از زمین که گرده یا نکتار کمتری دارد، تعداد کمتری زنبور را جلب می کند.

پروسه ی جستجوی غذای یک کلونی به وسیله ی زنبورهای دیده بان آغاز می شود که برای جستجوی گلزار های امید بخش {دارای امید بالا برای وجود نکتار یا گرده}فرستاده می شوند. زنبورهای دیده بان به صورت کتره ای{Random } از گلزاری به گلزار دیگر حرکت می کنند.


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


         این رقص که به نام “رقص چرخشی”{حرکتی مانند حرکت قرقره} شناخته می شود، اطلاعات مربوط به جهت تکه گلزار{نسبت به کندو}، فاصله تا گلزار و کیفیت گلزار را به زنبور های دیگر انتقال می دهد. این اطلاعات زنبور های اضافی و پیرو را به سوی گلزار می فرستد.


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


         وقتی همه ی زنبور ها به سمت ناحیه ای مشابه بروند، دوباره به صورت کتره ای {Random } و به علت محدوده ی رقصشان در پیرامون گلزار پراکنده می شوند تا به موجب این کار سرانجام نه یک گلزار ، بلکه بهترین گل های موجود درون آن تعیین موقعیت شوند.

 

الگوریتم زنبور هر نقطه را در فضای پارامتری- متشکل از پاسخ های ممکن- به عنوان منبع غذا تحت بررسی قرار می دهد.”زنبور های دیده بان”- کارگزاران شبیه سازی شده – به صورت کتره ای{Random } فضای پاسخ ها را ساده می کنند و به وسیله ی تابع شایستگی کیفیت موقعیت های بازدید شده را گزار ش می دهندجوابهای ساده شده رتبه بندی می شوند، و دیگر “زنبورها” نیروهای تازه ای هستند که فضای پاسخ ها را در پیرامون خود برای یافتن بالا ترین رتبه محل ها جستجو می کنند{که “گلزار” نامیده می شود} الگوریتم به صورت گزینشی دیگر گلزار ها را برای یافتن نقطه ی بیشینه ی تابع شایستگی جستجو می کند.

 

حالدرادامهبادوالگوریتمازالگویتم هایکلونیزنبورهاآشناخواهیمشداولینالگوریتم،الگوریتمکلونیزنبورهایمصنوعی استکهکاربرداصلیآندربهینه سازیمی باشدالگوریتمدومالگوریتمکاوشزنبورهایعسلمیباشدکهآننیزدربهینه سازیکاربرد دارد.

برخی کاربرد های دیگر الگوریتم زنبورعسل در مهندسی

آموزش شبکه عصبی برای الگو شناسی

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

 

الگوریتم های الهام گرفته شده از کلونی زنبورها

الگوریتم های الهام گرفته شده از کلونی زنبورها

دراین جا میخواستم و چندتا پست دیگه کمی درباره ی پروژه ی هوش مصنوعی خودم توضیح بدم که تونستم این الگوریتم رو پیاده سازی کنم و اگه کسی کمک خواست تا حدی که بتونم کمکش می کنم.

این متن مقاله ی خودمه که ارائه دادم :
تلاشهای زیادی برای مدل کردن رفتارهای خاص و هوشمندانه تجمع زنبورهای عسل انجام گرفته است Tereshko و Loengarov کلونی زنبور را به عنوان یک سیستم پویا درنظر گرفتند که از محیط اطراف اطلاعات جمع اوری میکند و رفتار خود را براساس این اطلاعات بدست آمده تنظیم می نماید. آنها یک ایده روباتی با توجه به رفتار کاوشی زنبورها مطرح کردند. غالبا این روباتها به صورت فیزیکی و عملکردی یکسان هستند. در نتیجه هر روبات میتواند به طور تصادفی جایگزین دیگر روباتها گردد. تجمع، قابلیت تحمل خطا را دارد. با رخ دادن خطا در یک عامل کار کل سیستم مختل نخواهد شد. روباتهای مجزا، مانند حشرات، دارای قابلیتها وتواناییهای محدودی هستند. همچنین دانش محدودی از محیط دارند. به عبارتی دیگر تجمع)ازدحام)، هوش جمعی همکارانه را بهبود میدهد. همچنین این آزمایش نشان میدهد که روباتهای حشره مانند در انجام وظایف حقیقی روباتها، موفق هستند. به علاوه آنها یک مدل کمینه از از رفتار کاوشگرانه زنبورها ارائه داند. این مدل شامل سه مولفه مهم میباشد: ۱)منبع غذایی ۲(زنبورهای کارگر ۳(زنبورهای غیرکارگر. این مدل دو نوع رفتار را دربرمیگیرد: سربازگیری برای یک منبع شهد و ترک منبع. Teodorovic پیشنهاد داد تا از هوش جمعی زنبورها در توسعه و بهبود سیستمهای مصنوعی با هدف حل مسائل پیچیده در حمل و نقل و ترافیک استفاده شود، همچنین او الگوریتم BCO (Bee Colony Optimization)را ارائه کرد که قادر است مسائل ترکیبی قطعی را همانند مسائل ترکیبی به خوبی حل نماید. Drias یک روش هوشمندانه جدید را معرفی نمود با نام BSO که الهام گرفته از زنبورهای واقعی است. Wedde یک الگوریتم مسیریابی جدید با نام BeeHive ارائه کرد که الهام گرفته از متدهای ارتباطی و ارزیابی و همچنین رفتار زنبورهای عسل میباشد. در این الگوریتم عاملها در منطقه شبکه که محدودهی کاوش نامیده میشود، در طول مسیرشان اطلاعات وضعیتی شبکه را به منظور بهنگام سازی جدول مسیریابی محلی جمع آوری می کنند. کارهای انجام شده که در پاراگراف های قبلی ذکرشد، شامل انواع مختلفی از مسائل بود. تنها دو الگوریتم بهینه سازی عددی در مقالات مبتنی بر رفتار جمعی زنبورهای عسل وجود دارد. Yang الگوریتم زنبورهای مجازی برای حل( (VBAبهینه سازی توابع عددی ارائه داده است. در ابتدا یک تجمع از زنبورهای مجازی ایجاد میشود و تجمع شروع به حرکت کردن در فضای مسئله به صورت تصادفی مینماید. این زنبورها هنگامی که یک یا چند منبع غذایی را یافتند که متناظر است با یافتن مقدار تابع، با یکدیگر تعامل برقرار میکنند راهحل برای مسئله بهینه سازی از شدت و قوت تعاملات زنبورها با یکدیگر بدست خواهد آمد. برای بهینه سازی توابع چندمتغییره Karaboga الگوریتم کلونی زنبورهای مصنوعی ( ABC ) را ارئه داد که با الگوریتم زنبورهای مجازی تفاوت دارد.

فصل درهم انگیختن مخزن‌ها و انبارها(راهنمای خرید تجهیزات ذخیره‌ساز NAS در سال 2015)

در این مقاله سعی داریم به ویژگی‌های حایز اهمیت دستگاه‌های NAS جدید (عموماً انتشار یافته در سال ۲۰۱۵) نگاهی بیاندازیم و دوباره مهم‌ترین پارامترهای خرید چنین سیستمی را بررسی و مرور کنیم.
ماهنامه شبکه در شماره ۱۳۵ (مرداد ۱۳۹۱) پرونده ویژه مفصلی درباره دستگاه‌های ذخیره‌سازی متصل به شبکه یا NAS (سرنام Network Attached Storage) منتشر کرد و ضمن بررسی انواع مدل‌های موجود در بازار و مقایسه عملی آن‌ها با یکدیگر، راهنمای خرید این محصولات را نیز ارائه داد. اما طی چند سال اخیر شاهد تغییر و تحولات متعددی به همراه ورود فناوری‌های جدید در حوزه دستگاه‌های ذخیره‌ساز تحت شبکه بودیم. نه تنها این دستگاه‌ها از انبار شرکت‌ها و اتاق‌های سرور به روی میزهای کار شرکت‌های رده متوسط و کوچک بازار راه پیدا کردند، بلکه در میان خانه‌ها و شبکه‌های بی‌سیم خانگی برای خود جا گرفتند. در گذشته، فقط متخصصان شبکه‌های کامپیوتری و مدیران مراکز داده دستگاه‌های NAS را می‌شناختند و ویژگی‌های حرفه‌ای این تجهیزات مد نظر بود، اما اکنون NAS همانند یک روتر بی‌سیم، پخش‌کننده دیجیتال، چاپ‌گر وغیره یک ابزار عمومی در سبد خرید کاربران است. به‌ویژه با ورود نسل جدید روترهای بی‌سیم پرسرعتی که به درگاه‌های USB مجهز هستند، فناوری‌ها و سرویس‌های کلاود و ذخیره آنلاین اطلاعات، رشد نمایی اطلاعات و نیاز به یک دستگاه نگه‌داری اطلاعات متصل به شبکه و اینترنت با کاربری و مدیریت ساده و مجهز به انواع ابزارها و قابلیت‌ها برای کار با دستگاه‌های موبایل ضروری و حتمی به‌نظر می‌رسد. به همین دلیل، در این شماره سعی داریم به ویژگی‌های حایز اهمیت دستگاه‌های NAS جدید (عموماً انتشار یافته در سال ۲۰۱۵) نگاهی بیاندازیم و دوباره مهم‌ترین پارامترهای خرید چنین سیستمی را بررسی و مرور کنیم.
مهم‌ترین ویژگی‌ها
هر دستگاه NAS باید ویژگی‌های پراهمیت زیر را داشته باشد. در واقع، این مشخصات تعیین‌کننده نوع و رده NAS هستند.اشتراک‌گذاری فایل: تمام دستگاه‌های NAS به قابلیت‌ها و امکاناتی برای اشتراک‌گذاری اطلاعات و فایل‌ها روی شبکه مجهز هستند. کامپیوترهای شخصی و ویندوز گزینه‌هایی برای اشتراک‌گذای فایل‌ها دارند، اما تفاوت دستگاه‌های NAS در دامنه این اشتراک‌گذاری است. برخی محصولات از تعداد کامپیوترهای بیش‌تر و حجم اشتراک‌گذاری اطلاعات بیش‌تر پشتیبانی می‌کنند و برخی دیگر از دستگاه‌ها می‌توانند فقط تعداد محدودی فایل و پوشه در شبکه به اشتراک بگذارند. محصولات رده بالای بازار طیف متنوعی از ابزارها برای اشتراک‌‌گذاری سریع فایل‌ها دارند و از فرمت‌های مختلفی پشتیبانی می‌کنند و برعکس محصولات رده پایین فاقد انعطاف‌پذیری لازم برای شبکه‌های بزرگ هستند (شکل ۱).
 شکل ۱: دستگاه‌های NAS در اندازه‌ و ظرفیت‌های مختلف ارائه می‌شوند. برخی برای مصارف دسکتاپ یا مناسب برای رک طراحی شده‌اند و از یک یا چند کشو جایگذاری هارددیسک پشتیبانی می‌کنند. 
پشتیبان‌گیری از کلاینت: اگر می‌توانید روی یک NAS عملیات‌ خواندن و نوشتن را انجام دهید، باید بتوانید از برنامه‌های پشتیبان‌گیری نیز استفاده کنید. برخی از دستگاه‌ها همراه با چند مجوز استفاده از ابزارها و نرم‌افزارهای پشتیبان‌گیری معمولاً مبتنی بر سیستم‌عامل ویندوز عرضه می‌شوند. اگر یک مدل NAS هیچ‌گونه ابزار یا قابلیتی برای پشتیبان‌گیری فراهم نمی‌کند یا مجوزهای لازم را به مشتری نمی‌دهد، انتخاب‌های زیادی در بازار دارید که می‌توانند این ضعف را جبران کنند. توجه داشته باشید که برخی از برنامه‌های پشتیبان‌گیری کلاینت عرضه شده همراه با محصولات NAS خیلی انعطاف‌پذیر نیستند یا کارایی مناسبی ندارند و در هنگام اجرا باعث افت توان خروجی سیستم و حتی خوابیدن شبکه می‌شوند. بنابراین، در نهایت مجبور خواهید بود به سراغ خرید یک نرم‌افزار پشتیبان‌گیری سومی بروید. پس اجازه ندهید ارائه کردن یا نکردن مجوز چند نرم‌افزار پشتیبان‌گیری به همراه NAS در تصمیم و خرید شما تأثیرگذار باشد. بسیاری از این دستگاه‌ها نیز می‌توانند به‌عنوان ذخیره‌ساز برای Time Machine شرکت اپل استفاده شوند و از ویژگی‌های این سیستم پشتیبانی کنند.
اتصالات اترنت: تمام دستگاه‌های NAS از طریق درگاه‌های اترنت به‌طور مستقیم به شبکه متصل می‌شوند. نسل جدید این ذخیره‌سازها از درگاه‌های اترنت گیگابیتی استفاده می‌کنند و تقریباً درگاه‌های اترنت ده/ صد مگابیتی منسوخ شده‌اند. البته هنوز در بازار مدل‌هایی یافت می‌شوند که چنین درگاه‌هایی دارند، اما پشتیبانی از فریم‌های با اندازه بزرگ (اصطلاحاً Jumbo Frame) هنوز همه‌گیر نشده است و قابلیت چندان مهمی هم نیست. کارت‌های شبکه و سیستم‌عامل‌های دسکتاپ امروزی توانایی ارسال سریع بسته‌ها را دارند؛ اگرچه ممکن است این سرعت به پای ارسال بسته‌های بزرگ نرسد، ولی هم‌تراز با آن خواهد بود و مشتری از این جهت ضعف یا مشکلی احساس نمی‌کند. در بازار مدل‌هایی از NAS همراه با درگاه‌های شبکه ده گیگابیتی (۱۰GbE) یا پشتیبانی از کارت‌های توسعه PCIe برای افزودن قابلیت‌های اضافی مانند درگاه‌های شبکه اترنت یک گیگابیتی بیش‌تر یا ده گیگابیتی ارائه می‌شوند. اگر NAS باید در یک شبکه پرسرعت چند ده گیگابیتی مانند ۴۰GbE یا ۱۰۰GbE مورد استفاده قرار گیرد، حتماً باید به سراغ مدل‌هایی با درگاه‌های اترنت ده گیگابیتی بروید (شکل ۲).
 شکل ۲: برخی از محصولات NAS به چند درگاه اترنت یک گیگابیتی یا ده گیگابیتی برای تبدیل NAS به یک سرور در شبکه مجهز هستند. 
پشتیبانی از SMB/CIFS: فایل سیستم تحت شبکه SMB/CIFS برای ارتباط NAS با ماشین‌ها و کلاینت‌های مبتنی بر سیستم‌عامل‌های مختلف روی بستر شبکه است. به لطف پروژه منبع ‌‌باز Samba، بسیاری از محصولات ذخیره‌ساز تحت شبکه امروزی از سیستم‌عامل‌های ویندوز، لینوکس، مک‌او‌اس وغیره پشتیبانی می‌کنند و به آخرین نسخه SMB مجهز هستند. از دیگر فایل سیستم‌های تحت شبکه می‌توان از NFS و AFP نام برد که باز هم روی محصولات جدید به‌طور کامل پشتیبانی می‌شوند. اگر شما کاربر سیستم‌عامل‌های لینوکس یا یونیکس یا هر سیستم‌عامل مشتق از این‌ها باشید، اصلاً به NFS نیازی نخواهید داشت و در نتیجه نباید نگران باشید. اگر کاربر سیستم‌های مک با سیستم‌عامل نسخه ۹ به بالاتر هستید، به فایل سیستم AFP نیاز خواهید داشت. دستگاه‌های NAS که از Time Machine اپل پشتیبانی می‌کنند، AFP نیز برایشان قابل تعریف است و مشکلی پیش نمی‌آید. توجه داشته باشید که فایل سیستم درایوهای داخلی دستگاه اصلاً مهم نیست. کلاینت‌ها نمی‌دانند و نیازی هم نیست بدانند که اطلاعات روی هارددیسک‌های متصل به دستگاه NAS با فرمت EXT3/4 یا XFS یا فرمت‌های دیگر ذخیره می‌شود بلکه چیزی که اهمیت دارد، استفاده از یک فایل سیستم تحت شبکه برای ارتباط با ماشین‌های کلاینت‌ مختلف است. بهترین فایل سیستم تحت شبکه SMB/CIFS است.
پنل مدیریتی تحت وب: تقریباً تمام شرکت‌های سازنده محصولات ذخیره‌ساز از پنل‌های تحت وب برای مدیریت و کنترل و پیکربندی سیستم استفاده می‌کنند. نکته مهم و قابل توجه این‌جا است که برخلاف روترهای امروزی هنوز بسیاری از سازندگان NAS از ابزارهای دسکتاپ مبتنی بر سیستم‌عامل ویندوز یا مک برای یافتن نشانی NAS IP، پیکربندی و تغییر آن روی شبکه‌های LAN استفاده می‌کنند. بنابراین، اگر یک کامپیوتر شخصی یا نوت‌بوک در شبکه LAN متصل به NAS دارید، بهتر است قبل از خرید NAS مورد نظر خود به دفترچه راهنمای نصب دستگاه و همچنین دستورالعمل‌های آن نگاهی بیاندازید. البته بسیاری از دستگاه‌های NAS تنظیمات و پیکربندی‌های خودکاری را از طریق پروتکل DHCP انجام می‌دهند. شما می‌توانید به پنل مدیریتی روتر لاگین و از فهرست دستگاه‌های متصل به آن نشانی IP دستگاه ذخیره‌ساز را یادداشت کنید و بعد با این نشانی IP به دستگاه متصل شوید. نرم‌افزارهای رایگان جمع‌وجور زیادی هم وجود دارد که با یک اسکن ساده شبکه LAN، نشانی IP تمام دستگاه‌ها تحت شبکه را به شما گزارش می‌دهد.
درگاه‌های USB: فکر نمی‌کنیم بتوان در بازار دستگاه NAS بدون پشتیبانی از یک یا چند درگاه USB یافت. از این درگاه‌ها می‌توان برای اتصال دستگاه‌های ذخیره‌ساز اکسترنال مانند هارددیسک اکسترنال یا حافظه فلش و پشتیبان‌گیری از اطلاعات داخلی ذخیره شده روی NAS استفاده کرد. برعکس این وضعیت هم می‌تواند اتفاق بیفتد؛ یعنی اطلاعات ذخیره شده روی دستگاه اکسترنال به روی شبکه به اشتراک گذاشته شود. برخی از محصولات NAS امروزی برای مدیریت درگاه USB کلید مخصوصی نیز طراحی کردند که با فشردن آن اطلاعات به‌سرعت از روی دستگاه اکسترنال به روی NAS یا برعکس به‌طور خودکار کپی می‌شوند. اکنون درگاه USB 3.0 متداول‌تر شده است و سرعت انتقال اطلاعات بیش‌تری فراهم می‌کند، اما رایج است که حداقل یک درگاه USB 2.0 نیز جاسازی می‌کنند تا سیستم‌های قدیمی مشکلی برای ارتباط با NAS نداشته باشند. تعداد درگاه‌های NAS دقیقاً به خواسته‌های شما از دستگاه ذخیره‌ساز برمی‌گردد. محصولاتی با پنج یا شش درگاه USB در بازار یافت می‌شود، ولی معمولاً بیش‌تر از دو تا سه درگاه نیاز نخواهید داشت. امروزه برای گرفتن توان خروجی بالا از NAS یا توسعه قابلیت‌های آن (مثلاً افزایش ظرفیت با اتصال NAS دوم) از درگاه‌های eSATA استفاده می‌کنند که نسبت به درگاه USB اهمیت کم‌تری دارند و غالباً در محصولات گران‌قیمت مناسب برای شبکه‌های بسیار بزرگ یافت می‌شود (شکل ۳).
 شکل ۳: به هنگام خرید یک NAS به درگاه‌های ارتباطی پشت دستگاه دقت کنید تا به تعداد مورد نیاز درگاه اترنت، درگاه USB، درگاه HDMI و eSATA داشته باشد. حتی این محصول درگاهی برای توسعه NAS و افزودن درایوهای بیش‌تر دارد. 
حساب‌های کاربری: به‌جز چند مدل خاص و نادر بیش‌تر دستگاه‌ها به شما اجازه تعریف چند حساب کاربری و گذرواژه را برای دسترسی به اطلاعات ذخیره شده روی NAS می‌دهند. ایجاد حساب‌های کاربری متعدد برای امنیت و محافظت بیش‌تر شبکه و NAS مناسب است؛ زیرا می‌توان برای هر حساب کاربری دسترسی به فایل‌ها و پوشه‌های مختلفی را تعریف و از دسترسی‌های بدون نیاز جلوگیری کرد. شما می‌توانید پوشه‌هایی «عمومی» تعریف کنید که تمام کاربران متصل به شبکه بدون نیاز به گذرواژه به آن دسترسی داشته باشند. نکته بسیار مهم گفتنی این است که امکان تعریف چند حساب کاربری به معنای امکان تعریف چند گروه کاربری نیست. اگر تمایل به تعریف گروه کاربری دارید، باید جدول مشخصات و ویژگی‌های NAS را مطالعه کنید و از این قابلیت اطمینان بیابید.
Diskful یا BYOD
یکی از تصمیم‌های کلیدی برای انتخاب و خرید یک NAS این است که یک دستگاه با هارددرایوهای از پیش نصب شده (Diskful) یا دستگاهی بدون هارددرایو (Bring Your Own Drive) بخریم و بعداً خودمان برایش هارددیسک جداگانه خریداری کنیم. در مجموع، مدل‌های Diskful ارزان‌تر از مدل‌های BYOD هستند؛ زیرا خرید جداگانه هارددیسک بیش‌تر از هارددیسک نصب شده روی NAS هزینه دارد. این وضعیت به‌ویژه روی دستگاه‌های تک درایو صادق است. بزرگ‌ترین مشکل دستگاه‌های ذخیره‌ساز Diskful این است که وقتی هارددیسک از پیش نصب شده خراب می‌شود یا طول عمر آن به سر می‌آید، ناچار می‌شوید از مدل‌های هارددیسک همان شرکت سازنده یا کارخانه خریداری کنید و آزادی انتخاب در بازار ندارید. اگر یک شرکت فقط گارانتی یک ساله‌ای برای هارددرایوها ارائه بدهد، خرید یک دستگاه Diskful نسبت به مدل‌های BYOD برتری خاصی ندارد، ولی وقتی یک گارانتی سه ساله قابل تعویض روی هارددرایوها دریافت می‌کنید؛ دستگاه‌های Diskful به‌صرفه‌تر خواهند بود. به‌ویژه برای افرادی که می‌خواهند ارتقای سیستم را بر اساس مدل موجود انجام دهند (شکل ۴).
 شکل ۴: ذخیره‌ساز DiskFul یا BYOD امکان تعویض سریع و ساده هارددیسک‌ها را فراهم می‌کند.
مزیت عمده و پررنگ مدل‌های NAS بدون هارددرایو نسبت به مدل‌های Diskful جایگزین کردن آسان هارددیسک‌ها است؛ زیرا این دستگاه‌ها باید توانایی و ابزارهای فرمت‌بندی و نصب هر گونه فایل یا پارتیشنی را روی هارددیسک‌ها داشته باشند. بسیاری از دستگاه‌های NAS که به چند درایو و فناوری رِید مجهز هستند، به کاربران اجازه می‌دهند تنها با یک درایو شروع به ذخیره‌سازی اطلاعات روی شبکه و مرور درایوهای دیگر را به سیستم اضافه کنند یا انواع سیستم‌های پشتیبان‌گیری را با درایوهای متعدد اجرا کنند. برای اطمینان بیش‌تر درباره این ویژگی‌ها حتماً باید پیش از خرید، دفترچه راهنمای دستگاه را مطالعه کرد و به جزییات مهاجرت به رِید و توسعه ویژگی‌های به‌کارگیری و جایگذاری هم‌زمان چند درایو توجه داشت. همیشه این ‌طور نیست که جزییات تنظیمات رِید اجازه هر گونه پیکربندی را روی درایوهای مختلف فراهم کند. به‌کارگیری رِید در کنار مزیت‌های بسیار زیاد، دردسرها و چالش‌های خاص خود را هم دارد. مثلاً کافی است یک درایو خراب با درایو سالم دیگری جایگزین شود. این عملیات به صرف زمان زیاد و بازهماهنگی میان درایوها نیاز دارد. برای یک دستگاه ذخیره‌ساز چهار درایوی (۴-Bay) مبتنی بر فناوری رِید ۵ بیش‌تر از یک روز نیاز است تا یک درایو یک ترابایتی تعویض شود. در دستگاه‌های چهار درایوی و بالاتر برای به‌کارگیری رِید ۵ و رِیدهای بالاتر از مجموعه‌ای از پیکربندی‌های خودکار مهاجرت و گسترش به رِید بر اساس ظرفیت و تعداد درایوها استفاده می‌کنند. برای نمونه مدل‌های Synology SHR و برخی مدل‌های شرکت NetGear از این رِید خودکار استفاده می‌کنند. در نهایت، به این نکته توجه داشته باشید که نمی‌توانید درایوهای قدیمی را از روی یک NAS جدا و روی NAS جدیدتر نصب کنید. پارامترهایی مانند کارایی و قابلیت اعتماد شما را به خرید درایوهای جدید بر اساس پیشنهادات شرکت سازنده NAS جدید مجبور می‌کنند. ظرفیت و سرعت درایوها باید با مشخصات NAS هم‌خوانی و سازگاری کامل داشته باشد. به همین دلیل است که ما پیشنهاد می‌کنیم قبل از خرید هارددیسک برای NAS راهنما و مشخصات هارددرایو مناسب را مطالعه کنید.
کلاس NAS
تصمیم بعدی درباره خرید یک دستگاه NAS، انتخاب مدل‌های تک درایو یا چند درایو رِید است. یک روش تقسیم‌بندی دستگاه‌های ذخیره‌ساز می‌تواند به‌صورت بدون رِید، رِید ۱ و رِید ۵ باشد. یک روش دیگر تقسیم‌بندی بر اساس تعداد درایوها به گروه‌های تک درایو، دو درایو، چهار درایو و بالاتر است. انتخاب میان مدل‌های بدون رِید یا مبتنی بر رِید فقط بر اساس امنیت اطلاعات نیست، بلکه باید ظرفیت مورد نیاز روی یک مدل تک درایو را در نظر گرفت. ممکن است شما برنامه‌ای برای استفاده از رِید نداشته باشید، ولی یک مدل تک درایو نیز برای شما کافی نباشد. از سوی دیگر، فارغ از نوع رِید ۰، ۱، ۵، ۶، ۱۰ وغیره نمی‌توان به یک درایو اطمینان کرد و همه اطلاعات حساس و مهم را روی آن ذخیره کرد.
رِید پشتیبان‌گیری نیست!
فناوری‌های رِید برای ساخت آرایه‌های بزرگی از ذخیره‌سازی اطلاعات با استفاده از درایوهای ارزان‌قیمت همراه با افزونگی طراحی شده‌اند. آرایه‌های رید ۵ و رید ۱۰ این امکان را فراهم می‌کنند که اگر شما یک هارددرایو را از دست دادید، اطلاعات شما از دست نروند. رید ۶ نیز برای محافظت از دو هارددرایو بدون از دست دادن اطلاعات طراحی شده است. نکته مهم این‌جا است که آرایه‌ای از درایوهای رِید شده از خرابی یا مخدوش یا از دست رفتن اطلاعات در برابر مشکلاتی مانند قطع شدن برق، خرابی منبع ‌تغذیه یا بورد کنترلر محافظت نمی‌کنند. آسیب‌دیدگی‌های فیزیکی یا سرقت‌ها نیز در همین راستا هستند. بنابراین، بدون در نظر گرفتن فناوری‌های رِید محاسبه کنید چه میزان فضای ذخیره‌سازی نیاز دارید؛ اگر در حدود ۶ ترابایت برایتان کافی است، می‌توانید یک NAS تک کشویی خریداری کنید. اگر ظرفیت‌های بیش‌تری می‌خواهید، باید به فکر خرید NAS دوم یا خرید NAS با تعداد کشوهای بیش‌تری باشید.
مهم‌ترین دلیل برای انتخاب یک NAS با قابلیت رِید ۱ می‌تواند امکان تکرار اطلاعات روی یک درایو دوم باشد. رِید ۱ سرعت بازیابی اطلاعات را در هنگام خراب شدن درایو اصلی بالا می‌برد. کافی است درایو خراب را از NAS خارج و یک درایو جدید جایگزین کنید تا فرآیند کپی اطلاعات و ساختن پارتیشن‌ها و پوشه‌ها به‌صورت آنلاین و خودکار آغاز شود. در دستگاه‌های NAS بدون رِید شما نیاز دارید تمام اطلاعات ذخیره روی درایو خراب را بازیابی کنید و این فرآیند بسیار کند و زمان‌بر خواهد بود. همچنین، بازیابی شامل اطلاعات به اشتراک گذاشته شده روی شبکه و اطلاعات پشتیبان‌گیری هم‌گام‌سازی شده نیز است. دلیل کندی کار نیز پهنای ‌باند کم‌تر انتقال اطلاعات از روی درایو خراب شده به روی درایو ثانویه اکسترنال است، ولی در رِید ۱ دو درایو داخلی هستند و پهنای ‌باندی بیش‌تری برای انتقال اطلاعات دارند.
مهم‌ترین دلیل برای انتخاب یک NAS با قابلیت رِید ۵ نیز این است که اگر شما به ظرفیت‌های بیش‌تر از ۶ ترابایت نیاز داشته باشد، امکان توسعه فضای ذخیره‌سازی در آینده را فراهم کرده و به شما اجازه می‌دهد بتوانید متناسب با رشد اطلاعات برنامه‌های کاربردی را با بالاترین کارایی ارائه دهید. دستگاه‌های ذخیره‌ساز تحت شبکه مبتنی بر رِید ۵ از شبکه‌های ده گیگابیت و سیستم‌‌های سخت‌افزاری قدرتمند پشتیبانی می‌کند و برای استفاده در شبکه‌های گسترده بسیار بزرگ سازمانی یا سیستم‌های مالتی‌مدیا مناسب است.

 

عضو جدید گوگل و تلاش برای پیوند هوش مصنوعی با واقعیت

عضو جدید گوگل و تلاش برای پیوند هوش مصنوعی با واقعیت

جئوفری هینتون

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

جئوفری هینتون (Geoffrey Hinton) یک دانش آموز دبیرستانی بود، زمانی که یک دوست متقاعدش کرد مغز انسان همانند یک هولوگرام کار می‌کند. برای خلق یکی از این تصاویر هولوگرافیک سه بعدی، پرتوهای نور بیشماری را که پس از برخورد به یک شی بازتاب یافته‌اند را ثبت نموده و سپس تمامی این تکه‌های کوچک اطلاعاتی را روی یک پایگاه وسیع داده‌ها ذخیره می‌کنند. از این رو هینتون نوجوان با این ایده که مغز بیشتر اوقات خاطرات را به شکلی کاملا مشابه ذخیره می‌کند، مجذوب شد. البته مغز بیشتر از آنکه این خاطرات را در یک محل خاص بایگانی کند آنها را در امتداد شبکه گسترده نورون‌ها پخش می‌کند.
در نگاه اول ممکن است این روش شبیه به یک ایده گذرا به نظر برسد اما برای هینتون همانند جرقه‌ای ناگهانی بود.
او با نگاهی به خاطرات آن دوران می‌گوید: «این ایده حقیقتا مرا هیجان زده کرد. این نخستین بار بود که در مورد نحوه عملکرد و فعالیت‌های مغز و این که حقیقتا چگونه کار می‌کند مطلبی را درک می‌کردم.»
این مسئله دستاوردی عمیق به دنبال داشت چرا که هینتون با تاثیر گرفتن از این گفتگوی دبیرستانی دست به کار شده و پیرامون شبکه عصبی در کمبریج و همچنین دانشگاه ادینبروی اسکاتلند مطالعات گسترده‌ای انجام داد. در اوایل دهه هشتاد او به دنبال اهدافی بلندپروازانه و البته گسترده برای تقلید کردن از مغز بود آن‌ هم با استفاده از سخت افزار و نرم افزارهای کامپیوتری، این امر به خلق شکلی ناب و خالص از هوش مجازی که امروز آن را یادگیری عمیق (Deep Learning) می‌نامیم کمک شایانی نمود.
برای سه دهه جنبش یادگیری عمیق در دنیای آکادمیک چندان مورد توجه نبود، اما اکنون هینتون و گروه کوچک همکارانش در این پروژه که شامل یان لیکان (Yann Lecun) از دانشگاه نیویورک و یوشوآ بنجیو (Yushua Bengio) از دانشگاه مونترال بود به اسامی بزرگ و معروف در دنیای اینترنت تبدیل شده‌اند . پس از تاثیر گذاری عمیق این ایده، هینتون به عنوان پرفسور و محقق در دانشگاه تورنتوی کانادا مشعول به کار شد همچنین او به صورت نیمه وقت برای گوگل نیز کار می‌کند، جایی که از تکنیک یادگیری عمیق برای بهبود شناسایی صدا، ضمیمه کردن عکس و بیشمار ابزارهای آنلاین دیگر استفاده کرد. لیکان هم در فیسبوک به کاری مشابه مشغول است. و حالا دیگر هوش مصنوعی را می‌توان در همه جا جستجو کرد از مایکروسافت و IBM گرفته تا بایدو (Baidu) موتور جستجوی عظیم چینی‌ها و البته ده‌ها شرکت معتبر دیگر.
google-hinton-2
یان لیکان: محقق حوزه هوش مصنوعی در دانشگاه نیویورک که هم‌اکنون برای فیسبوک کار می‌کند
هینتون به عنوان دانشجوی لیسانس در زمینه روانشناسی تحصیل می‌کرد زمانی که متوجه شد دانشمندان هنوز موفق به درک نحوه عملکرد مغز نشده‌اند. آنها نمیتوانستند توضیحی ارائه کنند که چگونه تعامل بین میلیون‌ها سلول عصبی باعث هوشمندی و درک انسان می‌شود. آنها قادر بودند فرآیند حرکت سیگنال‌های الکتریکی در طول آکسون‌ها را شرح دهند اما نمی‌توانستند چگونگی مشارکت نورون‌ها در یادگیری و درک انسان را توضیح دهند. برای هینتون اینها سوالاتی بزرگ بودند، سوالاتی که پاسخ‌شان بی‌تردید به محققان در زمینه به واقعیت بدل کردن هوش مصنوعی کمکی بزرگ می‌کرد، بویژه به آندسته آرزوهایی که دانشمندان دهه ۱۹۵۰ در سر می‌پروراندند.
هینتون در حال حاضر تمامی پاسخ‌ها را در اختیار ندارد اما به یافتن آنها بسیار نزدیک شده است. او موفق شده دست کم نواحی خاصی از مغز را به صورت شبکه عصبی مصنوعی مدل سازی کند.
هینتون در این مورد با شور و شوق خاصی می‌گوید: «زمانی که ما راهی برای بهبود عملکرد شبکه اعصاب یافتیم بسیار هیجان زده شده بودم، چرا که متوجه شدم به درک عملکرد مغز نزدیک‌تر شده‌ایم».
در جهان هینتون یک شبکه عصبی همانند نرم افزاری است که در سطوح مختلف فعالیت می‌کند. او و همکارانش شبکه اعصاب مجازی را که از لایه‌های به هم پیوسته نرم افزاری ساخته شده و درست شبیه به اعصابی بودند که در فشر مغز انسان مشاهده می‌شوند را الگو برداری کردند، همان بخشی از مغز را که با وظایفی گوناگون همچون بینایی و زبان سروکار دارد.
این شبکه عصبی مجازی می‌تواند اطلاعات را جمع آوری کرده و حتی قادر است نسبت به این داده‌ها واکنش نشان دهد. آنها از این توانایی برخوردارند که درک چگونگی مشاهده یک شی یا چگونگی شنیده شدن اصوات را تا حد زیادی تقویت کنند. آنها حتی در درک معانی کلمات زمانی که آنها را در کنار یکدیگر قرار می‌دهید هم موفق عمل می‌کنند. و البته تمامی این کارها را بدون آنکه از انسان سوال شود انجام می‌دهند، انسانی که عموما برچسب‌هایی را برای موضوعات مختلف فراهم و آنها را دسته بندی کرده است، روشی که عموما ماشین‌ها و ابزارهای مرسوم بدان صورت عمل می‌کنند.
این هوش مصنوعی حتی فراتر از این هم خواهد رفت چرا که یک شبکه عصبی بسیار سریع و کارآمد به شمار می‌رود. در مقایسه با بسیاری از ماشین‌ها در درجاتی بالاتر قرار گرفته و به مرور زمان قادر خواهد بود مسئولیت‌ها و وظایف بیشتری را برعهده گیرد.
هسته مرکزی
در بازگشتی به اوایل دهه هشتاد، یعنی همان زمانی که هینتون و همکارانش کار خود روی این ایده را بتازگی شروع کرده بودند، کامپیوترها هنوز به آن اندازه قدرتمند و سریع نبوده تا عملیات‌های محاسباتی بزرگ و پیچیده را انجام دهند، همچنین نمی‌توانسند اطلاعات گسترده مورد نیاز سیستم و شبکه عصبی را گردآوری کنند. موفقیت آنها محدود بود، از این رو انجمن هوش مصنوعی تا مدتی از آنها صرفنظر کرده و به دنبال میان‌برهایی برای ارتباطات بهتر رفت تا نتیجه کار چیزی بیشتر از یک تقلید صرف از مغز باشد.
البته در آن زمان تعداد محققینی که در این مسیر حرکت می‌کردند بسیار محدود بود. بر طبق نظر هینتون و لیکان در آن دوران کار به سختی پیش می‌رفت. دست کم حتی در سال ۲۰۰۲ و با وجود اینکه بیش از ۲۰ سال از اولین تلاش‌های آن دو گذشته و دستاوردهای مثبتی هم حاصل شده بود، جامعه دانشگاهی آنگونه که باید به این مسئله توجه نشان نداده و با بی‌علاقگی برخورد می‌کرد.
google-hinton-1
یوشوآ بنجیو: محقق و استاد هوش مصنوعی در دانشگاه مونترال
اما سرانجام به دنبال سرمایه گذاری صورت گرفته از سوی انجمن کانادایی ویژه تحقیقات برتر و همینطور بازگشت دیگر بار لیکان و بنجیو به پروژه، هینتون توانست گروهی از دانشمندان متخصص در زمینه کامپیوتر، زیست شناسی، مهندسی برق و الکترونیک، عصب شناسی، روانشناسی و پزشکی را گرد هم آورده و به نتایج بهتری دست یابد.
بر این اساس هینتون موفق شد تیمی زبده از نیروهای متخصص را تشکیل داده و موفق شود سیستم محاسباتی خلق کند که دقیقا از روی هوش طبیعی و ذاتی انسان الگو برداری کرده و عمل می‌کند، البته دست کم در آن محدوده‌ای که انتظارش را داشته و از هوش ذاتی متوقعیم. همچنین آنچه ما در مورد روش مغز برای بررسی اطلاعات گسترده‌ای که به صورت بصری، شنیداری دریافت میکند و نیز نوشتن کلیدهایی که برای فهم و پاسخ به محیط اطراف انجام می‌دهد. هینتون باور دارد که چنین ابداعی بیشک هوش مصنوعی را در مرکز توجه قرار داده و چه بسی حتی نگاه و واکنش جهان نسبت به این برنامه برای همیشه تغییر دهد. تا اینجای که به نظر می‌رسد حق با هینتون است.
بیش از هر چیز آنها می‌بایست روی نیروی محاسباتی قدرتمندی کار می‌کردند که قادر باشد ایده‌های اولیه آنها را جامع عمل بپوشاند. زمانی که گروه دیگر بار دور هم جمع شد نمودار کارشان روندی صعودی به خود گرفت. آنها موفق شدند الگوریتم‌های قدرتمندتری برای هوش مصنوعی خود ایجاد کنند تا قادر باشد روی پایگاه‌های داده‌ای وسیع‌تری کار کند. در نتیجه این تلاش‌ها توانستند در رقابت جهانی که پیرامون هوش مصنوعی برگزار شد برنده شوند، همچنین در اوایل دهه جاری کارهای آنها به صورت گسترده‌تری مورد توجه قرار گرفت.
google-hinton-3
کارگاه هوش مصنوعی NCAP در دانشگاه استنفورد
در سال ۲۰۱۱ یک محقق وابسته به NCAP (سازمان ارزیابی اروپایی که مقرش در شهر بروکسل است) و از مدیران دانشگاه استنفورد به نام Andrew Ng یک پروژه یادگیری عمیق روی گوگل را بنیان نهاند و امروز شرکت در حال کار روی استفاده از این شبکه عصبی برای کمک به تشخیص صدا روی تلفن‌های اندرویدی و ضمیه کردن عکس روی شبکه اجتماعی گوگل پلاس است. سال گذشته هینتون نیز به شرکت پیوست تا در کنار دیگر محققان دانشگاه تورنتو مشغول به کار شود. کمک‌های او می‌تواند این پروژه را حتی از این هم فراتر ببرد.
منبع: WIRED

 

۵ دام ذهنی متداول برای کارآفرینان

۵ دام ذهنی متداول برای کارآفرینان

رابرت سوفیا مولفی موفق در حوزه کسب و کار است که کتاب های پر فروشی دارد و در زمان سخنرانی های عمومی اش به سختی می توان یک صندلی خالی پیدا کرد. او تاکنون جوایز زیادی را به خاطر آثارش دریافت نموده و شرکت های مختلفی از مشاوره های ارزشمندش در حوزه مالی بهره گرفته اند.
آقای سوفیا تاکنون استراتژی های متعددی را در حوزه بازاریابی به ۵۰۰ شرکت مطرح برگزیده از سوی مجله فورچون ارائه کرده و بنیانگذار یک شرکت مشاوره به نام Platinum Advisor Strategies است که در لیست ۵۰۰۰ شرکت خصوصی آمریکا با بالاترین میزان رشد جایگاه ۳۶۲ را داراست و جایگاه دهم لیست مجله Agency را به خود اختصاص داده که صد شرکت دارای سریع ترین میزان رشد در خاک آمریکا را معرفی می کند.
روشن است که خودساخته بودن مزایای متعددی دارد و می توانید خودتان انتخاب کنید که با چه کسی، چه زمانی و در کجا کار کنید. از طرفی دیگر، زمانی که درآمدتان رابطه مستقیم با بهره وری شما داشته باشد، چالش های متفاوتی بر سر راهتان قرار خواهند گرفت.
آقای سوفیا می گوید: ظرف شش سال اخیر که موفق شده کسب و کار آنلاینش را به یک شرکت موفق چند میلیون دلاری با ۳۰ کارمند تبدیل کند، با چالش های مختلفی روبرو شده و در دام های متعددی افتاده است.
وی ادامه می دهد، برخی از این تله ها باعث کند شدن روند فعالیت من شدند و برخی دیگر به من ضرر مالی زدند اما به واسطه آنها درس های گرانبهایی را آموختم. در ادامه قصد داریم به ۵ دام مهمی اشاره کنیم که کارآفرینان را به دردسر می اندازند. با دیجیاتو همراه باشید.
۱- کمال گرایی
عده ای از افراد باور دارند اگر کاری را خودشان انجام ندهند نمی توانند آن را به نحو احسن به سرانجام برسانند. بله این پدیده آشنایی است که تحت عنوان کمال گرایی از آن یاد می شود و خصوصیتی است که وجودش در کارکنان ارج نهاده می شود و از ارزش بالایی برخودار است اما این مساله می تواند برای کارآفرینان یک دام بزرگ باشد.
راهکار: اگر دوست دارید که در بازار دیجیتالی عصر کنونی در صدر حرکت کنید این را در نظر داشته باشید که تامین برخی از نیازهایتان از نیروهای غیر مقیم، دیگر امری اختیاری نخواهد بود. شاید محول کردن کنترل برخی امور به افرادی که در خارج از شرکت حضور دارند در وهله نخست امری پر خطر به نظر بیاید اما این مساله در نهایت می تواند آزادی عمل شما را افزایش دهد.
بهتر است برای شروع برخی وظایف و امور ساده را از طریق این نیروها به انجام برسانید و پس از آنکه از توانمندی هایشان اطمینان یافتید امور پیچیده تر را به آنها محول نمایید.
نکته دیگر اینکه، استارتاپ هایی که بودجه محدود دارند می توانند جذب کارآموز را در برنامه خود قرار دهند و در ازای یک حقوق ماهانه اندک اما معقول با او توافق نمایند که آموزش رایگان و تجربیات خود را در اختیارش قرار خواهند داد.
۲- مدیریت ضعیف زمان
هنر مدیریت موثر زمان می تواند حتی برای کارفرمایان کهنه کار و با تجربه هم دشوار باشد. خبر خوب اینکه تکنولوژی می تواند نقش به سزایی در تغییر این مساله داشته و ما را در مدیریت هر چه بهتر زمان یاری دهد. اگر کسب و کاری آنلاین دارید می توانید از نرم افزارهای مختلف برای انجام اموری چون ارسال خودکار ایمیل استفاده نمایید و از این طریق در وقت خود صرفه جویی کنید.
۳- اولویت بندی نامناسب
صاحبان مشاغل، در طول روز، نقش های مختلفی را بر عهده می گیرند و در برخی موارد پیش می آید که به جای به دست گرفتن یک پروژه کلیدی که می تواند کسب و کارشان را وارد سطوح تازه ای کند، وقت خود را صرف امور ساده و پیش پا افتاده نمایند.
راهکار: استخدام یک مربی یا مشاور می تواند روشی مناسب برای به دست آوردن دورنمایی کلی از کسب و کارتان باشد و شما را در یافتن نقاط ضعف یاری دهد. با این کار، نتنها در زمان و هزینه های خود صرفه جویی خواهید کرد بلکه می توانید از اشتباهات دیگران هم درس بگیرید.
۴- در دست گرفتن پروژه های متعدد
در نظر داشتن جدیدترین گرایشات و تحولات شکل گرفته در استراتژی کسب و کار اهمیت بالایی دارد اما اینکه زمان و انرژی خود را صرف انجام امور مختلف نمایید هم می تواند شما را از پای درآورد.
راهکار: بهترین روش برای جلوگیری از این مساله این است که آنچه مفید واقع می شود را انجام دهید و کاری که نتیجه ای ندارد را کنار بگذارید و به تقویت نقاط قوت خود بپردازید.
۵- مشکل در دنبال کردن امور
براساس قانون پارکینسون، انجام یک کار به قدری طول می کشد که همه وقت ما را پر کند. به بیان دیگر انسان این استعداد را دارد که امور را در بازه زمانی طولانی تری نسبت به آنچه نیاز دارند به انجام برساند. به طور مثال چنانچه کاری به دو ساعت زمان برای انجام دادن نیاز داشته باشد و شما هشت ساعت در اختیار داشته باشید ترجیح می دهید که آن را در هشت ساعت به انجام برسانید.
راهکار: یکی از خطرات کارفرما بودن این است که مهلت ها را جدی نمی گیریم چراکه شکست احتمالی مان هیچگونه پیامد آنی و یکباره برایمان ندارد.
در حالی که تهدید تنبیه شدن، یک انگیزشگر ثابت شده است، پاداش هم می تواند به همان اندازه موثر واقع شود. شما می توانید برای خود اهدافی را تعریف کرده و به صورت ماهانه و یا دوره ای، میزان پیشرفت خود را با سایر اعضای تیم در میان بگذارید و در صورت اتمام کار در پروژه تعیین شده برای خود پاداشی را در نظر بگیرید.