Простые однопроходные эвристики для решения одномерной задачи покрытия

Автор: Пользователь скрыл имя, 27 Декабря 2011 в 14:59, курсовая работа

Описание работы

Задачи покрытия являются разновидностью задач упаковки, в которых условие непересечения заготовок заменяется на условие пересечения друг с другом и с границами области упаковки.

Содержание

Постановка и математическая модель задачи

Метод решения, структограмма или пошаговое описание алгоритма


Описание параметров программы


Вычислительный эксперимент


Анализ результатов

Работа содержит 1 файл

риты()Моя курсовая по КА!!!.doc

— 150.00 Кб (Скачать)

      private: System::Void button5_Click(System::Object^  sender, System::EventArgs^  e)

                   {

m=new kusok[num];

v=0;

for(int i=0;i<num;i++)

{      m[i].l=v1+rand()%(v2-v1);//случайное заполнение массива заготовок

m[i].x=i+1;//назначение номера заготовке

        v=(v+m[i].l);

                         }

v=v/1000;

b=new kusok[num];

                 for(int i=0;i<num;i++)

                         { b[i].l=m[i].l;

 b[i].x=i+1; 

                         }

                   }

      };

} 

 

Описание  параметров программы 
 

Пользователь  выбирает количество деталей(m), диапазон длины деталей и эвристику.

Далее генерируются длины деталей в заданном диапазоне.

Рассчитывается  идеальное покрытие

И производится покрытие форм:

 
 
 

Вычислительный  эксперимент 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Анализ  результатов 

В результате мы видим, чем больше количество деталей (m) выбирает пользователь, тем больше разница между идеальным покрытием и тем, что мы имеем, при любой эвристике.

Для классов c большими размерами покрывающих деталей лучше работают эвристики NF и NFD(с сортировкой элементов по принципма LLS, LSS и SLS). Для остальных классов все эвристики равноценны между собой.

         
 

Информация о работе Простые однопроходные эвристики для решения одномерной задачи покрытия