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

نوع مقاله : علمی - پژوهشی

نویسندگان

1 استخراج معدن، مهندسی معدن و متالوژی، دانشگاه صنعتی امیرکبیر، تهران، ایران

2 دانشگاه صنعتی امیرکبیر

چکیده

در گذشته برای تعیین محدوده‌ی نهایی معدن از روش‌های گوناگونی استفاده شده است. از جمله‌ی این روش‌ها می‌توان به روش‌های مبتنی بر هوش مصنوعی مانند الگوریتم‌های فراکاوشی ژنتیک، مورچگان و رقابت استعماری اشاره کرد. الگوریتم زنبور عسل یکی از الگوریتم‌های قدرتمند فراکاوشی است که از زندگی تجمعی زنبورها الهام گرفته شده است. در این مقاله ابتدا یک مثال فرضی از زندگی زنبورها برای یافتن منبعی با بیش‌ترین میزان شهد توسط این الگوریتم شرح داده شد. سپس روشی بر اساس الگوریتم زنبور عسل برای تعیین محدوده‌ی نهایی معدن پیشنهاد و برای بررسی عملکرد آن ابتدا یک مثال دو بعدی به صورت مرحله به مرحله توضیح داده شد. این مثال نشان داد مواردی را که مخروط شناور قادر به یافتن جواب بهینه برای تعیین محدوده‌ی نهایی معدن نیست، می‌توان با الگوریتم زنبور عسل به خوبی حل کرد. سپس این الگوریتم برای تعیین محدوده‌ی نهایی در معدن سونگون با 45×100×120 بلوک مورد استفاده قرار گرفت. برای اعتبارسنجی پاسخ مسئله‌ی تعیین محدوده‌ی نهایی با استفاده الگوریتم زنبور عسل، از نظریه‌ی گراف و مخروط شناور استفاده شد. نتایج نشان می‌دهد که اختلاف نقدینگی محدوده‌ی به دست آمده از طریق الگوریتم زنبور عسل حدود 3/12 درصد از محدوده‌ی مخروط شناور بیش‌تر و تنها 6/1 درصد از محدوده‌ی نظریه‌ی گراف کم‌تر است.

کلیدواژه‌ها

موضوعات


عنوان مقاله [English]

Determine optimal pit limit using artificial bee colony algorithm

نویسندگان [English]

  • Ebrahim Noroozi Ghaleini 1
  • M Ataeepour 2
1 Mining, Mining & Metallurgy Engineering, Amirkabir university of technology, Tehran, Iran
2 Amirkabir University of Technology
چکیده [English]

In the past, various methods have been proposed to determine the ultimate pit limit. Among the methods, can be pointed out artificial intelligence-based methods such heuristic algorithms, genetic, ants and colony competition. Artificial bee colony (ABC) algorithm is one of the most powerful heuristic algorithms inspired by the cumulative life of bees. In this paper, first, a hypothetical example of the life of the bees was described to find the source with the highest number of nectar by this algorithm. Then, a method based on the bee algorithm is proposed to determine the ultimate pit limit, and to examine its performance, a two-dimensional example is described step by step. In this example, it was found where in cases, the moving cone can not find the optimal solution for determining the ultimate pit limit, the ABC is well suited for its solution.Then, this algorithm was used to determine the ultimate limit of Sungun mine with a number of 120*100*45 blocks. To validate the problem solving of determining the ultimate limit using the ABC algorithm, graph theory and moving cones was used. The results show that the difference in income from the determination of the ultimate pit limit using the ABC algorithm from the moving cone and the graph theory is 1.6% and 12.3%, respectively.

کلیدواژه‌ها [English]

  • Ultimate pit limit
  • Artificial bee colony
  • Graph theory
  • Moving cone

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

ابراهیم نوروزی قالینی1، مجید عطایی پور2[*]

1کارشناس ارشد استخراج معدن، دانشگاه صنعتی امیرکبیر، Ebrahim.noroozi@aut.ac.ir

2دانشیار دانشکده مهندسی معدن و متالورژی، دانشگاه صنعتی امیرکبیر،map60@aut.ac.ir

 

(دریافت: 30-02-1397، پذیرش: 14-09-1397)

چکیده

در گذشته برای تعیین محدوده‌ نهایی معدن از روش­های گوناگونی استفاده شده است. از جمله این روش‌ها می­توان به روش­های مبتنی بر هوش مصنوعی مانند الگوریتم­های فراکاوشی ژنتیک، مورچگان و رقابت استعماری اشاره کرد. الگوریتم زنبور عسل یکی از الگوریتم­های قدرتمند فراکاوشی است که از زندگی تجمعی زنبورها الهام گرفته شده است. در این مقاله ابتدا یک مثال فرضی از زندگی زنبورها برای یافتن منبعی با بیشترین میزان شهد با این الگوریتم شرح داده شد، سپس روشی بر اساس الگوریتم زنبور عسل برای تعیین محدوده‌ نهایی معدن پیشنهاد و برای بررسی عملکرد آن ابتدا یک مثال دو بعدی به صورت مرحله به مرحله توضیح داده شد. این مثال نشان داد مواردی را که مخروط شناور قادر به یافتن جواب بهینه برای تعیین محدوده‌ نهایی معدن نیست، می‌توان با الگوریتم زنبور عسل به خوبی حل کرد. سپساز این الگوریتم برای تعیین محدوده‌ نهایی در معدن سونگون با بلوک 45×100×120 استفاده شد. برای اعتبارسنجی پاسخ مساله‌ تعیین محدوده نهایی با استفاده الگوریتم زنبور عسل، از نظریه‌گراف و مخروط شناور استفاده شد.نتایج نشان می­دهد که اختلاف نقدینگی محدوده‌ به دست آمده از طریق الگوریتم زنبور عسل حدود 3/12 درصد از محدوده‌ مخروط شناور بیشترو تنها 6/1 درصد از محدوده‌ نظریه‌گراف کمتراست.

واژه­های کلیدی

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

 

 

1- مقدمه

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

