Выбор алгоритма оптимизации для распределения работ между сотрудниками специализированного магазина

Рассмотрение алгоритмов оптимизации, выполнение анализа полученных результатов. Применение и предназначение определенного алгоритма. Разработка наглядного графика работы сотрудников специализированного магазина, определение видов работ на каждый час.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 27.04.2017
Размер файла 40,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Выбор алгоритма оптимизации для распределения работ между сотрудниками специализированного магазина

Берсенeва Валерия Александровна

аспирант

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

Ключевые слова: АЛГОРИТМЫ ОПТИМИЗАЦИИ, ГЕНЕТИЧЕСКИЙ АЛГОРИТМ, ГРАФИК РАБОТЫ ПЕРСОНАЛА, ФИТНЕС-ФУНКЦИЯ, УПРОЩЕННЫЙ АЛГОРИТМ

Грамотное построение графика работ для сотрудников специализированного магазина требует решения оптимизационной задачи. Это проблемы оптимального распределения ресурсов и планирования.

Традиционно оптимизационные задачи решаются при помощи линейных и/или нелинейных методов оптимизации, которые обычно предполагают сведение к минимуму целевой функции. В сущности, считается, что задача оптимизации является минимизация проблемы.

На практике существует много задач, которые не могут быть описаны аналитически, например, когда целевая функция имеет несколько экстремумов. В этих случаях необходимо создавать несколько экстремумов глобальной задачи оптимизации, где традиционные методы оптимизации не применяются, а другие решения должны быть исследованы.

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

Общая постановка задачи

В современном магазине при грамотном управлении в определенный момент встает задача о построении графика работ сотрудников. Как правило, магазины работают по 12-24 часа в сутки, а рабочий день сотрудника, в идеале, должен составлять не более 8 часов.

После 3-х месяцев работы магазина, управляющий уже может самостоятельно (либо с помощью программы) составить примерный рабочий график магазина наподобие таблицы 1. По горизонтали указано время работы магазина, разбитое по одному часу. По вертикали указаны виды работ, которые необходимо выполнять сотрудникам магазина. В ячейках таблицы указано количество человеко-часов.

Обычным шрифтом указано количество человеко-часов, которое можно переставить на другой час, если того требует ситуация. Жирным курсивом выделено кол-во человеко-часов в приоритетной работе. То есть, на другой час нельзя переносить этот вид работ.

Таблица 1 - Примерная таблица одного рабочего дня магазина

Понедельник

Время

9.00-10.00

10.00-11.00

11.00-12.00

12.00-13.00

13.00-14.00

14.00-15.00

15.00-16.00

16.00-17.00

17.00-18.00

18.00-19.00

19.00-20.00

20.00-21.00

Виды работ

1.Работа с поставщиками

2чч

2чч

1чч

2. Выкладка товара

1чч

2чч

1чч

1чч

2чч

1чч

3.Работа на кассе

2чч

2чч

2чч

2чч

1чч

1чч

2чч

2чч

2чч

3чч

3чч

4. Помощник покупателям

2чч

2чч

1чч

1чч

1чч

1чч

2чч

2чч

3чч

3чч

3чч

5.Инкассация

6.Уборка помещения

1чч

1чч

Для управляющего магазина нужна другая, более наглядная форма:

Таблица 2 - Желаемая примерная выходная форма графика

Понедельник

Время

9.00-10.00

10.00-11.00

11.00-12.00

12.00-13.00

13.00-14.00

14.00-15.00

15.00-16.00

16.00-17.00

17.00-18.00

18.00-19.00

19.00-20.00

Абстрактный сотрудник

1

1

1

3

2

2

3

2

1

1

3

3

3

3

4

2

6

3

3

4

3

4

6

3

3

4

2

4

2

3

3

3

4

4

2

4

3

3

3

4

4

4

3

3

4

3

4

4

4

4

4

Итак, основной задачей статьи является программная реализация перехода от первой таблицы ко второй. Представим таблицу 1 в более наглядном виде:

Таблица 3 -- Виды работ на каждый час

Понедельник

Время

9.00-10.00

10.00-11.00

11.00-12.00

12.00-13.00

13.00-14.00

14.00-15.00

15.00-16.00

16.00-17.00

17.00-18.00

18.00-19.00

19.00-20.00

Абстрактный сотрудник

1

1

1

2

2

3

2

2

2

3

3

3

3

2

3

3

3

3

1

3

3

3

3

