Главная страница
Навигация по странице:

  • «КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» (ФГБОУ ВО «КубГУ») Факультет компьютерных технологий и прикладной математики Кафедра

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


    Скачать 298.26 Kb.
    НазваниеФакультет компьютерных технологий и прикладной математики Кафедра информационных технологий курсовая работа организация рациона питания с применением генетического алгоритма
    Дата14.03.2023
    Размер298.26 Kb.
    Формат файлаdocx
    Имя файлаКурсовая Новиков.docx
    ТипКурсовая
    #986942

    МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    «КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

    (ФГБОУ ВО «КубГУ»)

    Факультет компьютерных технологий и прикладной математики

    Кафедра информационных технологий


    КУРСОВАЯ РАБОТА
    ОРГАНИЗАЦИЯ РАЦИОНА ПИТАНИЯ С ПРИМЕНЕНИЕМ ГЕНЕТИЧЕСКОГО АЛГОРИТМА

    Работу выполнил ______________________________________ В.О. Новиков

    (подпись)

    Направление подготовки 02.03.02 Фундаментальная информатика и информационные технологии
    Направленность Прикладная информатика в экономике

    Научный руководитель

    доц., канд. физ.-мат. наук О.В. Гаркуша

    (подпись)

    Нормоконтролер

    ст. преп. А.В. Харченко

    (подпись)
    Краснодар

    2022

    РЕФЕРАТ
    Курсовая работа 31 с., 4 рис., 1 таб., 6 источников.

    ГЕНЕТИЧЕСКИЙ АЛГОРИТМ, СКРЕЩИВАНИЕ, МУТАЦИЯ, РАЦИОН ПИТАНИЯ, КАЛОРИЙНОСТЬ

    Объектом разработки является генетический алгоритм, позволяющий строить оптимальный рацион питания для школьников.

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

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

    СОДЕРЖАНИЕ


    ВВЕДЕНИЕ



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

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

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

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

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

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

    Во второй главе рассматриваются основные понятия генетических алгоритмов.

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

    1 Рекомендованные нормы питания



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

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

    Современная модель здорового питания имеет вид пирамиды. Ориентируясь на нее, можно составлять сбалансированный рацион на каждый день.

    В основе пирамиды – хлеб, злаки и картофель (6-11 ед. в день).

    Следующая ступень – овощи и фрукты (5-8 ед. в день).

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

    На вершине пирамиды – жиры, масла (изредка. 2-3 ед. в день), а также алкоголь и сладости (эпизодически, 2-3 ед. в день).

    Сбалансированный рацион – это потребление продуктов в оптимальном соотношении.

    Все продукты делятся на шесть основных групп:

    • хлеб, крупяные и макаронные изделия, рис и картофель;

    • овощи и фрукты;

    • мясо, птица, рыба, бобовые, яйца и орехи;

    • молочные продукты (молоко, кефир, йогурт, творог, сыр);

    • жиры и масла;

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

    Все продукты содержат специальные питательные вещества, которые описаны ниже.

    Белки - это «кирпичики», из которых строится организм и все необходимые для жизни вещества: гормоны, ферменты, витамины и другие полезные вещества.

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

    Углеводы – основной поставщик топлива для жизни.

    Пищевые волокна способствуют хорошему перевариванию и усвоению пищи, необходимы для профилактики сердечно-сосудистых заболеваний [1].

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

    Хлеб, крупяные и макаронные изделия, рис и картофель являются источником энергии, углеводов, волокон (клетчатки), белков, витаминов группы В, железа.

    Овощи и фрукты – источник волокон (клетчатки), витаминов и минеральных веществ. Чем разнообразнее рацион по овощам и фруктам, тем лучше сбалансировано питание. Их рекомендуется есть несколько раз в течение дня (не менее 400 г/день).

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

    Молочные продукты (молоко, кефир, йогурт, творог, сыр) это источник белка и кальция, придающего прочность костям. Жиры и масла являются источником энергии, витаминов А, Е.

      1. Основы рациона и принципы питания школьников



    Когда ребенок начинает ходить в школу, требования к его питанию меняются, ведь у школьников довольно большие психологические и умственные нагрузки. К тому же многие дети посещают спортивные секции. При этом организм продолжает активно расти, поэтому вопросам питания ребенка школьного возраста всегда следует уделять достаточно внимания [2].

    Необходимо обеспечить правильное питание школьнику и приучить его к полезной еде.

    Ребенок старше 7 лет нуждается в сбалансированном здоровом рационе не меньше детей младшего возраста.

    Основными нюансами питания детей этого возраста являются следующие:

    - в течение дня с пищей должно поступать столько калорий, чтобы покрыть энергозатраты ребенка;

    - рацион школьника должен быть сбалансирован по незаменимым и заменимым нутриентам. Для этого рекомендуется его максимально разнообразить;

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

    - минимум 60% белков в рационе ребенка-школьника должно поступать из продуктов животного происхождения;

    - количество получаемых с пищей углеводов для школьника должно быть в 4 раза больше, чем количество белка или количество жира;

    - быстрые углеводы, представленные в меню ребенка сладостями, должны составлять до 10-20% всех углеводов;

    - важно наличие режима приемов пищи, чтобы ребенок питался регулярно;

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

    - один-два раза в неделю ребенок должен есть рыбу. Также минимум один раз в недельном меню школьника должно быть красное мясо;

    - бобовые ребенку этого возраста рекомендуют есть 1-2 раза в неделю;

    - ежедневно в рационе ребенка должно присутствовать пять порций овощей и фруктов. Одной порцией считают апельсин, яблоко, банан или другой средний фрукт, 10-15 ягод или виноградин, два небольших фрукта (абрикос, слив), 50 г овощного салата, стакан сока (учитывается лишь натуральный сок), столовая ложка сухофруктов, 3 ст. л. отварных овощей;

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

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

    - стоит минимизировать поступление с пищей синтетических пищевых добавок, а также специй.

    В таблице 1 приведены нормы потребностей ребенка-школьника в зависимости от возраста.

    На режим приема пищи ребенка, посещающего школу, влияет смена обучения. Если ребенок учится в первую смену, то он:

    - завтракает дома примерно в 7-8 часов;

    - перекусывает в школе в 10-11 часов;

    - обедает дома либо в школе в 13-14 часов;

    - ужинает дома примерно в 19 часов.

    Ребенок, обучение которого происходит во вторую смену:

    - завтракает дома в 8-9 часов;

    - обедает дома перед тем, как отправиться в школу, в 12-13 часов;

    - перекусывает в школе в 16-17 часов;

    - ужинает дома примерно в 20 часов.

    Таблица 1 - потребности ребенка-школьника




    6-9 лет

    10-13 лет

    14-17 лет

    Потребность в энергии в сутки

    2300 ккал

    2500-2700 ккал

    2600-3000 ккал

    Потребность в белках (г в день)

    80-90

    90-100

    100-110

    Потребность в жирах (г в день)

    80

    85-95

    90-100

    Потребность в углеводах (г в день)

    320-260

    360-400

    400-440

    Творог

    50 г

    50 г

    60 г

    Мясо

    140 г

    170 г

    200-220 г

    Молоко и молочные продукты

    500 мл

    500 мл

    500-600 мл

    Яйца

    1 штука

    1 штука

    1 штука

    Сыр

    10-15 г

    10-15 г

    10-15 г

    Рыба

    50 г

    50 г

    60-70 г

    Сахар и сладости

    70 г

    80 г

    80-100 г

    Хлебобулочные изделия

    225 г

    300 г

    300-400 г

    Из них ржаной хлеб

    75 г

    100 г

    100-150 г

    Мука

    25 г

    30 г

    30-35 г

    Крупы, макароны и бобовые

    35-45 г

    50 г

    50-60 г

    Овощи

    275-300 г

    300 г

    320-350 г

    Картофель

    200 г

    250 г

    250-300 г

    Фрукты сырые

    150-300 г

    150-300 г

    150-300 г

    Фрукты сушеные

    15 г

    20 г

    20-25 г

    Сливочное масло

    25 г

    30 г

    30-40 г

    Растительное масло

    10 г

    15 г

    15-20 г


    Завтрак и обед должны быть наиболее энергетически ценными и обеспечивать в сумме около 60% от дневной калорийности. Ужинать ребенок должен максимум за два часа до того, как он отправится спать.

    Хороший аппетит чаще всего бывает при налаженном режиме питания и значительной физической активности в течение дня

    Школьникам готовить пищу можно любым способом, но все же увлекаться жаркой не рекомендуют, особенно, если у ребенка низкая активность или есть склонность к набору подкожного жира. Оптимальными видами приготовления пищи для детей считают тушение, запекание и отваривание.

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

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

    Газированные напитки и продукты с кофеином в младшем школьном возрасте не рекомендованы. Старшим школьникам давать такие напитки допустимо, но не во время приемов пищи, так как из-за кофеина ухудшается всасывание железа.

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

      1. Основы рациона и принципы питания юных спортсменов



    Основными принципами питания спортсменов являются:

    - снабжение спортсменов необходимым количеством энергии, соответствующим ее высокому расходу в процессе физических нагрузок;

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

    - соблюдение принципа сбалансированности по аминокислотам, входящим в состав белковых продуктов;

    - соблюдение оптимальных взаимоотношений в жирнокислотном спектре;

    - соблюдение рациональных взаимоотношений в спектре минеральных веществ;

    - соблюдение принципов сбалансированности между количествами основных пищевых веществ, витаминами и микроэлементами;

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

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

    - использование фактора питания для обеспечения наращивания массы тела или ее рациональной сгонки (при подведении к заданной весовой категории) [3].

    Питание спортсменов должно учитывать:

    - необходимость повышенного содержания углеводов, поскольку, подвергаясь анаэробному распаду, они дают много энергии в единицу времени;

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

    - повышенную потребность в коферментах и витаминах в связи с интенсификацией обмена веществ при интенсивных нагрузках;

    - повышенную потребность в минеральных веществах при интенсивных нагрузках (особенно в кальции, магнии, калии, фосфоре), что обусловлено повышенным потоотделением и диурезом, и увеличением потерь макро- и микроэлементов и высокой скоростью обмена веществ (при выполнении мышечной работы, при восстановлении);

    - увеличение кратности приема пищи (5-6 раз – в тяжелой атлетике, гребле и др.) в связи с необходимостью применения пищевого рациона большого объема (за счет повышенного содержания белков и углеводов) и более полноценного усвоения пищевых веществ, лучшего их использования в обменных процессах.

    Важнейшими принципами питания юных спортсменов являются следующие положения.

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

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

    Потребность в основных пищевых веществах связана с общей калорийностью рациона и рассчитывается с учетом калорийности, обеспечиваемой каждым пищевым веществом. Согласно формуле сбалансированного питания для здорового человека, это составляет белки/жиры/углеводы=14%/30%/56%.

    Нормы пищевых веществ для спортсменов предназначены для использования в целях правильной организации питания и оценки пищевых рационов при централизованной подготовке спортсменов.

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

    Учитывая особенности организованного питания юных спортсменов, а также незначительные долевые различия между соотношением основных пищевых веществ в рационе питания детей, занимающихся различными видами спорта, были рассчитаны средние соотношения белков/жиров/углеводов = 16%/28%/56%, что можно определить как формулу оптимального питания для юных спортсменов различных специализаций.

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



    Генетический алгоритм – это поисковый алгоритм, основан­ный на природных механизмах селекции и генетики. Эти алго­ритмы обеспечивают выживание сильнейших решений из мно­жества сгенерированных, формируя и изменяя процесс поиска на основе моделирования эволюции исходной популяции реше­ний. Генетические алгоритмы сконструированы таким образом, что при генерации каждой новой популяции используются фраг­менты исходных решений, к которым добавляются новые эле­менты, обеспечивающие улучшение решений относительно сформулированного критерия отбора. Другими словами, генети­ческие алгоритмы используют информацию, накопленную в процессе эволюции [4].

    2.1 Основные понятия генетических алгоритмов



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

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

    Хромосомы (другие названия – цепочки или кодовые последовательности) – это упорядоченные последовательности генов. Ген (также называемый свойством, знаком или детектором) – это атомарный элемент генотипа, в частности, хромосомы [5].

    Генотип или структура – это набор хромосом данной особи. Следовательно, особями популяции могут быть генотипы, либо единичные хромосомы (в довольно распространенном случае, когда генотип состоит из одной хромосомы).

    Фенотип – это набор значений, соответствующих данному генотипу, т.е. декодированная структура или множество параметров задачи (решение, точка пространства поиска).

    Аллель – это значение конкретного гена, также определяемое как значение свойства или вариант свойства.

    Локус или позиция указывает место размещение данного гена в хромосоме (цепочке). Множество позиций генов – это локи [5].

    Очень важным понятием в генетических алгоритмах считается функция приспособленности (fitness function), иначе называемая функцией оценки. Она представляет меру приспособленности данной особи в популяции. Эта функция играет важнейшую роль, поскольку позволяет оценить степень приспособленности конкретных особей в популяции и выбрать из них наиболее приспособленные (т. е. имеющие наибольшие значения функции приспособленности) в соответствии с эволюционным принципом выживания «сильнейших» (лучше всего приспособившихся). Функция приспособленности также получила свое название непосредственно из генетики. Она оказывает сильное влияние на функционирование генетических алгоритмов и должна иметь точное и корректное определение.

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

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



    Основной (классический) генетический алгоритм состоит из следующих шагов:

    • инициализация, или выбор исходной популяции хромосом;

    • оценка приспособленности хромосом в популяции;

    • проверка условий остановки алгоритма;

    • селекция хромосом;

    • применение генетических операторов;

    • формирование новой популяции;

    • выбор «наилучшей» хромосомы.

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

    Оценивание приспособленности хромосом в популяции состоит в расчете функции приспособленности для каждой хромосомы этой популяции. Чем больше значение этой функции, тем выше «качество» хромосомы.

    Форма функции приспособленности зависит от характера решаемой задачи. Предполагается, что функция приспособленности всегда принимает неотрицательное значение и, кроме того, что для решения оптимизационной требуется максимизировать эту функцию. Если исходная форма функции приспособленности не удовлетворяет этим условиям, то выполняется соответствующее преобразование (например, задачу минимизации функции можно легко свести к задаче максимизации) [6].

    Проверка условия остановки алгоритма. Определение условия установки генетического алгоритма зависит от его конкретного применения. В оптимизационных задачах, если известно максимальное (или минимальное) значение функции приспособленности, то остановка алгоритма может произойти после достижение ожидаемого оптимального значения, возможно-с заданной точностью. Остановка алгоритма также может произойти в случае, когда его выполнение не приводит к улучшению уже достигнутого значения. Алгоритм может быть остановлен по истечении определенного времени выполнения либо после выполнения заданного количества итераций. Если условие остановки выполнено, то производится переход к завершающему этапу выбора «наилучшей» хромосомы. В противном случае на следующем шаге выполняется селекция [6].

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

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

    Применение генетических операторов к хромосомам, отобранным с помощью селекции, приводит к формированию новой популяции потомков от созданной на предыдущем шаге родительской популяции [6].

    В классическом генетическом алгоритме применяются два основных оператора: оператор скрещивания (crossover)и оператор мутации (mutation). Однако следует отметить, что оператор мутации играет явно второстепенную роль по сравнению с оператором скрещивания. Это означает, что скрещивание в классическом генетическом алгоритме производится практически всегда, тогда как мутация – достаточно редко. Вероятность скрещивания, как правило, достаточно велика, тогда как вероятность мутации устанавливается весьма малой. Это следует из аналогии с миром живых организмов, где мутации происходят чрезвычайно редко.

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

    Оператор скрещивания. На первом этапе скрещивания выбираются пары хромосом из родительской популяции (родительского пула). Это временная популяция, состоящая из хромосом, отобранных в результате селекции и предназначенных для дальнейших преобразований операторами скрещивания и мутации с целью формирования новой популяции потомков. На данном этапе хромосомы из родительской популяции объединяются в пары. Это производится случайным способом в соответствии с вероятностью скрещивания. Далее для каждой пары отобранных таким образом родителей разыгрывается позиция гена (локус) в хромосоме, определяющая так называемую точку скрещивания. Если хромосома каждого из родителей состоит из L генов, то очевидно, что точка скрещивания lk представляет собой натуральное число, меньшее L. Поэтому фиксация точки скрещивания сводится к случайному выбору пары из интервала [1, L-1]. В результате скрещивания пары родительских хромосом получается следующая пара потомков:

    - потомок, хромосома которого на позициях от 1 до lk состоит из генов первого родителя, а на позиции от lk+ 1 до L – из генов второго родителя;

    - потомок, хромосома которого на позициях от 1 до lk состоит из генов второго родителя, а на позиции от lk+ 1 до L – из генов первого родителя.

    Оператор мутации изменяет значение гена в хромосоме на противоположное (т. е. с 0 на 1 или обратно). Как уже упоминалось выше, вероятность мутации обычно очень мала, и именно от нее зависит, будет данный ген мутировать или нет. Вероятность мутации может эмулироваться, например случайным выбором числа из интервала [0,1] для каждого гена и отбором для выполнения этой операции тех генов, для которых разыгранное число оказывается меньшим или равным значению вероятности.

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

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

    Генетические алгоритмы унаследовали свойства естественного эволюционного процесса, состоящие в генетических изменениях популяции организмов с течением времени.

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

    2.3 Преимущества и недостатки генетических алгоритмов



    Эксперименты, описанные в литературе, показывают, что генетические алгоритмы очень эффективны в поиске глобальных минимумов адаптивных рельефов, так как в них исследуются большие области допустимых значений параметров нейронных сетей. Градиентные алгоритмы дают возможность находить только локальные минимумы. Другая причина того, что генетические алгоритмы не «застревают» в локальных минимумах — случайные мутации.

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

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

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


    3 Постановка задачи и проект решения




    3.1 Постановка задачи



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

    Формально постановку задачи можно определить следующим образом: пусть имеется n различных пищевых продуктов p1, p2, …, pn, содержащих m различных питательных веществ. Обозначим через aij содержание j-го питательного вещества в i-ом продукте, через bj – суточную потребность организма в j-ом питательном веществе, через ci – стоимость единицы i-го продукта. Требуется составить суточный рацион питания минимальной стоимости, удовлетворяющий потребность во всех питательных веществах.

    3.2 Проект решения



    Поставленная задача может быть записана в виде задачи линейного программирования:
    (1)
    (2)
    При ограничениях:






    (3)
    Применение генетического алгоритма к поставленной задачи приводит к следующему: популяцией является набор матриц , где N – размерность популяции. Каждая особь популяции формируется по следующему правилу. Сначала матрица заполняется нулями. Затем случайным образом выбирается элемент матрицы (ген особи), которому присваивается значение единица. При этом должны учитываться следующие условия:
    (4)
    Данное условие означает, что один продукт может входить в дневной рацион только один раз.

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

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

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

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

    3.3 Реализация генетического алгоритма



    Для реализации генетического алгоритма использован язык программирования C#. Был разработан основной класс GA для работы алгоритма. Поля данного класса определяют такие параметры генетического алгоритма как размер особи, размер популяции, максимальное количество поколений, вероятность мутации.

    Для начальной инициализации элементов класса и генерации первой популяции используется метод public void InitGA().

    Метод private int Roulette() реализует выбор особей для скрещивания методом рулетки.

    Метод private void CreateNextGeneration() позволяет сформировать новую популяцию, используя оператор кроссинговера и мутации.

    Метод public void GetBestValues(out double[] values, out double fitness) предназначен для отбора лучших особей в популяции.

    Метод private void RankPopulation() позволяет ранжировать популяцию хромосом и отсортировать их по возрастанию значения фитнесс-функции.

    Также был реализован класс Chromosome, моделирующий поведение хромосомы. В данном классе реализованы следующие методы:

    - public void Crossingover(ref Chromosome Chromosome2, out Chromosome child1, out Chromosome child2) позволяющий производить операцию скрещивания с получением 2 дочерних хромосом;

    - public void Mutate() обеспечивающий операцию мутации хромосом;

    - public static double penalty(double[] values) – метод для вычисления штрафной функции;

    - public static double FitFcn(double[] values) – метод, позволяющий вычислить значение фитнесс-функции.

    3.4 Результаты работы программы



    В качестве примера для решения задачи были выбраны следующие параметры задачи составления оптимального рациона питания (таблица 2):
    Таблица 2 – Условие задачи о рационе питания

     

    Продукты

     

    Вещества

    П1

    П2

    норма

     

     

     

     

    Жиры

    1

    3

    6

    Белки

    3

    1

    9

    Углеводы

    1

    8

    8

    Нитраты

    2

    4

    16

    Стоимость 1 единицы

    80

    10

     


    Таким образом, математическая постановка задачи представлена следующими условиями:


    (5)

    На первом этапе данная задача была решена с помощью MS Excel, получены следующие результаты (рисунок 1): оптимальное решение достигается при значениях x1=2 и x2=3. Тогда итоговая стоимость рациона питания (190) минимальна при соблюдении всех условий и ограничений.

    Рисунок 1 – Решение задачи о рационе питания
    Следующим шагом выполнения курсовой работы была проверка работоспособности созданной программы на этих же данных.

    Было выполнено несколько запусков программы с разными наборами характеристик генетического алгоритма. Наиболее удачные комбинации параметров и результаты работы отражены ниже.

    На рисунке 2 приведен пример работы алгоритма при следующих параметрах: размер хромосомы – 2, размер популяции – 100, количество популяций – 2000, вероятность мутации – 5%, процент кроссинговера – 80%.


    Рисунок 2 – Пример работы программы
    Все параметры, кроме размера хромосомы, могут варьироваться в данном примере. Уменьшение количества популяций ведет к потере точности определения искомых данных (рисунок 3).


    Рисунок 3 – Пример работы программы при уменьшении количества популяций
    Увеличение процента мутации также приводит к ухудшению результата (рисунок 4).

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


    ЗАКЛЮЧЕНИЕ



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

    Предложена модель генетического алгоритма, которая позволяет решать задачу составления оптимального рациона питания.

    Разработана программа на языке C#, которая позволяет производить решение задачи о рационе питания с помощью генетического алгоритма.

    СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ



    1 Методические рекомендации МР 2.3.1.1915-04 «Рекомендуемые уровни потребления пищевых и биологически активных веществ»

    2 Методические рекомендации МР 2.4.0179-20 «Рекомендации по организации питания для обучающихся общеобразовательных организаций»

    3 Гольдберг, Н. Д. Питание юных спортсменов / Н. Д. Гольдберг, Р. Р. Дондуковская. – М.: Советский спорт. – 2012. – 280 с.

    4 Рутковская, Д. Нейронные сети, генетические алгоритмы и нечеткие системы: науч. изд. / Д. Рутковская, М. Пилиньский, Л. Рутковский; под общ. ред. А.С. Попова – М.: Горячая линия – Телеком. – 2006. – 452 с.

    5 Батищев, Д. И. Применение генетических алгоритмов к решению задач дискретной оптимизации : науч. изд. / Д. И. Батищев, Е. А. Неймарк, Н. В. Старостин. – Н. Новгород: Изд-во Нижегородского университета, 2006. – 88 с.

    6 Генетические алгоритмы на примерах решения задач раскроя. Проблемы управления : отчет о НИР / Подлазова А. В. – М.: Московский государственный институт стали и сплавов , 2008. – 7 с.



    написать администратору сайта