برای تعیین محدوده‌ نهایی معدن می­توان از روش­های­ دستی یا رایانه­ای استفاده کرد. در روش دستی از مفهوم ارزش سربه‌سری و صفر کردن ارزشدر مرزهای محدوده‌ نهایی استفاده می­شود. طراحی محدوده‌ نهایی با روش­های دستی زما‌ن‌بر است و طراحی به این روش نیازمند مهندسان و طراحان باتجربه است. همچنین این روش تنها در کانسار‌های کوچک قابل کاربرد است.روش‌هایکامپیوتری بر استفاده از مدل بلوکی مبتنی است. در این روش­ها ابتدا کانسار به بلوک­های کوچک­تر تقسیم شده و سپس عیار بلوک­ها با یکی از روش­های تخمین عیار مانند زمین آمار یا عکس فاصله تخمین زده می­شود. پس از تهیه­ مدل بلوکی عیاری[3] با استفاده از قیمت ماده‌­معدنی و هزینه­ها مدل بلوکی اقتصادی[4] معدن تهیه می­شود. در مدل بلوکی اقتصادی ارزش بلوک­ها ممکن است مثبت، منفی یا صفر باشد و ارزش بلوک­های هوا در بالای توپوگرافی صفر در نظر گرفته می­شود.محدوده‌ بهینه‌[5] واقعی، محدوده­ای است که سود حاصل از آنمحدوده اولا مثبت است و ثانیا از بین مثبت‌های ممکن، بیشینه مقدار را دارد. روش­های کامپیوتری به دو دسته کلی روش­های مبتنی بر منطق ریاضی[6] و روش­های جستجوگر تقسیم می­شوند. روش­های مبتنی بر منطق ریاضی همواره قادر به یافتن محدوده‌ بهینه‌اند اما در حل مسایل بزرگ محدودیت دارند و برای حلمسایل بزرگ به زمان بسیار طولانی نیاز دارند. از جمله روش­های ریاضی می­توان بهبرنامهریزی پویا[7][1-3]، لرچ و گروسمن مبتنی بر نظریه‌ گراف[8][4]، سیمپلکس دوگان[9][5]، الگوریتم حمل و نقل[10][6] و جریان شبکه[11][7] اشاره کرد.برای رفع این محدودیت محققان از سال‌ها پیش به دنبال یافتن روش­هایی برای حل مسایل با زمان کوتاه­تر بوده‌اندکه الگوریتم­های جستجوگر نتیجه‌پژوهش­ها در این حوزه است. با این الگوریتم­ها مسایل در زمانی معقول و با دقت قابل قبول حل می­شوند[8, 9]. الگوریتم­های جستجوگر را می‌توان به دو دسته‌ الگوریتم‌های کاوشی[12] و فراکاوشی[13] تقسیم کرد. از جمله الگوریتم­های کاوشی می­توان به مخروط شناور[14][10]، مخروط شناور II[11]، کروبوف[15][12]و کروبوف اصلاح شده[13]اشاره کرد. از جمله الگوریتم­های فراکاوشی استفاده شده برای تعیین محدوده‌ نهایی معدن می­توان الگوریتم­های ژنتیک[16][14]، کلونی مورچگان[17][15] و رقابت استعماری[18][16]را نام برد.

در سال­های اخیر استفاده از هوش مصنوعی[19] در بسیاری از مسایل مهندسی متداول شده است. الگوریتم­های بهینه‌سازی فراکاوشی زیر شاخه‌ هوش مصنوعی‌اند والگوریتم زنبور عسل یکی از الگوریتم­های مبتنی بر هوش جمعی[20] است. الگوریتم­های کلونی زنبور مصنوعی[21][17]، بهینه­سازی کلونی زنبور[22][18]، بهینه­سازی ازدحام زنبور[23][19]، زنبور مجازی[24][20] و الگوریتم زنبورها[25][21] از جمله الگوریتم­هایالهام گرفته از زندگی اجتماعی زنبورهای عسل‌اند. الگوریتم بهینه­سازی جفت­گیری زنبور عسل[26][22] نیز بر اساس رفتار جفت­گیری زنبورها توسعه یافته است. الگوریتمABC اولین بار توسط کارابوگا[27]ارایه شد[17]. در این مقاله از این الگوریتم برای تعیین محدوده‌ نهایی معدن استفاده شده است. پس از اوافراد زیادی برای بهبود این الگوریتم تلاش کردند که از نسخه‌های بهبود یافته‌ آن می­توان به I-ABC، G-ABC،ABC-SA، PABC، CABC اشاره کرد[23-27][21]. برخی از نویسندگان برای افزایش کارآیی الگوریتم زنبور عسل از تلفیق آن با سایر الگوریتم­ها استفاده کرده­اند. از جمله این تلاش­ها می­توان به تلفیق الگوریتم زنبور عسل با الگوریتم‌‌های سیمپلکس[28][28]، ژنتیک[29]، مورچگان[30] و تکامل تفاضلی[29][31] اشاره کرد. همچنین تلاش­‌هایی برای افزایش سرعت همگرایی[30] الگوریتم در حل مسایل بزرگ انجام شده است[32, 33]. بر اساس یک تحقیق در سال 2014 از بین مقالات ارایه شده در مورد الگوریتم­ زنبور، 58 درصد موارد باالگوریتم کلونی زنبور مصنوعی سروکار داشته‌اند[34].

از الگوریتم زنبور عسل در حل بسیاری از مسایل مهندسی، صنعتی و ریاضی مانندبهینه‌سازی مکان حفر­ چاه­‌ها در مخازن نفتی[35]، بهینه‌سازی تخلیه‌ آب از سد‌ها[36]، خوشه‌بندی داده‌‌ها[37]، زمان‌بندی کار ماشین­‌ها[38]، خطایابی تصادفی نیروگاه اتمی[39]و از تلفیق آن با شبکه­‌های عصبی مصنوعی  در پیش­بینی فشار انتهای چاه بههمراه شبکه [40] استفاده شده است. از جمله معدود موارد کاربرد این الگوریتم در معدن، پیش­بینی و بهینه‌سازی عقب‌زدگی[31] ناشی از انفجار در معادناست[41].

در این مقاله کاربرد الگوریتم زنبور عسل برای حل مساله‌ تعیین محدوده‌ نهایی تشریح شده است. پس از شرحی کلی بر الگوریتم زنبور عسل و حل یک مثال فرضی از زندگی زنبورها با استفاده از آن،مراحل الگوریتم برای حل مساله‌ محدوده‌ نهایی تشریح و یک روندنما[32] برای تعیین محدوده‌ نهایی معدن ارایه شده است. سپس روند حل الگوریتم بر روی یک مدل دو بعدی نشان داده شده  و برای اعتبار­سنجی عملکرد الگوریتم در مقیاس واقعی، الگوریتم در محیط نرم­افزار Matlab بر روی یک معدنسونگونپیاده­سازی و نتایج آن با نتایج به دست آمده از نظریه‌ گراف مقایسه شده است.

2- زندگی زنبور‌ها در طبیعت

زنبور‌ها به‌صورت جمعی زندگی می­کنند. هر یک از این حشرات به تنهایی یک جزو ساده­ است که در کنارهم یک کلونی زنبور را تشکیل می­دهند که رفتاری منسجم و پیچیده دارد. این رفتار منسجم و پیچیده باعث ایجاد سیستمی یکپارچه می‌شود که توانایی کشف و بهره­برداری از شهد گل­ها را دارد. اعضای یک کلونی زنبور عسل ممکن است در مسافت­های زیاد و در جهت‌‌های گوناگونی پخش شوند و از منابع غذایی بهره­برداری کنند. هر کلونی زنبور از سه دسته زنبور تشکیل می‌شود کههر یک از این دسته‌ها وظایفی معینی را بر عهده دارند. زنبور‌های پیش‌آهنگ[33]اولین دسته‌اندکهحدود 5 تا 10 درصد کلونی را تشکیل می­دهند. وظیفهزنبور‌های پیش‌آهنگ کشف منابع جدید است. این زنبور‌ها به صورت تصادفی در محیط اطراف کندو پخش می­شوند و به جستجوی غذا می­پردازند.زنبور‌های پیش‌آهنگپس از برگشت به لانه در یک رقص چرخشی[34] اطلاعات خود را با سایر زنبور‌‌های درون کندو به اشتراک می­گذارند و تعدادی از آن­‌ها را برای بهره­برداری از منبع کشف شده استخدام می­کنند. زنبور‌های کارگر[35]که حدود نیمی از یک کندو را به خود اختصاص می­دهند، دومین دسته را تشکیل می­دهند. وظیفه‌این دسته از زنبورها استخراج منابع غذایی از پیش مشخص شده است. زنبور‌های ناظر[36]سومیندسته از زنبور‌های درون یک کندو را تشکیل می­دهند. این زنبور‌‌ها در درون کندو منتظر سایر زنبو‌ها می­مانند و پس از تبادل اطلاعات در رقص چرخشی یک منبع غذایی را که غنی‌تر از سایر منابع است، انتخاب و از آنبهره­برداری می­کنند. این زنبور‌ها بر اساس شایستگی منابع غذایی به آن­‌ها اختصاص می­یابند و منابع شایسته‌تر زنبور بیشتریرا جذب می­کنند. به بیان ساده­تر زنبور عسل ناظر زنبوریاست که در منطقه رقص منتظر سایر زنبورها برای کسب اطلاعات در مورد منابع غذایی می‌ماند و در نهایت یکمنبع را انتخاب می­کند. زنبور عسل کارگر زنبوری است که به طرف منابع غذایی ازپیش مشخص شده می­رود و زنبورعسل پیش‌آهنگ زنبوری است که به‌صورت تصادفی به جستجوی غذا می­پردازد.

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

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