2

3

3

3

4

4

1

4

4

3

3

3

4

4

4

4

4

6

4

4

4

4

4

6

4

4

4

4

Где закрашенная ячейка соответствует одному человеко-часу, а номер в ячейке -- виду работ из табл. 1. Ячейки с тёмным фоном переносить по времени нельзя, со светлым фоном -- можно.

Таблица 3 отражает виды работ на конкретные часы. Очевидно, что равномерное распределение работ в таблице и будет наиболее оптимальным графиком работ.

Максимальное приближение к равномерному распределению есть первая задача. Для более наглядного отображения разделяем приоритетные и не приоритетные работы. В данном случае наиболее оптимальный график будет выглядеть так:

Таблица 4 -- График работ с разделением по приоритету

Понедельник

Время

9.00-10.00

10.00-11.00

11.00-12.00

12.00-13.00

13.00-14.00

14.00-15.00

15.00-16.00

16.00-17.00

17.00-18.00

18.00-19.00

19.00-20.00

Абстрактный сотрудник

2

2

1

2

2

3

1

1

2

3

3

3

3

2

3

3

3

3

1

3

3

3

3

2

6

3

3

4

4

1

4

4

3

3

3

3

4

4

4

4

6

4

4

4

4

4

4

4

4

4

4

Формулировка задачи оптимизации

Описание задачи:

(1)

В данном случае 8 и 10 - это не фиксированные значения, а наиболее предпочтительные. Допускается отклонение на 1 час.

Где:

- - количество сотрудников на текущий день

- - время работы сотрудника без учёта перерывов

- - время работы сотрудника с учётом перерывов. Может меняться в зависимости от политики компании.

Есть еще условие, которое рекомендуется выполнять:

Количество перерывов -- минимально. Стараться сделать не больше одного.

Ввиду сложности представления функции, и похожести на задачу о ранце, выберем для реализации нашей задачи генетический алгоритм.

Формулировка задачи для генетических алгоритмов

Для решения данной комбинаторной задачи сначала представим график в самом худшем виде, когда на каждого сотрудника выделяется всего один час работы (см. таблицу 5).

Таблица 5 -- График работ в наихудшем случае.

Понедельник

Время

9.00-10.00

10.00-11.00

11.00-12.00

12.00-13.00

13.00-14.00

14.00-15.00

15.00-16.00

16.00-17.00

17.00-18.00

18.00-19.00

19.00-20.00

Абстрактный сотрудник

1

1

6

2

1

Позволим блокам в таблице перемещаться вертикально (для всех блоков) и горизонтально (только для светлых блоков). Таким образом получим хромосому из ряда смещений по координатным осям, где для тёмных блоков используется одна координата, а для светлых две.

Фитнес-функция будет показывать большие значения для меньших и 0 при превышении и .

Формулировка задачи для упрощенного алгоритма

Упрощенный алгоритм -- расстановка часов в таблице каждому сотруднику вручную. Главная задача оптимизации -- разбиение таблицы 4 на 8-ми часовые периоды для приведения к таблице 2.

Возьмем таблицу 4 и снизу будем брать по 8 клеток горизонтально. И так для каждого сотрудника. Если не хватает до 8 клеток, то берем сверху рядом.

Результаты применения генетического алгоритма

Были проведены исследования с помощью следующих параметров:

численность популяции: 40000 хромосом

• количество брачных пар: 10000

• вероятность побитового скрещивания: 0.04

• вероятность мутации бита: 0.01

• вероятность инверсии: 0.01

• _дистанция поиска хромосомы при инбридинге_: 10 хромосом

• дистанция поиска хромосомы при аутбридинге: 50 хромосом

• период использования аутбридинговых операций:15 поколений

Экспериментально выяснено, что на текущих данных, при популяции численности менее 30 000 хромосом улучшение результатов не происходит. Алгоритм расчёта по генетическому алгоритму показан в листинге 1:

Листинг 1: Описание фитнес-функции (на языке Java).

/**

* фитнес-функция

* @param numbers chromosome numbers список значений хромосомы

* @return приспособленность данной хромосомы

*/

