ХАКАТОН ОБРАЗОВАТЕЛЬНОГО ФОРУМА ПО МАТЕМАТИКЕ И ИСКУССТВЕННОМУ ИНТЕЛЛЕКТУ

Задача 6:
Спроектируй ядерный реактор
Задача предоставлена партнером олимпиады – компанией Росатом, а именно АО «Концерн Росэнергоатом»
Итоги
Победителем трека стала команда Комната №11 (Никита Кузнецов, Михаил Герасимов, Никита Трещилин из МПГУ, Университет ИТМО, МФ МГТУ им. Баумана)
Место проведения
Московский физико-технический институт, Главный корпус, красный читальный зал
Описание задачи:
Предлагается найти компоновку активной зоны ядерного реактора, имеющую максимальную длительность работы при соблюдении требований безопасности.
В процессе проектирования (наладке, оптимизации) как правило используют упрощенные модели объектов. Подробные и точные модели (полномасштабные) недоступны, из-за значительных затрат для их разработки либо, в случае компьютерных моделей, больших вычислительных ресурсов.

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

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

Пример 3. Конструирование самолета (автомобиля). Аэродинамика проверяется на маленьких моделях продувкой в аэродинамической трубе. Затраты велики.

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

Предлагается в качестве примера, связанного с атомной энергетикой, найти оптимальную компоновку активной зоны используя готовую нейронную сеть (получена в ходе решения задачи на Олимпиаде Я-Профессионал) в качестве быстрой модели. Предлагается выполнить один из этапов цикла проектирования. Задача легко формализуема. Благодаря очень малому времени счета, на этой задаче возможно тестирование различных алгоритмов оптимизации. Недостаток большинства алгоритмов – попадание в локальный оптимум. Желательно это учесть.
Рисунок 1. Иллюстрация компоновки кассет всей активной зоны ядерного реактора (всего 313 кассет)

Ядерный реактор собран из шестигранных кассет с различным содержанием урана-235. Степень участия каждой кассеты в ядерной реакции, выработке энергии – относительная мощность кассеты Kq [i], зависит от ее размножающих свойств Kinf [i] и положения в активной зоне (номер кассеты [i] в массиве данных).

Определенные ранее Kinf [i] используются в программе расчета реактора. Основная цель - найти относительную мощность Kq [i] каждой из кассет. Теплоноситель-вода прокачивается насосами через реактор и теплообменники, охлаждая реактор и перенося вырабатываемую реактором энергию к теплообменникам. Безопасность эксплуатации реактора зависит от предельных параметров теплоносителя в кассете (закипания) при снижении расхода теплоносителя во время срабатывания аварийной защиты (ввода поглощающих стержней в активную зону) из-за отключения насосов, поэтому максимальная мощность кассеты max (Kq [i]) (обозначим как maxKq) ограничена. Обоснование безопасности – это проверка выражения maxKq < предел Kq.

Коэффициент размножения реактора в любой момент работы должен быть равен 1.0 (если больше, то реактор разгонится, если меньше остановится). В начале работы реактор в целом имеет избыточные размножающие свойства, что и делает возможным его работу в течение длительного времени. По мере выработки энергии концентрация урана-235 уменьшается, коэффициент размножения реактора падает ниже 1.0 и реактор останавливается. Для обеспечения коэффициента размножения равным 1.0 в реакторе применяется борная кислота, растворённая в воде. Изотоп бор-10 поглощает лишние нейтроны. По мере выработки энергии и снижения содержания урана-235 из реактора борную кислоту удаляют. Концентрация борной кислоты Cb в начале работы может служить параметром, определяющим длительность работы реактора.

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

Имеется модель реактора в виде функции maxKq,Cb= F1(Kinf [i]). Предлагается путем перестановок содержимого массива Kinf [i] найти компоновку активной зоны имеющую максимальную Cb при ограничении maxKq < 1.5 и заданного максимального числа обращений к модели Nmax=1 000 000 (maxKq, Nmax могут быть откорректированы).

Баллы начисляются по следующей формуле:
[20 * Cb участника / Cb среднее всех участников]

Формат ввода

Вам предоставляются следующие файл pattern.csv содержащий данные исходного варианта Kinf [i] и соответствующие им maxKq, Cb. Файлы nr_core.py, Kq_r_weights.h5, Cb_r_weights.h5, cодержащие модель реактора и пример его расчета.
Описание колонок:
выходные параметры:
1 – maxKq
2 – Cb
Входные параметры:
3 56 (53 шт.) – Kinf [i]
Формат вывода

Ответ принимается в формате result.csv в виде файла, полностью идентичного по содержанию файлу pattern.csv, но самостоятельно заполненными массивами
Kinf [i] и соответствующие им maxKq, Cb. Дополнительно предоставляется файл схемы перестановок с shu.csv содержащий массив shu[i] , номер в массиве - номер ячейки в активной зоне, содержание массива – номер откуда взята кассета (Kinf).
Комментарии

Описание обоснования безопасности упрощено. Модель выдает результат для 1/6 части активной зоны (53 кассеты) т.к. активная зона симметрична в угле 60 градусов. Общее число кассет в реакторе 313 шт. (см. рисунок 1) – 1 центральная и 6 секторов по 52 кассеты. Нумерация в массиве Kinf соответствует нумерации ячеек активной зоны по рядам в 60 градусной симметрии.
Рисунок 2. Иллюстрация компоновки кассет сектора из 52 кассет
Перестановки кассет проводятся с учетом симметрии, преимущественно в секторе 30 град. Как правило симметричные в 30 град кассеты (белые) имеют близкие Kinf [i]. и переставляются парами.

Несимметричные в 30 град (желтые) кассеты могут переставляются по одной или парами с симметричными, если имеют близкие Kinf [i]. Часть кассет (кассеты содержащие органы управления – синие) несовместимы по конструкции с остальными кассетами и переставляются независимо. В процессе перестановок сохранение симметрии – залог успеха в снижении maxKq. Установка на периферию активной зоны (серые ячейки) кассет с минимальным Kinf [i] снижает утечку нейтронов и увеличивает время работы реактора (увеличивает Cb), но одновременно с этим увеличивается и maxKq.
Базовое решение

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

Пример решения в файле nr_core.py

Визуализация компоновки может осуществляться скриптами ZonaG.py и numerat.py
Визуализация начального состояния активной зоны
с помощью базового решения
Конечные результаты

Итоговый численный результат работы базового решения end 0.755075216293335 сек
[ 1.49813092] [ 3.93750525]
Визуализация процесса оптимизации

Формат файла result.csv идентичен pattern.csv

result.csv

1.4981309;
3.9375052;1.085353;1.076628;1.151002;1.077407;1.08656;1.34885;1.182798;1.064041;1.2359
3;1.201803;1.09084;1.134895;1.149264;0.961876;1.254259;1.088136;1.355877;0.986254;1.134
202;1.165316;1.252712;1.03154;1.35636;1.236111;0.95542;0.990562;1.032726;1.251929;1.227
915;1.24062;1.156144;1.340079;1.007076;0.961825;1.034265;1.254409;1.087712;1.036176;1.3
55877;1.08013;1.35636;1.150462;1.027498;1.081483;1.082581;1.240221;1.340079;1.355877;1.
355877;0.964003;1.004721;0.992665;0.991933
Контакты с организатором хакатона
Группа в Telegram: https://t.me/iprofirosatom

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