-      مقداردهی اولیه

-      تکرار (تا رسیدن به وضعیت دلخواه)

-      ارسال زنبور‌های کارگر به منابع غذایی

-      ارسال زنبور‌های ناظر به منابع غذایی

-      ارسال زنبور‌های پیش‌آهنگ برای جستجوی منابع غذایی جدید

در مرحله‌ مقداردهی اولیه مجموعه‌ای از منابع غذایی به‌صورت تصادفی به وسیله زنبور‌های کارگر انتخاب و مقدار شهد آن­‌ها اندازه‌گیری می­شود. زنبور‌های کارگر پس از برگشت به کندو، اطلاعات حاصل از منابع غذایی را در منطقه‌ رقص اطراف کندوبا زنبور‌های ناظربه اشتراک می­گذارند. در مرحله‌ دوم هر زنبور کارگر پس از تبادل اطلاعات، به منبع غذایی که در چرخه‌ قبل مشاهده کرده است باز می­گردد و یک منبع غذایی جدید را در اطراف منبع غذایی موجود انتخاب می­کند. در مرحله‌ سوم زنبورهای ناظر یک منبع غذایی را بر اساس اطلاعات به اشتراک گذاشته شده به وسیله زنبورهای کارگر در منطقه رقص،انتخاب می­کنند. با افزایش میزان شهد منبع غذایی، احتمال انتخاب این منبع، توسط زنبور‌های ناظر نیز افزایش می‌یابد. بنابراین زنبورهای رقصان با میزان شهد بیشتر، زنبور‌های ناظر بیشتری را برای بهره­برداری از آن منابع استخدام می­کنند. یک زنبور ناظر پس از انتخاب یک منطقه برای بهره­برداری، به سوی آن حرکت می­کند و پس از رسیدن به منطقه بر اساس اطلاعات بصری یک منبع غذایی جدید را در اطراف آن منبع انتخاب می­کند. اطلاعات بصری بر مقایسه‌ مکان منابع غذایی مبتنی است. در مرحله‌ چهارم منابع غذایی که شهد آن­‌ها به وسیله سایر زنبور‌ها تهی شده است، به صورت تصادفی توسط زنبور‌های جستجوگر جایگزین می­شوند. در این الگوریتم تعداد زنبور‌های کارگر و زنبور‌های ناظر در یک کندو برابر خواهد بود. در الگوریتم زنبور عسل، مکان منبع غذایی نشان‌دهنده‌ یک جواب ممکن برای مساله‌ بهینه‌سازی است، همچنین میزان شهد منبع غذایی نشان­دهنده‌ کیفیت (شایستگی) آن است. تعداد زنبور‌های کارگر و یا ناظر برابر با تعداد جمعیت راه­حل‌‌ها است. در مرحله‌ ابتدایی تعداد SN راه­حل به صورت تصادفی در فضای جواب تولید می­شود. هر راه­حل یک (منبع غذایی) xi،i=(1,2,…,SN)است که یک بردار D بعدی است، وD تعداد پارامتر‌های بهینه‌سازی است. پس ازمقداردهی اولیه چرخه‌ تکرار‌ها شروع می­شود. C=(1,2,…,Cmax)فرآیند چرخه برای زنبور‌ها است، Cتعداد عدم بهبود جواب در چرخه است. یک زنبور به صورت تصادفی یک اصلاح بر روی مکان منبع غذایی (جواب) موجود در حافظه‌ خود ایجاد می­کند و میزان شهد (مقدار شایستگی) منبع جدید (جواب جدید) را تحت آزمایش قرار می­دهد. در مورد زنبور‌های واقعی، برای تولید جواب جدید از اطلاعات موجود و بصری زنبور استفاده می‌شوداما در مورد زنبور‌های مصنوعی از هر اطلاعاتی برای مقایسه استفاده نمی­شود و بهبودفقط به صورت تصادفی با استفاده از رابطه 2 و یکی دیگر از جواب­‌ها انجام می­گیرد. در صورتی‌که مقدار شهد منبع جدید بیشتر از منبع قبلی ذخیره شده در حافظه‌ زنبور عسل باشد، موقعیت جدید حفظ و موقعیت قبلی فراموش و در غیر این صورت موقعیت قبلی نگهداریمی­شود. زنبور‌های کارگر پس از تکمیل فرآیند جستجو، اطلاعات شهد منابع غذایی (راه‌حل) و اطلاعات مربوط به موقعیت آن‌ها را با زنبور‌های ناظر در منطقه‌ رقص به اشتراک می­گذارند. یک زنبور ناظر با ارزیابی اطلاعات شهد گرفته شده از همه‌ زنبور‌های کارگر، یک منبع غذایی را با احتمال مربوط به مقدار شهد آن منبع انتخاب می‌کند. زنبورکارگر نیز اصلاحی را در موقعیت (راه‌حل) موجود در حافظه‌ خود انجام می‌دهد و مقدار شهد منبع داوطلب (راه‌حل) را بررسی می­کند. اگرمیزان شهد بیشتر از منبع قبلی باشد آن را جایگزین و منبع پیشین را فراموش می­کند. زنبور ناظر یک منبع غذایی را با توجه به مقدار احتمال مرتبط با آن منبع غذایی که از رابطه 1 به‌دست می‌آید، انتخاب می­کند[42].

(1)                                                     12pi=fitin=1SNfitn">

که در آن:

pi احتمال انتخاب زنبور i

fiti میزان شایستگی راه‌حل i

SN تعداد منابع غذایی

در این الگوریتم، زنبور‌های کارگر اطلاعات خود را با زنبور‌های ناظر به اشتراک می‌گذارندو زنبورهای ناظر با استفاده از این اطلاعات یک منبع غذایی جدید را در اطراف منبع غذایی قبل انتخاب می­کنندو برای تولید منبع غذایی جدید در اطراف منبع فعلی از رابطه 2 استفاده می­شود[42].

(2)          12vi=xi+φixi-xkkϵ1, 2, . . . ,BN&k≠i">

که در آن:

vi جواب جدیدی در اطراف جواب xi

xi جواب i برای مساله‌ بهینه‌سازی

Kشماره یکی دیگر از جواب­ها کهبه‌صورت تصادفی انتخاب می­شود و مقدار آن باید از i متمایز باشد.

φi یک بردارD عضویاست که هر کدام از درایه‌های آن عددی تصادفی بین 12[-1,1]">  است و تولید موقعیت منبع غذایی همسایه در اطراف xi را کنترل می­کند.

xk جوابی تصادفی از بین SNجواب برای مساله که با استفاده از آن جوابی جدید در اطراف xi ایجاد می­شود.