public double f(char[] numbers) {

// промежуточная таблица графика дня

final ArrayList<int[]> intermediateData = new ArrayList<int[]>();

// заполняем промежуточную таблицу по данным хромосомы

fillData(numbers, intermediateData);

double totalFitness = 0;

for (final int[] employeeDay : intermediateData) {

int workHours = 0; // количество рабочих часов сотрудника

int firstHour = MAX_COLUMN_COUNT; // начало рабочего дня у сотрудника

int endHour = 0; // последний час рабочего дня сотрудника

int holes = 0; // количество перерывов во время рабочего дня

{// вычисляем часовые данные

boolean wasBreak = false;

for (int hourIdx = 0; hourIdx < employeeDay.length; ++hourIdx) {

final int cell = Math.abs(employeeDay[hourIdx]);

if (cell != 0) {

++workHours;

if (wasBreak) {

wasBreak = false;

++holes;

}

if (firstHour > hourIdx) firstHour = hourIdx;

if (endHour < hourIdx) endHour = hourIdx;

} else if (workHours > 0) {

wasBreak = true;

}

}

}

// вычисляем значение фитнес-функции для одного сотрудника

double lineValue = (double) workHours / MAX_VALUES_IN_ROW;

// неприоритетное ограничение: количество перерывов должно быть меньше 2

if (holes > 1) lineValue *= HOLES_INFLUENCE_K;

// приоритетное ограничение: количество рабочих часов должно быть не более 8

final int workHoursDiff = workHours - MAX_VALUES_IN_ROW;

if (workHoursDiff > 0) lineValue /= OVER_WORK_DAY_BASE_K + workHoursDiff * workHoursDiff;

// приоритетное ограничение: рабочий день сотрудника не более 10 часов

final int totalHoursDiff = endHour - firstHour + 1 - MAX_VALUES_RANGE;

if (totalHoursDiff > 0) lineValue /= OVER_TOTAL_DAY_BASE_K + totalHoursDiff * totalHoursDiff;

// "мини-поощрение" функции за достижение оптимального рабочего дня для сотрудника

if (workHours == MAX_VALUES_IN_ROW && totalHoursDiff <= 0)

lineValue *= FULL_DAY_INFLUENCE_K;

else if (workHours == MAX_VALUES_IN_ROW - 1 && totalHoursDiff <= 0)

lineValue *= ALMOST_FULL_DAY_INFLUENCE_K;

// добавляем полученный результат к общим данным

totalFitness += lineValue;

}

// усредняем данные, делаем зависимость от количества сотрудников,

// добавляем настроечные коэффициенты

// и возвращаем результат

return (EMPLOYEES_INFLUENCE + totalFitness) /

(intermediateData.size() * OPTIMIZE_EMPLOYEES_K);

}

// базовые коэффициенты

private static final double HOLES_INFLUENCE_K = 0.8;

private static final double ALMOST_FULL_DAY_INFLUENCE_K = 1.1;

private static final double FULL_DAY_INFLUENCE_K = 1.25;

private static final double OPTIMIZE_EMPLOYEES_K = 2.0;

private static final double EMPLOYEES_INFLUENCE = 8;

private static final double OVER_WORK_DAY_BASE_K = 1.0;

private static final double OVER_TOTAL_DAY_BASE_K = 3.0;

// максимальное количество колонок

private static final int MAX_COLUMN_COUNT = 13;

// максимальное время работы без учёта перерывов

private static final int MAX_VALUES_IN_ROW = 8;

// максимальное время работы сотрудника с учётом перерывов

private static final int MAX_VALUES_RANGE = 10;

// максимальное смещение по времени для задач с низким приоритетом

private static final int MAX_LOW_SHIFT = 4;

Результирующая таблица выглядит таким образом.

магазин оптимизация сотрудник график

Таблица 6 -- График работы персонала, полученный при помощи генетического алгоритма

Понедельник

Время

9.00-10.00

10.00-11.00

11.00-12.00

12.00-13.00

13.00-14.00

14.00-15.00

15.00-16.00

16.00-17.00

17.00-18.00

18.00-19.00

19.00-20.00

Номер сотрудника

1

1

3

4

3

3

2

3

3

2

3

4

4

3

6

4

3

4

4

2

4

4

1

3

2

3

6

4

3

5

2

3

3

2

6

1

3

4

2

3

7

3

4

4

4

3

8

1

4

4

9

1

4

4

3

4

4

10

2

3

3

Итак, общее количество сотрудников = 10. Полученный график близок к оптимальному результату, но не оптимален. Много перерывов. Сотрудникам будет неудобно приходить на работу по 3-4 раза и работать по часу-двум, к примеру.

Результирующую таблицу 6 можно рассматривать как график работ, но прежде чем брать ее за основу, нужно подкорректировать, сделать ее более удобной для сотрудников.