رابطه 2 نشان می­دهد با کاهش تفاوت بین xi و xk تغییرات در موقعیت xiکاهش می­یابد. با توجه به مکانیزم انتخاب حریصانه (انتخاب جواب با ارزش بیشتر از بین دو جواب)به تدریج جواب­ها به بیشینه ارزش همگرا شده و فاصله‌ بین جواب­ها کاهش پیدا می­کند.

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

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

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

-       یک فرآیند انتخاب محلی بر اساس اطلاعات آن ناحیه برای زنبور‌های کارگر و ناظر (برای زنبور‌های واقعی اطلاعاتی مانند رنگ، شکل و عطر گل) که از آن برای تعیین یک منبع غذایی در اطراف منبع غذایی قبل استفاده می‌شود و بر اساس رابطه‌ 2 بیان می‌شود.

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

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

در الگوریتم زنبور عسل سه پارامتر کنترلی تعداد منابع غذایی(SN) که با تعداد زنبور‌های کارگر یا زنبور‌های ناظر برابر است،تعداد عدم موفقیت در بهبود جواب (limit) وحداکثر تعداد چرخه([37]MCN)وجود دارد.

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

3-1- مثال

برای تشریح بیشتر الگوریتم زنبور عسل، یک مثال از زندگی زنبورها با استفاده از این الگوریتم حل می‌شود. در این مساله هدف یافتن نقطه­ای از طبیعت با بیشینه میزان شهد استفاده شده است. به عنوان مثال در یک محدوده‌ انتخاب شده از طبیعت، میزان شهد گل­ها با استفاده از رابطه‌ 3 قابل محاسبه است. در این مثال محدوده‌ جستجو  α =[0,3] و β =[0,5] در نظر گرفته شده و نمودار میزان شهد در این بازه در شکل 1 نشان داده شده است. حل این مساله به صورت مرحله به مرحله مطابق با آنچه در الگوریتم توضیح داده شد، ارایهمی­شود.

(3)                                                V= -sin(α).cos(β)

که در آن:

α عددی برحسب رادیان در بازه‌[0,3]

β عددی برحسب رادیان در بازه‌[0,5]

Vمیزان شهد هر منبع مفروض

 

شکل1-نمودارپراکندگیشهدبررویمحدوده.

3-1-1- مرحله اول

در مرحله‌ اول منابع اولیه ایجاد می‌شود. منابع اولیه مختصات نقاطی تصادفی بر روی محدوده­ مورد بررسی است. بنابراین هر منبع اولیه برداری با دو مولفه‌مختصاتی در جهت افقی (α) و عمودی (β) است. برای این مثال سه منبع اولیه در نظر گرفته می­شود که هر کدام از آن‌ها نقطه­ای را بر روی سطح زمین و در درون محدوده‌ مورد بررسی بازنمایی می‌کنند. برای این سه منبع اولیه به شرح روابط 4 تا 6 است:

12x1=1.50.25V1=-sin1.5.cos0.25=-0.9665">

12x2=2.54.5V2=-sin2.5.cos4.5=0.2670">

12x3=0.723.41V3=-sin0.72.cos3.41=0.6358">

3-1-2- مرحله‌ دوم

به تعداد منابع، زنبور­های کارگر وجود دارد. در این مرحله هر یک از این زنبور‌های کارگرمنبع غذایی جدیدی را در اطراف منبع غذایی موجود جستجو می­کند.این عمل در الگوریتم با استفاده از رابطه 2به صورت تصادفی انجام می­شود. پس از کشف منبع جدیدمیزان شهد این منبع محاسبه می­شود. اگر میزان شهد منبع جدید بیش از منبعپیشینباشد، منبع جدید جایگزین جواب قبل می‌شودولی اگر میزان شهد این منبعکمتر باشد،منبع باید جریمه شود. جریمه بدین معنی است که یک واحد به شمارنده­Cکه برای هر منبع غذایی ایجاد شده است، اضافه می‌شود. اگر شمارنده­ جریمه­ یک منبع غذاییاز یک حد از پیش تعیین شده (در این مثال 5) فراتر رود، این منبع با منبعی تصادفی در محدوده‌ جواب جایگزین می‌شود. در این مقاله برای ضرب درایه­های متناظر از عملگر 12 ×"> استفاده شده است.

12v1=1.50.25+0.15-0.71.×1.50.25-2.54.5=1.353.27">

12V=-sin1.35.cos3.27=0.9677">

چون میزان شهد منبع (v) بیشتر از منبع قبل (x1) است منبع جدید جایگزین منبع قبل می‌شود. بنابراین:

12x1=1.353.27V1=0.9677">

12C1=0">

برای منبع دوم نیز به همین شکل عمل می­شود:

12v2=2.54.5+-0.32-0.61.×2.54.5-0.723.41=1.933.84">

12V=-sin1.93.cos3.84=0.7170">

چون میزان شهد منبع جدید (v) بیشتر از منبع قبل (x2) است منبع جدید جایگزین منبع قبل می‌شود. بنابراین:

12x2=1.933.84V2=0.7170">                  12C2=0">

همچنین برای منبع سوم:

12v3=0.723.41+0.220.94.×0.723.41-1.933.84=0.453">

12v3=0.723.41+0.220.94.×0.723.41-1.933.84=0.453">

12V=-sin0.45.cos3=0.4306">

به دلیل عدم بهبود ارزش منبع جدید، این منبع جایگزین منبع قبل نمی‌شود. همچنین این منبع غذایی جریمه شده و یک واحد به شمارنده‌ عدم افزایش شهد منبع افزدوده می‌شود. بنابراین:

12x3=0.723.41V3=0.6358">                  12C3=1">

3-1-3- مرحله‌ سوم

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

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

(4)                                                     12fiti=Vi+1">

12fit1=value1+1=0.9677+1=1.9677">

12fit2=value2+1=0.7170+1=1.7170">

12fit3=value3+1=0.6358+1=1.6358">

پس از محاسبه‌ شایستگی هر منبع، احتمال انتخاب آن به وسیله زنبور ناظر نیز محاسبه می‌شود:

12p1=fit1n=13fitn=1.96771.9677+1.7170+1.6358=0.37">

12p2=fit2n=13fitn=1.71701.9677+1.7170+1.6358=0.32">

12p3=fit3n=13fitn=1.63581.9677+1.7170+1.6358=0.31">

اکنون برای انتخابمنبع به وسیله زنبور از احتمال تجمعی منابع استفادهمی­شود. اگر احتمال تجمعی با P نشان داده شود، در این صورت P1، P2 و P3به شرح زیر است:

12P1=0.37">           12P2=0.69">           12P3=1">

برای انتخاب منابع به وسیله زنبورها، به تعداد منابع غذایی موجود، اعداد تصادفی بین صفر و 1 تولید می‌شود. اگر سه عدد تصادفی 85/0، 93/0 و 12/0 تولید شده باشد. یکی از این اعداد به احتمال تجمعی منبع 1 و دو عدد دیگر به احتمال تجمعی منبع 3 نزدیک‌تر است، بنابراین با انتخاب منابع 1 و 3 به وسیله زنبورها، در اطراف منبع 1 یک منبع جدید و در اطراف منبع 3 دو منبع جدید انتخاب می‌شود. اگر در اطراف منبع 1 به صورت تصادفی منبع 2به‌عنوان منبع جدید انتخاب شده باشد. در این صورت:

12v1=1.353.27+-0.780.36.×1.353.27-1.933.84=1.803.06">

12V=-sin1.80.cos3.06=0.9704">

به دلیل افزایش میزان شهد منبع جدید این منبع جایگزین منبع قبل می­شود. بنابراین:

12x1=1.803.06V1=0.9704">              12C1=0">

دومین منبع غذایی در اطراف منبع 3 ایجاد خواهد شد. زنبور ناظر به صورت تصادفی منبع غذایی دو را انتخاب کرده و با استفاده از آن در اطراف منبع غذایی سه، یک منبع جدید را برای بهره­برداری انتخاب می­کند. در این صورت:

12v3=0.723.41+-0.920.34.×0.723.41-1.803.06=1.713.53">

12V=-sin1.71.cos3.53=0.9165">

به دلیل بهبود جواب این منبع جایگزین منبع قبل می­شود. بنابراین:

12x3=1.713.53V3=0.9165">              12C2=0">

سومین منبع غذایی نیز در اطراف جواب 3 ایجاد می‌شود. اگر زنبور ناظر با استفاده از منبع غذایی 2، منبع غذایی جدید را در اطراف منبع غذایی 3 انتخاب کند. در این صورت:

12v3=1.713.53+0.410.18.×1.713.53-1.933.84=1.623.47">

12V=-sin1.62.cos3.47=0.9441">

به دلیل بهبود جواب، این منبع جایگزین منبع قبل می­شود. بنابراین:

12x3=1.623.47">        12V3=0.9441">        12C3=1">

پس از ایجاد سه منبع غذایی جدید این مرحله تمام می­شود.

3-1-4- مرحله‌ چهارم

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

در این مثال تنها یک تکرار از الگوریتم شرح داده شد. برای حل مثال بیان شده تکرارها به صورت متوالی انجام می­پذیرد تا شرط پایان الگوریتم ارضا شود. این مثال در محیط نرم­افزار متلب اجرا شد و جواب نهایی(1.53,3.15)به دست آمد. در شکل 2 بهبود جواب با افزایش تکرارها برای این مثال نشان داده شده است.

 

شکل2-بهبودجوابباافزایشتکرارها

همان‌طور که قبلا بیان شد و در مثال بالا نیز مشاهده می‌شود،در تکرارهای متوالی الگوریتم جواب­های مساله به مرور به یکدیگر نزدیک و با کم شدن تفاضل مختصات جواب­ها و کوچک‌تر شدن گام­های الگوریتم، به مقدار بیشینه همگرا می‌شوند.

4- تعریف مساله‌تعیین محدوده‌ نهایی با استفاده از الگوریتم زنبور عسل

تعیین محدوده‌ نهایی معدن به معنی تصمیم‌گیری در مورد استخراج یا عدم استخراج هر یک از بلوک­های مدل بلوکی اقتصادی معدن است. برای حل این مساله‌ تصمیم می­توان از متغیرهای  دودویی[38] استفاده کرد، به‌طوری که متغیر مربوط به  هر بلوک مفروضاگر بلوک استخراج شود برابر یک و در غیر این صورت برابر صفر شود. برای حل این مساله از الگوریتم بهینه­سازی زنبور عسل استفاده می‌شود.برای تعیین محدوده‌نهایی ابتدا آرایه­ای که تعداد درایه‌های آن برابر تعداد بلوک­‌های درون مدل بلوکی است، ایجاد می­شود. هر درایه از این آرایه نشان‌دهنده‌ یک متغیر دودویی برای یک بلوک است که بسته به استخراج یا عدم استخراج بلوک ممکن است مقادیر یک یا صفر را بپذیرد. هر یک از بلوک­‌ها ممکن استدرون محدوده نهایی معدن باشند که در این صورت درایه آن‌ها عدد یک، یا خارج از محدوده نهایی معدن باشند که در این صورت درایه مربوط به آن‌هاعدد صفر خواهد بود. همچنین برای هر جواب یک ماتریس صفر (A)L×M(L تعداد سطرها و Mتعداد ستون‌های مدل بلوکی) ایجاد می‌شود. درایه­های این ماتریس با استفاده از درایه­های متناظر درآرایه‌ جواب مقداردهی می­شود. بدیهی است که اگر بلوک a در درون مخروط استخراجی بلوک b  قرار داشته باشد، در صورت استخراج بلوک bبلوک aنیز باید استخراج شود. به عبارت دیگر برای پایداری شیب باید رابطه‌5برایl=(2,3,…,L) و m=(2,3,…,M-1) برقرار باشد.

(5)

12ifA(l,m)=1 thenAl-1,m-1+Al-1,m+Al-1,m+1=3">

برای محاسبه‌ ارزش­ هر جواب از رابطه‌6 استفاده می­شود.

(6)

12Vi=l=1Lm=1MAi(l,m)×BEV(l,m)">

که در آن:

L تعداد سطر­های مدل بلوکی

M تعداد ستون­های مدل بلوکی

BEVارزش اقتصادی بلوک

4-1- مراحل تعیین محدوده‌ نهایی معدن با استفاده از الگوریتم زنبور

4-1-1- مرحله اول

اولین مرحله از الگوریتم زنبور عسل ایجاد جواب­‌های اولیه است. برای ایجاد جواب­‌های اولیه SN (تعداد جواب‌‌های اولیه) آرایه که هر آرایه D (تعداد بلوک­‌ها یا متغیرهایی که باید برای آن­‌ها تصمیم گیری شود) درایه دارد، ایجاد می‌شود. درایه‌‌های هر آرایه به تصادف با مقادیر صفر و یک پر می‌شود. برای حل سریع­تر مساله می­توان محدوده‌ نهایی حاصل از مخروط شناور را به عنوان یکی از جواب­‌های اولیه در نظر گرفت و سایر جواب­‌ها را با ایجاد تغییرات تصادفی بر روی جواب حاصل از مخروط شناور ایجاد کرد که با این عمل سرعت رسیدن به جواب بهینه افزایش می­یابد،سپس ماتریس Aبا استفاده از رابطه 5 برای هر یک از جواب­های اولیه محاسبه و ارزش هر جواب با استفاده از رابطه 6 محاسبه می‌شود.

4-1-2- مرحله‌ دوم

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

(7)                     12vi,j=xi.j+round(φi.j(xi.j-xk.j))">

که در آن:

j شماره بلوک در آرایه جوابj=[1,2,...,D].

xi,j ، xk,jو vi,jمتغیرهای دودویی

تابع round عدد صحیح بودن vi,j را تضمین می‌کند و برای صفر یا یک بودن vi,j لازم است φ یک عدد نامثبت باشد.به تجربه معلوم شده است که برای متغیرهای صفر و یک بهترین بازه‌ تغییراتφبازه‌[-0.65,0]است.

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

4-1-3- مرحله‌ سوم

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

(8)    12fiti=valuei+εifvaluei≥0 |valuei| if -1<valuei

که در آن:

12fiti">  شایستگی منبعi

12valuei"> ارزش جواب i(ارزش پیت تشکیل شده به ازای جوابi)

12ε">  یک عدد بسیار کوچک

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

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

4-1-4- مرحله‌ چهارم

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

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

4-2- حل مثال دو بعدی

4-2-1- مرحله اول