Еще один недостаток генетического алгоритма -- требует много ресурсов и времени на расчет графика. Данный график рассчитывался 1 час на процессоре AMD Athlon(tm) 64 Processor 3500+ 2.20 GHz. Соответственно, если сеть состоит из 10 магазинов, то раз в неделю на 10 часов будет происходить расчет графиков. Если 100 магазинов -- то 100 часов при такой же мощности процессора.

Результаты применения упрощенного алгоритма

Алгоритм расчёта по упрощённому алгоритму показан в листинге 2:

Листинг 2: Описание упрощенного алгоритма (на языке Java)

/**

* Рассчитывает конечный результат

*

* @return рассчитанные данные

*/

public ArrayList<int[]> calc() {

// заполняем список сотрудников, пока есть свободные часы

while (intermediateData.size() > 0) {

addEmployee();

}

// заполненную конечную таблицу

return outputData;

}

/**

* добавляет график сотрудника к конечным данным

*/

private void addEmployee() {

// график сотрудника для заполнения

int[] newLine = new int[MAX_COLUMN_COUNT];

// количество рабочих часов сотрудника

int workHours = 0;

// начало рабочего дня у сотрудника

int firstHour = 0;

// пропускаем пустые ячейки

for (int skip = 0; skip < MAX_COLUMN_COUNT && intermediateData.get(0)[skip] == 0; ++skip) {

firstHour = skip + 1;

}

// количество часов в строек должно быть гарантированно больше 0,

// т.к. пустые строки удаляются сразу после переноса ячеек.

// Поэтому начальный час будет найден

assert (firstHour < MAX_COLUMN_COUNT);

// последний час рабочего дня сотрудника

int endHour = firstHour;

// сначала заполняем часы по порядку, пропустив самый малочисленный час

final int emptiestHour = calcEmptiestHour(firstHour + 1, firstHour + MAX_VALUES_RANGE - 1);

for (int hour = firstHour; hour < firstHour + MAX_VALUES_RANGE

&& hour < MAX_COLUMN_COUNT

&& workHours < MAX_VALUES_IN_ROW; ++hour) {

if (hour == emptiestHour) continue; // нашли самый малочисленный час. пропускаем

// убираем ячейку из временных данных и помещаем её в данные сотрудника

newLine[hour] = removeCell(hour);

if (newLine[hour] != 0) {

endHour = hour;

++workHours;

}

}

// пытаемся добавить часы снаружи

if (workHours < MAX_VALUES_IN_ROW && endHour - firstHour + 1 < MAX_VALUES_RANGE) {

int leftExpand = firstHour, rightExpand = endHour;

// итеративно расширяем область поиска свободного часа

for (int expand = 1, maxExpand = MAX_VALUES_RANGE - workHours;

expand <= maxExpand

&& workHours < MAX_VALUES_IN_ROW

&& endHour - firstHour + 1 < MAX_VALUES_RANGE; ++expand) {

// двигаемся в ширину, если это возможно

if (leftExpand - 1 >= 0) --leftExpand;

if (rightExpand + 1 < MAX_COLUMN_COUNT) ++rightExpand;

// проверяем левую границу

if (newLine[leftExpand] == 0 && endHour - leftExpand < MAX_VALUES_RANGE) {

// расширив границу остались в заданных параметрах.

// Пытаемся получить свободный час

newLine[leftExpand] = removeCell(leftExpand);

if (newLine[leftExpand] != 0) {

++workHours;

firstHour = leftExpand;

}

}

// проверяем правую границу

if (newLine[leftExpand] == 0

&& workHours < MAX_VALUES_IN_ROW

&& rightExpand - firstHour < MAX_COLUMN_COUNT) {

// расширив границу остались в заданных параметрах.

// Пытаемся получить свободный час

newLine[rightExpand] = removeCell(rightExpand);

if (newLine[rightExpand] != 0) {

++workHours;

endHour = rightExpand;

}

}

}

}

// не удалось полностью заполнить рабочий день. Попытаемся ещё раз внутри и снаружи

if (workHours < MAX_VALUES_IN_ROW) {

// пытаемся заполнить пустоты внутри

for (int hour = firstHour+1; hour < endHour

&& workHours <MAX_VALUES_IN_ROW; ++hour) {

if (newLine[hour] != 0) continue;

// пытаемся получить свободный час для сотрудника

newLine[hour] = removeCell(hour);

if (newLine[hour] != 0) {

++workHours;

}

// рабочий день для сотрудника не может быть пустым,

// т.к. при входе в функцию во временной таблице всегда есть ячейки.

assert(workHours > 0);

outputData.add(newLine);

}

Результирующая таблица выглядит таким образом:

Таблица 7 -- График работы персонала, полученный при помощи упрощенного алгоритма

Понедельник

Время

9.00-10.00

10.00-11.00

11.00-12.00

12.00-13.00

13.00-14.00

14.00-15.00

15.00-16.00

16.00-17.00

17.00-18.00

18.00-19.00

19.00-20.00

Номер сотрудника

1

1

1

1

3

3

3

3

3

2

3

3

3

3

3

3

3

1

1

3

3

4

4

4

4

4

4

2

6

4

4

3

3

5

2

2

2

2

4

3

6

6

3

3

4

2

2

4

7

3

4

4

4

8

4

4

9

4

4

10

11

4

12

13

Время работы алгоритма -- доли секунды. Также очевидны и минусы: алгоритм является жёстким и не может оптимизировать график небольшим уходом от ограничений, как это делают генетические алгоритмы. В результате получаем график на большее число сотрудников, половина из которых работает идеально, а вторая -- не отрабатывает и пол-ставки.

Сравнительный анализ алгоритмов

Сравнение двух алгоритмов представим в виде таблицы 8, где параметрами сравнения будут служить те факторы, которые играют наиболее важную роль в представлении оптимального графика.

Таблица 8 -- Сравнение двух алгоритмов

Вид алгоритма

Генетический алгоритм

Упрощенный алгоритм

Параметры сравнения

Выходное количество сотрудников

10

14

Время реализации

1 час

1 секунда

Максимальное кол-во перерывов между работами одного сотрудника

3

1

Визуальное представление (макс -- 5 баллов)

3

4

Удобство использования/редактирования (макс -- 5 баллов)

3

4

Таким образом, исходя из сравнительной таблицы, можно сделать вывод, что лучше взять упрощенный алгоритм, добавить еще несколько условий, исходя из предпочтений руководства и непосредственно работников, чтобы получился оптимальный график работы выхода сотрудников на работу. К примеру, заложить в начале, какой график каждый сотрудник планирует, когда у кого выходной, какое количество часов планирует отработать, какой график работы предпочтительнее и так далее.

Литература

1. http://math.nsc.ru/AP/benchmarks/UFLP/uflp_ga.html -- Генетические алгоритмы.

2. Р. М. Ларин, А.В. Плясунов, А.В. Пяткин Методы оптимизации. Примеры и задачи. учебное пособие Новосибирск: Новосибирский государственный университет, 2003. 120 с.

3. А.Ю. Чирков, В.Н. Шевченко О приближении оптимального решения целочисленной задачи о ранце оптимальными решениями целочисленной задачи о ранце с ограничением на мощность. Статья Дискретн. анализ и исслед. опер., сер. 2, 2006, том 13, номер 2, страницы 56-73(Mida6)

Размещено на Allbest.ru

...

Подобные документы

  • Характеристика основных программных средств построения электронного магазина. Разработка структуры построения электронного магазина. Безопасность платежей в Интернете. Разработка алгоритма работы интернет-магазина. Разработка системы оплаты и доставки.

    дипломная работа [1,9 M], добавлен 10.03.2014

  • Состав и принцип работы аппаратуры. Выбор параметров корреляционного анализа и Фурье-анализа. Разработка и применение алгоритма корреляционного анализа. Реализация алгоритма Фурье-анализа на языке С++ и алгоритма корреляционного анализа на языке С#.

    дипломная работа [4,6 M], добавлен 30.11.2016

  • Характеристика методов нечеткого моделирования и изучение системы кластеризации в пакетах прикладных программ. Разработка и реализация алгоритма для оптимизации базы правил нечеткого классификатора с помощью генетического алгоритма аппроксимации функции.

    дипломная работа [1,9 M], добавлен 21.06.2014

  • Принципы построения Интернет-магазинов. Система Интернет-платежей. Структура электронного магазина, разработка его архитектуры, операционной, серверной, администраторской и клиентской частей. Алгоритма работы магазина. Экономическое обоснование проекта.

    дипломная работа [2,4 M], добавлен 12.04.2012

  • Описание генетических алгоритмов. Применение генетического алгоритма для решения задачи коммивояжера. Постановка задачи безусловной оптимизации. Изучение распространения генетических алгоритмов на модель с несколькими взаимодействующими популяциями.

    дипломная работа [979,1 K], добавлен 30.05.2015

  • Выполнение операций, хранения, редактирования, систематизации данных. Рассмотрение подсистем разрабатываемой системы управления базами данных продуктового магазина. Разработка алгоритма функционирования системы и приложения для работы с базой данных.

    курсовая работа [399,1 K], добавлен 26.08.2019

  • Сравнение результатов работы генетического алгоритма по решению "несимметричной незамкнутой задачи коммивояжера" с результатами работы алгоритма динамического программирования по параметрам - время работы, точность результата и объем используемой памяти.

    курсовая работа [65,3 K], добавлен 16.04.2014

  • Разработка интернет-магазина для реального заказчика. Проведение анализа и выбор интернет-технологий для разработки интернет-магазина. Проектирование предметной области. Разработка динамических web-страниц интернет-магазина, управляемых базой данных.

    дипломная работа [1,7 M], добавлен 08.06.2013

  • Разработка алгоритма автоматизации работы компьютерного магазина, изменив и доработав имеющиеся модули в системе "1С" в соответствии с заявленными требованиями. Состав выполняемых функций. Требования к составу и параметрам технических средств приложения.

    дипломная работа [1,2 M], добавлен 26.09.2014

  • Описание формальной модели алгоритма на основе рекурсивных функций. Разработка аналитической и программной модели алгоритма для распознающей машины Тьюринга. Разработка аналитической модели алгоритма с использованием нормальных алгоритмов Маркова.

    курсовая работа [1,5 M], добавлен 07.07.2013

  • Понятие сетевого графика как динамической модели производственного процесса. Базовые правила составления сетевого графика, расчет его параметров. Разработка алгоритма программного проекта. Использование объектно-ориентированных сред программирования.

    курсовая работа [847,7 K], добавлен 21.01.2016

  • Разработка информационной системы и базы данных магазина "Автозапчасти". Выбор технических средств и программной реализации задачи АЗ-01. Составление алгоритма, программы, руководства пользователя и примера, демонстрирующего корректность решения задачи.

    курсовая работа [2,2 M], добавлен 19.10.2012

  • Анализ предметной области. Разработка генетического алгоритма для оптимизации инвестиций. Спецификация требований и прецедентов. Проектирование пользовательского интерфейса информационной системы. Модели данных, используемые в системе и их взаимодействие.

    дипломная работа [2,1 M], добавлен 24.08.2017

  • Классификация методов оптимизации. Обзор и выбор языка C#. Алгоритмический анализ задачи, описание алгоритма решения. Графические схемы разработанных алгоритмов. Разработка приложения и результаты тестовых испытаний. Интерфейс пользователя, тестирование.

    курсовая работа [1,6 M], добавлен 08.03.2016

  • Первые работы по симуляции эволюции. Основные понятия генетических алгоритмов. Постановка задачи и функция приспособленности. Инициализация, формирование исходной популяции. Выбор исходной популяции для генетического алгоритма, решение задач оптимизации.

    курсовая работа [714,1 K], добавлен 31.03.2015

  • Разработка интернет-магазина мужской и женской одежды и аксессуаров. Требования к техническим характеристикам сайта (трафик, надежность, безопасность). Выбор методов сопровождения интернет-магазина. Подключение интернет-магазина к платежным системам.

    отчет по практике [2,9 M], добавлен 01.05.2015

  • Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и выбор структур данных для ее хранения, разработка основных алгоритмов. Проектирование интерфейса пользователя. Выбор стратегии тестирования и разработка тестов.

    курсовая работа [332,3 K], добавлен 09.12.2014

  • Исследование системы распределения ключей на основе линейных преобразований. Описание компонентов сети конфиденциальной связи. Характеристика отечественного алгоритма шифрования данных. Обзор результатов расчетов криптостойкости алгоритма шифрования.

    контрольная работа [56,5 K], добавлен 26.09.2012

  • Основные этапы создания алгоритмов, представление в виде программы. Рассмотрение методов решения задач. Метод поэтапных уточнений. Различие между численными и логическими алгоритмами. Реализация цикла со счетчиком. Процесс разработки сложного алгоритма.

    презентация [1,3 M], добавлен 22.10.2013

  • Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.

    курсовая работа [314,2 K], добавлен 27.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.