در مدل بلوکی دو بعدی شکل 3 برای تعیین محدوده‌نهایی با استفاده از الگوریتم زنبور عسل، ابتدا تعدادی جواب اولیه تولید می‌شودو سپس برای هر کدام از جواب‌ها آرایه‌ایکه تعداد درایه‌های آن برابر تعداد بلوک‌های مثبت درون مدل بلوکی اقتصادی است، ایجاد می‌شود. با توجه به این‌که در مدل شکل 3 تعداد بلوک‌های مثبت برابر 3 است، هر کدام از آرایه‌ها 3 درایه خواهند داشت. به هر کدام از این درایه‌ها در صورتی که بلوک مثبت متناظر درایه در درون محدوده‌ نهایی جواب قرار داشته باشد عدد 1 و در غیر این صورت عدد صفر اختصاص می‌یابد. علاوه بر این برای هر جواب یک ماتریس صفر Aنیز تولید می‌شود که ابعاد آن مشابه مدل بلوکی است (برای این مثال 5×3) و درایه‌های آن برای بلوک‌های درون محدوده‌ نهایی جواب با عدد 1 و برای سایر بلوک‌ها با عدد صفر پر می‌شود.

 

شکل3- مدل بلوکی دو بعدی اقتصادی معدن(BEV).

در این مثال اگر دو جواب اولیه به دست آید،در جواب اول ممکن استمحدوده‌ نهایی به‌دست آمده با استفاده از مخروط شناور باشد (شکل 5). محدوده نهایی مربوط به این جواب(A1) در شکل 6نشان داده شده است. آرایه‌مربوط به این جواب نیز در ستون چهارم جدول1دیده می‌شود.

 

 

شکل4-روندنمای تعیین محدوده‌ نهایی معدن با الگوریتمزنبور.

 

 

شکل 5- محدوده‌ نهایی مربوط به جواب 1

جدول1-وضعیتبلوک­های مثبت مدل در جواب 1

 

 

شکل6-محدوده نهایی ایجاد شده برای جواب 1

درایه‌جوابیک:                                              12x1=111">

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

12V1=l=13m=15A1l,m×BEVl,m=2">

اکنون با اعمال تغییراتی در جواب یک جواب دوم انتخاب می­شود. اگر جواب دوم طوری انتخاب شود که محدوده‌ نهایی آن (A2) به‌صورت شکل 7 باشد.آرایه‌مربوط به این جواب نیز در ستون چهارم جدول 2 دیده می‌شود.

جدول 2- وضعیت بلوک­های مثبت مدل در جواب 2

 

 

شکل 7-محدوده نهایی ایجاد شده برای جواب 2

درایهجوابدو:                                               12x2=010">

ارزشمحدوده‌ نهایی جواب دو نیز با استفاده از رابطه‌ 6 محاسبه می‌شود:

12V2=l=13m=15A2l,m×BEVl,m=-1">

4-2-2- مرحله دوم

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

12v1=111+round-0.5400.×111-010=011">

جواب به دست آمده بدین معنی است که در جواب جدید باید بلوک‌هایمتناظر درایه‌های دو (بلوک واقع در سطر 2 و ستون 4) و سه (بلوک واقع در سطر 3 و ستون 3) در درون محدوده‌ نهایی قرار گیرند. محدوده‌دربرگیرنده‌ این دو بلوک مثبت همان محدوده‌ نهایی پیشین یعنی شکل 6 خواهد بود و بهبودی حاصل نخواهد شد. به دلیل عدم بهبود جواب در این مرحله، جریمه­ای برای جواب یک در نظر گرفته شده و یک واحد به شمارنده این جواب افزوه خواهد شد و C1 به یک افزایش خواهد یافت.

12x1=111">                 12V1=2">                     C1=1

برای جواب دوم نیز یک بلوک که به تصادف بلوک متناظر درایه‌سهاست، برای تغییر انتخاب شده است:

12v2=010+round00-0.25.×010-111=010">

در این جواب نیز بهبودی حاصل نشده و  جواب دوم نیز باید جریمه شده‌ و یک واحد به شمارنده‌به آن اضافه شود. بنابراین:

12x2=010">                 12V2=-1">                                 C2=1

4-2-3- مرحله‌ سوم

در این مرحله  پس از محاسبه‌ شایستگی جواب‌های جدید با استفاده از رابطه‌ 8 و به‌دست آوردن احتمال اختصاص آن‌ها به هر یک از جواب­‌های قبلبا استفاده از رابطه‌ 1، جواب­‌های جدید اختصاص داده می‌شود:

12fit1=2">

12fit2=1|-1|=1">

12p1=fit1fit1+fit2=22+1=0.67">

12p2=cost2fit1+fit2=12+1=0.33">

پس از محاسبه‌ احتمال تجمعی که برای جواب یک 67/0 و برای جواب دو 1 به دست می‌آید،عددی تصادفی بین صفر و یک تولید می‌شود.این عدد تصادفی اگر بین صفر  و67/0 باشد جواب اول و اگر بین 67/0 ویک باشد جواب دو برای اختصاص جواب جدید انتخاب می‌شود. اگر به‌صورت تصادفی عدد‌های  41/0و 89/0 به‌دست آمده باشد، به هر یک از جواب­‌ها یک جواب جدید اختصاص داده می‌شود و مانند مرحله‌ دوم اقدام می‌شود.

12v1=111+round00-0.21.×111-010=111">

12v2=010+round-0.5100.×010-111=110">

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

12x1=111">                                 12V1=2">                     C1=2

12x2=110">                                 12V2=3">                     C2=1

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

 

شکل 8-محدوده نهایی ایجاد شده برای جواب 2

4-2-4- مرحله‌ چهارم

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

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

4-3-تعیین محدوده‌ نهایی سه بعدی

تعیین محدوده­ نهایی معدن به کمک کامپیوتر معمولا با استفاده از مدل بلوکی انجام می­شود. در این پژوهش برای امکان­سنجی کاربرد الگوریتم در مسایل سه­بعدی و بزرگ مقیاس، مدل بلوکی معدن سونگون در نرم­افزار Datamine ساخته شد. این معدن دارای 160 گمانه اکتشافی است که با استفاده از این گمانه­ها 18 مقطع برای معدن رسم شد (شکل 9).

 

شکل 9-مقاطع رسم شده برای معدن سونگون

برای ساخت مدل بلوکی عیاری ابعاد بلوک­ها 25×25×25 متر در نظر گرفته شد و مدل بلوکی با 45×100×120بلوک ساخته شد.پس از ساخت مدل بلوکی و تعیین چگالی آن با استفاده از کریجینگ عیار بلوک­ها تخمین زده شد (شکل 10).

 

شکل 10-مدل بلوکی عیاری معدن سونگون

پس ازساخته شدن مدل بلوکی عیاری یک خروجی اکسل ازآن تهیه شد. در مرحله‌ بعد با فراخوانی مدل بلوکی عیاری معدن به نرم­افزار Matlab با استفاده از پارامترهای اقتصادی جدول 3،مدل بلوکی اقتصادی با استفاده از رابطه­های 9 و 10 ساخته شد[43].

جدول 3- پارامترهای اقتصادی

 

(9)                           12v=[p-r*g*y-m-c]Q">

(10)                 12v=v if p-r*g*y>c-mQ if p-r*g*y<c">

در این روابط

vارزش بلوک

p قیمت

r هزینه‌ ذوب تصفیه و فروش یک تن فلز

g عیار بلوک

y بازیابی فلز

m هزینه‌ استخراج یک تن سنگ

c هزینه‌ فرآوری یک تن کانسنگ

Q تناژ بلوک

برای حل این مدل سه­بعدی نیز مشابه آنچه در حالت دوبعدی توضیح داده شد، عمل می­شود. برای این منظور در نرم‌افزار متلب الگوریتم زنبور عسل برای تعیین محدوده‌نهایی معدن صورت‌بندی و بر روی مدل بلوکی معدن فرضی اجرا شد. با اجرای الگوریتم زنبور عسل میزان نقدینگی ناشی از استخراج محدوده‌نهایی  184/21 میلیارد دلار به‌دست آمدکه نسبت به نقدینگیحاصل از محدوده‌ به‌دست آمده با استفاده از الگوریتم مخروط شناور (572/18 میلیارد دلار) 3/12 درصد بیشتر است.

 

شکل11- بهبود ارزش محدوده‌ نهایی با افزایش تکرارها

5- اعتبارسنجی

یکی از روش­های تعیین محدوده‌ نهایی معدن استفاده از نظریه‌گراف لرچ وگروسمن است. از نظر ریاضی اثبات شده است که این الگوریتم منجر به تعیین محدوده‌ نهایی واقعی معدن می‌شود. در این مقاله برای اعتبارسنجی تعیین محدوده‌ نهایی با استفاده از الگوریتم زنبور عسل، از نظریه‌گراف و نرم افزار NPV Schedulerکه محدوده‌ نهایی را براساس این نظریه تعیین می‌کند، استفاده شد. نقدینگی حاصل از محدوده‌ نهایی تعیین شده با استفاده از نظریه‌گراف 528/21 میلیارد دلار به‌دست آمدکه در مقایسه با نقدینگی حاصل از محدوده‌ نهایی به‌دست آمده با الگوریتم زنبور عسل فقط 6/1 درصد بیشتراست. در شکل­های 12 و 13 به ترتیب مقطعی از محدوده نهایی معدن با استفاده از الگوریتم زنبور عسل و نظریه‌گراف نمایش داده شده است.

 

شکل 12-محدوده‌ نهایی به دست آمده با استفاده از الگوریتم زنبور عسل

 

شکل 13-محدوده‌ نهایی به دست آمده با استفاده از نظریه‌ گراف

6- نتیجه­گیری

پس از اکتشاف یک کانسار در صورتی که روش استخراج روباز برای بهره­برداری از آن انتخاب شده باشد، لازم است تا محدوده‌ نهایی معدن تعیین شود. از اهداف طراحی ‌محدوده‌نهایی یک معدن، تعیین پارامترهایی مانند میزان گسترش طولی، عرضی و عمقی معدن، مسیرهای دسترسی به ماده‌معدنی، محل دپوی باطله، محل تاسیسات سطحی، نسبت باطله‌برداری، عمر معدن، میزان ذخیره‌ قابل استخراج به روش روباز، میزان باطله‌‌برداری و نحوه‌ برنامه­ریزی تولید است. تا به حال روش­های گوناگونی برای تعیین محدوده‌ نهایی معدن پیشنهاد شده است. در این پژوهش برای تعیین این محدوده یک مدل برنامه‌ریزی صفر و یک پیشنهاد شده و برایحل مدل از الگوریتم زنبور عسل کمک گرفته شده است. برای ارزیابی کارآیی این الگوریتم در تعیین محدوده‌ نهایی معدن، مراحل الگوریتم در یک مثال دوبعدی به صورت کامل شرح داده شد. سپس این الگوریتم برای تعیین محدوده‌ نهایی یک معدن سونگونبا45×100×120بلوک به کار گرفته شد. برای اعتبارسنجی عملکرد این الگوریتم، محدوده‌ نهایی معدن فرضی با استفاده از روش مخروط شناور و نظریه‌گراف تعیین شد. نتایج اعتبارسنجی نشان می­دهد که اختلاف نقدینگی محدوده‌ به دست آمده از طریق الگوریتم زنبور عسل حدود 3/12 درصد از محدوده‌ مخروط شناور بیشترو تنها 6/1 درصد از محدوده‌ نظریه گراف کمتراست.



[*]نویسنده مسئول مکاتبات

[2]Ultimate pit limit

[3]Grade block model

[4]Economic block model

[5] Optimum

[6]Rigorous

[7]Dynamic programming

[8]Graph theory

[9] Dual simplex

[10] Transportation algorithm

[11] Maximum flow

[12] Heuristic

[13] Meta- heuristic

[14]Moving cone

[15] Korobov

[16]Genetic algorithm

[17]Ant colony algorithm

[18] Imperialist competitive algorithm

[19] Artificial intelligence

[20]Swarm intelligence

[21]Artificial bee colony (ABC)

[22]Bee colony optimization

[23]Bee swarm optimization

[24]Virtual beealgorithm

[25]Bees algorithm

[26] Honey-bees mating optimization

[27]Karaboga

[28]simplex

[29] Differential evolution

[30] Convergence

[31]Back break

[32]Flowchart

[33]Scout bee

[34]Waggle dance

[35]Employed bee

[36]Onlooker bee

[37] Maximum cycle number

[38]Binary

  1. منابع و مراجع

    1. E. Koenigsberg, "The optimum contours of an open pit mine: An application of dynamic programming," 17th Application of Computers and Operations Research in the Mineral Industry, pp. 274-287, 1982.
    2. F. Wilke and E. Wright, "Determining the optimal ultimate pit design for hard rock open pit mines using dynamic programming," Erzmetall, vol. 37, no. 1984, pp. 139-44, 1984.
    3. J. Yamatomi, G. Mogi, A. Akaike, and U. Yamaguchi, "Selective extraction dynamic cone algorithm for three-dimensional open pit designs," in International Journal of Rock Mechanics and Mining Sciences and Geomechanics Abstracts, 1996, vol. 5, no. 33, p. 220A.
    4. H. Lerchs and G. FI, "Optimum design of open-pit mines," in Operations Research, 1964, vol. 12, pp. B59-&: INST OPERATIONS RESEARCH MANAGEMENT SCIENCES 901 ELKRIDGE LANDING RD, STE 400, LINTHICUM HTS, MD 21090-2909.
    5. R. Underwood and B. Tolwinski, "A mathematical programming viewpoint for solving the ultimate pit problem," European Journal of Operational Research, vol. 107, no. 1, pp. 96-107, 1998.
    6. P. Huttagosol and R. Cameron, "A computer design of ultimate pit limit by using transportation algorithm," in Proceedings of 23rd APCOM symp., Tucson, Arizona, 1992, pp. 443-460.
    7. T. Johnson, "A comparative  study of methods  for determining ultimate  open-pit  mining  limits," 11th  Conference  on Application  of Computer Methods  in  the Mineral  Industries, University  of  Arizona, 1973.
    8. R. Khalokakaie, P. Dowd, and R. Fowell, "A Windows program for optimal open pit design with variable slope angles," International Journal of Surface Mining, Reclamation and Environment, vol. 14, no. 4, pp. 261-275, 2000.
    9. Y. C. Kim, "Ultimate pit limit design methodologies using computer models—The state of the art," Mining engineering, vol. 30, no. 10, pp. 1454-1459, 1978.
    10. T. R. Carlson, J. D. Erickson, D. O’Brain, and M. T. Pana, "Computer techniques in mine planning," Mining Engineering, vol. 18, no. 5, pp. 53-56, 1966.
    11. E. Wright, "MOVING CONE II-A simple algorithm for optimum pit limits design," in Proceedings of the 28th Symposium on the application of computers and operations research in the mineral industries (APCOM),(Colorado USA), 1999, pp. 367-374.
    12. M. David, P. Dowd, and S. Korobov, "Forecasting departure from planning in open pit design and grade control," in 12th Symposium on the application of computers and operations research in the mineral industries (APCOM), 1974, vol. 2, pp. F131-F142.
    13. P. Dowd, "Open-pit optimization. Pt. 1: optimal open-pit design," Transactions of the Institution of Mining and Metallurgy. Section A. Mining Industry, vol. 102, 1993.
    14. B. Denby and D. Schofield, "Open-pit design and scheduling by use of genetic algorithms," Transactions of the Institution of Mining and Metallurgy. Section A. Mining Industry, vol. 103, 1994.
    15. ع. عظیمی, "تعیین محدوده نهایی معدن با استفاده از الگوریتم کلونی مورچگان," پایان نامه کارشاسی ارشد دانشگاه صنعتی شاهرود, 1389.
    16. ش. ا. رافعی, "بهینه سازی محدوده نهایی و برنامه ریزی تولید در معادن روباز با استفاده از الگوریتم رقابت استعماری," پایان نامه کارشاسی ارشد دانشگاه صنعتی شاهرود, 1394.
      1. D. Karaboga, "An idea based on honey bee swarm for numerical optimization," Technical report-tr06, Erciyes university, engineering faculty, computer engineering department2005.
      2. D. Teodorovic and M. Dell’Orco, "Bee colony optimization–a cooperative learning approach to complex transportation problems," Advanced OR and AI methods in transportation, pp. 51-60, 2005.
      3. H. Drias, S. Sadeg, and S. Yahi, "Cooperative bees swarm for solving the maximum weighted satisfiability problem," Computational intelligence and bioinspired systems, pp. 417-448, 2005.
      4. X.-S. Yang, "Engineering optimizations via nature-inspired virtual bee algorithms," Artificial Intelligence and Knowledge Engineering Applications: A Bioinspired Approach, pp. 317-323, 2005.
      5. D. Pham, A. Ghanbarzadeh, E. Koc, S. Otri, S. Rahim, and M. Zaidi, "The bees algorithm-A novel tool for complex optimisation," in Intelligent Production Machines and Systems-2nd I* PROMS Virtual International Conference (3-14 July 2006), 2011: sn.
      6. O. B. Haddad, A. Afshar, and M. A. Mariño, "Honey-bees mating optimization (HBMO) algorithm: a new heuristic approach for water resources optimization," water resources management, vol. 20, no. 5, pp. 661-680, 2006.
      7. G. Li, P. Niu, and X. Xiao, "Development and investigation of efficient artificial bee colony algorithm for numerical function optimization," Applied soft computing, vol. 12, no. 1, pp. 320-332, 2012.
      8. G. Zhu and S. Kwong, "Gbest-guided artificial bee colony algorithm for numerical function optimization," Applied mathematics and computation, vol. 217, no. 7, pp. 3166-3173, 2010.
      9. X. Xu and X. Lei, "Multiple sequence alignment based on abc_sa," in International Conference on Artificial Intelligence and Computational Intelligence, 2010, pp. 98-105: Springer.
      10. H. Narasimhan, "Parallel artificial bee colony (PABC) algorithm," in Nature & Biologically Inspired Computing, 2009. NaBIC 2009. World Congress on, 2009, pp. 306-311: IEEE.
      11. W. Zou, Y. Zhu, H. Chen, and X. Sui, "A clustering approach using cooperative artificial bee colony algorithm," Discrete dynamics in nature and society, vol. 2010, 2010.
      12. F. Kang, J.-J. Li, and Q. Xu, "Hybrid simplex artificial bee colony algorithm and its application in material dynamic parameter back analysis of concrete dams," Journal of Hydraulic Engineering, vol. 40, no. 6, pp. 736-742, 2009.
      13. H. Zhao, Z. Pei, J. Jiang, R. Guan, C. Wang, and X. Shi, "A hybrid swarm intelligent method based on genetic algorithm and artificial bee colony," Advances in Swarm Intelligence, pp. 558-565, 2010.
      14. X. Shi, Y. Li, H. Li, R. Guan, L. Wang, and Y. Liang, "An integrated algorithm based on artificial bee colony and particle swarm optimization," in Natural Computation (ICNC), 2010 Sixth International Conference on, 2010, vol. 5, pp. 2586-2590: IEEE.
      15. W. Gao and S. Liu, "Improved artificial bee colony algorithm for global optimization," Information Processing Letters, vol. 111, no. 17, pp. 871-882, 2011.
      16. A. Banharnsakun, T. Achalakul, and B. Sirinaovakul, "Artificial bee colony algorithm on distributed environments," in Nature and Biologically Inspired Computing (NaBIC), 2010 Second World Congress on, 2010, pp. 13-18: IEEE.
      17. A. Basturk and R. Akay, "Parallel implementation of synchronous type artificial bee colony algorithm for global optimization," Journal of Optimization Theory and Applications, vol. 155, no. 3, pp. 1095-1104, 2012.
      18. D. Karaboga, B. Gorkemli, C. Ozturk, and N. Karaboga, "A comprehensive survey: artificial bee colony (ABC) algorithm and applications," Artificial Intelligence Review, vol. 42, no. 1, pp. 21-57, 2014.
      19. B. Nozohour-leilabady and B. Fazelabdolabadi, "On the application of artificial bee colony (ABC) algorithm for optimization of well placements in fractured reservoirs; efficiency comparison with the particle swarm optimization (PSO) methodology," Petroleum, vol. 2, no. 1, pp. 79-89, 2016.
      20. A. Ahmad, S. F. M. Razali, Z. S. Mohamed, and A. El-shafie, "The Application of Artificial Bee Colony and Gravitational Search Algorithm in Reservoir Optimization," Water Resources Management, vol. 30, no. 7, pp. 2497-2516, 2016.
      21. C. Zhang, D. Ouyang, and J. Ning, "An artificial bee colony approach for clustering," Expert Systems with Applications, vol. 37, no. 7, pp. 4761-4767, 2010.
      22. F. J. Rodriguez, C. García-Martínez, C. Blum, and M. Lozano, "An artificial bee colony algorithm for the unrelated parallel machines scheduling problem," in International Conference on Parallel Problem Solving from Nature, 2012, pp. 143-152: Springer.
      23. I. M. S. de Oliveira, R. Schirru, and J. de Medeiros, "On the performance of an artificial bee colony optimization algorithm applied to the accident diagnosis in a pwr nuclear power plant," in 2009 international nuclear Atlantic conference (INAC 2009), 2009.
      24. R. Irani and R. Nasimi, "Application of artificial bee colony-based neural network in bottom hole pressure prediction in underbalanced drilling," Journal of Petroleum Science and Engineering, vol. 78, no. 1, pp. 6-12, 2011.
      25. E. Ebrahimi, M. Monjezi, M. R. Khalesi, and D. J. Armaghani, "Prediction and optimization of back-break and rock fragmentation using an artificial neural network and a bee colony algorithm," Bulletin of Engineering Geology and the Environment, vol. 75, no. 1, pp. 27-36, 2016.
      26. D. Karaboga and B. Basturk, "A powerful and efficient algorithm for numerical function optimization: artificial bee colony (ABC) algorithm," Journal of global optimization, vol. 39, no. 3, pp. 459-471, 2007.
      27. F. D. Castillo and R. Dimitrakopoulos, "Joint effect of commodity price and geological uncertainty over the life of mine and ultimate pit limit," Mining Technology, vol. 123, no. 4, pp. 207-219, 2014.