Русский
Русский
English
Статистика
Реклама

Измерения

О том, как мы температуру в ЦОД мерили

21.04.2021 14:19:32 | Автор: admin

Если у вас большой и серьезный ЦОД, то параметрия температурных режимов не является проблемой. Существуют проверенные решения, например, программируемые контроллеры TAC Xenta, которые работают через LonWorks. Именно так мы собираем данные в московском ЦОД Datahouse. Но непосвящённому смертному весьма непросто собрать правильные показатели из этой связки и выводить их в мониторинг в нужном виде. К тому же решение промышленное и достаточно дорогостоящее. Поэтому при строительстве новой гермозоны
в Екатеринбурге мы решили поэкспериментировать и внедрить альтернативное решение по измерению температуры в холодных и горячих коридорах.

Ничто не предвещало беды

Так как множество систем в этом ЦОДе завязано на открытом коммуникационном протоколе Modbus мы решили заказать температурные датчики, работающие поэтой шине, и собирать данные с дальнейшей интерпретацией в интерфейсе мониторинга. Недорогие датчики быстро нашлись на известном китайском сайте и были заказаны партиями в количестве 20 и 40 штук.

Первая партия из 20 штук пришла достаточно оперативно, но при детальном рассмотрении стало понятно, что датчики незначительно отличаются корпусами. Важно ли это, как выяснилось да.

Из первой партии завелось 15 датчиков. Так как острой потребности в остальных не было, пока работали с ними. К моменту прихода второй партии выявили, что часть уже установленных в шину датчиков имеет поведение новогодней елки: показывают некорректные данные, отдают checksum error или отваливаются по таймауту.

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

Вот так это выглядело:

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

Не ищем легких путей

Вскрыли, посмотрели: микросхемы идентичны. Значит дело в прошивке.

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

Пока разбирались с работоспособностью датчиков поняли, как без особых сложностей обнаружить кривую версию прошивки. Если кроме Modbus работают обычные текстовые команды READ, PARAM, AUTO, STOP значит прошивка хорошая. В мертвых прошивках текст не отдается.

Решили взять прошивку с этих живых 8 датчиков, купили программатор Nu-Link,
но хитрые китайцы заблокировали чтение прошивки. То есть перезалить можно, а считать - нельзя. Запросы правильных прошивок у поставщика потерпели фиаско:
Я продаван, я не разработчик.

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

За основу был взят Keil, пакет С51, позволяющий работать с 8-битными MCU.

В начале я научил читать сенсор SHT 20 (который собственно и снимает температурные данные), потом научил передавать эти данные по Modbus. В виду того, что этот MCU ни что иное как Nuvoton N76E003AT20, то вся база знаний, видимо, сосредоточена в руках наши китайских друзей.

В итоге i2c и Modbus сделал быстро, а вот с таймерами пришлось повозиться. Чтобы не было коллизий в шине, добавил возможность смены SLAVE_ID без выключения датчика в Китайской версии прошивки после смены адреса его нужно было обязательно выключать, что не очень удобно.

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

Так стало:

Если говорить про результаты измерений, то нормальные показания появляются только
в помещении с явной циркуляцией и движением воздуха. Без продува датчик показывает 30С. Это объясняется тем, что внутри установлен стабилизатор напряжения, который преобразует 24В в 3.3В, переводя разность в тепло.

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

Несмотря на возникшие осложнения, данное решение имеет два очевидных преимущества: стоимость и гибкость. Датчики можно установить в любом удобном месте, точечно или объединить в гирлянды. Можно измерять как общую температуру, так и частные показания отдельных приборов и устройств. И самое важное, что все это отлично работает по Modbus.

Программа выложена на GitHub кому интересно, можно забрать и поиграться.
Стоимость датчика всего 300 , правда, нужен программатор.

Подробнее..

Исследуем энергопотребление Bluetooth LE модуля MLT-BT05

16.11.2020 22:16:56 | Автор: admin

Понадобилось мне один свой проект по-быстрому дополнить возможностью доступа к прибору через Bluetooth. Взгляд мой упал на давно валявшийся в столе модуль MLT-BT05 (такой, как на КДПВ), с которым когда-то поигрался, убедился в том, что байтики туда-сюда бегают и AT-команды отрабатываются, да и отложил за ненадобностью. На плате прибора был разведен и выведен на разъем свободный UART и оставалось только припаять модуль к его ответной части и дописать соответствующий код в прошивку. Возникал только один вопрос: питание у прибора батарейное, так что лишнее потребление нам ни к чему. Особенно когда модуль не используется. Bluetooth в нем, конечно, Low Energy, но возник вопрос, насколько low эта energy. Поиск не дал результатов -- единственная найденная цифра была "до 50 мА". Значит, придется измерять самостоятельно.

Пробуем мультиметром

Мультиметр разочаровал. Нет, он показал примерно 8,5-8,7 мА, когда модуль в активном состоянии, независимо от того, бегают данные или нет, и независимо от настройки мощности (такое впечатление, что ничего она не настраивает), режима работы и т.п. Но когда я отдал команду AT+SLEEP, мультиметр стал показывать лишь пляшущие циферки -- ток то падал до нуля, то подскакивал до 2-3 мА. Собственно, это и ожидалось -- ведь в спящем режиме модуль должен время от времени просыпаться и что-то делать, чтобы к нему можно было подключиться. Но как узнать, сколько на самом деле потребляет наш "синий зуб". И самое главное -- можно ли "задавить" это потребление в нерабочем состоянии до близкого к нулевому, избежав необходимости вводить в схему дополнительное управление питанием?

Включаем осциллограф

Предварительно впаяв в разрыв питания резистор на 10 Ом. Соответственно, 1 мА тока будет соответствовать падению напряжения 10 мВ.

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

Тут много помех, но на их фоне отчетливо видны две последовательности импульсов потребляемого тока. Между маленькими импульсами четко 100 мс, между большими чуть больше -- 106 мс, при этом большие импульсы с маленькими никак не связаны, то попадая друг между другом, то накладываясь друг на друга. Но интервалы между двумя маленькими или двумя большими импульсами все время одинаковые.

А тут осциллограммы маленького и большого импульсов укрупненно.

Так выглядит потребляемый ток в режиме Peripherial (AT+ROLE0), когда модуль готов к подключению извне и сигналит в эфир, передавая свой "позывной", для того, чтобы его можно было найти и подключиться к нему. Если мы переключим модуль в режим Central (AT+ROLE1), то в спящем режиме он замолкает. Потребление явно снижается, но не до нуля. На осциллограмме потребляемого тока исчезают большие импульсы -- вероятно, это ток передатчика. Маленькие же остаются, интервал между ними не изменяется. В обоих режимах ни на интервалы между этими импульсами потребления, ни на их амплитуду не влияют никакие настройки, осуществляемые AT-командами.

Меня интересовали именно эти два режима, в которых данный модуль эмулирует обычный последовательный порт через классический Bluetooth, правда, с присущим Bluetooth LE ограничением длины сообщения в 20 байт. У данного модуля есть ряд других режимов, специфических для LE-версии интерфейса, но они не представляли для меня интереса.

А теперь посчитаем

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

- у маленького импульса 7,8 мА за 2 мс;

- у большого -- 12,9 мА за 4,2 мс.

Отсюда получаем:

- для маленьких импульсов средний ток Iср = 7,8 мА * 2 мс / 100 мс = 0,156 мА;

- для больших -- Iср = 12,9 мА * 4,2 мс / 106 мс = 0,511 мА.

В режиме AT+ROLE0 потребляемый ток включает обе серии импульсов, так что потребляемый ток в этом режиме равен сумме этих токов и составляет 0,667 мА.

Заключение

Итак, мы имеем следующие значения потребляемых токов в различных режимах работы модуля:
В активном режиме: 8,5..8,7 мА

В режиме сна:

-- в центральной роли: 156 мкА

-- в периферийной роли: 667 мкА.

Потребляемый ток не удается опустить ниже 156 мкА никакими настройками и этот ток явно слишком велик для потребления от батареи "выключенного" устройства, так что если выключение питания в вашей конструкции сделано переводом МК в режим STANDBY, придется озаботиться для модуля персональным ключом для его обесточивания. Впрочем, при потребляемом токе не более 10 мА, можно запитать модуль прямо от порта МК, не используя дополнительных ключей.

Подробнее..

Перевод Компьютерный поиск помог разобраться с 90-летней математической задачей

31.08.2020 18:16:08 | Автор: admin

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




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

Гипотеза Келлера, выдвинутая 90 лет назад Отт-Генрихом Келлером, связана с задачей покрытия пространств идентичными плитками. Она утверждает, что если замостить двумерное пространство двумерными квадратными плитками, то хотя две из них должны будут соприкасаться сторонами. То же предсказание гипотеза делает для любых измерений то есть, при заполнении 12-мерного пространства 12-мерными квадратами, хотя бы у двух из них должна будет найтись общая сторона.

Годами математики бились над этой гипотезой, доказывая её истинность для одних измерений и ложность для других. И к прошлой осени вопрос оставался нерешённым только для семимерного пространства.

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

Авторы новой работы, Джошуа Брейкенсик из Стэнфорда, Марийн Хиюл и Джон Мэки из университета Карнеги-Меллона, и Дэвид Нарваез из Рочестерского технологического института, решили эту задачу при помощи 40 компьютеров. Всего за 30 минут машины выдали односложный ответ: да, в семи измерениях гипотеза верна. И нам даже не надо принимать это заключение на веру.

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

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

Загадочное седьмое измерение


Легко видеть, что в двух измерениях гипотеза Келлера верна. Возьмите листок бумаги и попробуйте покрыть его одинаковыми квадратами без промежутков и без наложения. Довольно скоро вы поймёте, что сделать это удастся, только если хотя бы у двух квадратов будет одна и та же сторона. Если у вас под рукой есть кубики, вам будет легко убедиться, что гипотеза истинна и для третьего измерения. В 1930-м Келлер предположил, что это соотношение работает для всех измерений и соответствующих им плиток.

Ранние результаты поддержали предсказание Келлера. В 1940-м Оскар Перрон доказал, что гипотеза верна для измерений с первого по шестое. Однако более 50 лет спустя новое поколение математиков нашло первый контрпример для этой гипотезы: в 1992 году Джеффри Лагариас и Питер Шор доказали, что гипотеза не работает в 10-м измерении.


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


Легко показать, что если гипотеза не выполняется в каком-то измерении, она не выполняется и во всех старших. Поэтому после работы Лагариаса и Шора осталось только решить вопрос для седьмого, восьмого и девятого измерения. В 2002 году Мэки доказал, что гипотеза Келлера ложна для измерения восемь (и, следовательно, девять).

Открытым осталось только седьмое измерение это было либо самое большое измерение, для которого эта гипотеза верна, или самое малое, в котором гипотеза неверна.

Никто точно не знает, что там происходит, сказал Хиюл.

Соединяем точки


Пока математики бились над этой задачей несколько десятилетий, их методы постепенно менялись. Перрон работал над первыми шестью измерениями, используя лишь карандаш и бумагу, но к 1990-м исследователи придумали, как переводить гипотезу Келлера в совершенно другой вид позволяющий им применять для её решения компьютеры.

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


Марийн Хиюл из университета Карнеги-Меллона

В 1990 году Кересцтели Корради и Сандор Шабо придумали подходящий дискретный объект. Они показали, что касательно этого объекта можно задавать вопросы, эквивалентные гипотезе Келлера. И если доказать что-то, связанное с этими объектами, то будет доказана и гипотеза Келлера. Это свело вопрос о бесконечности к менее сложной арифметической проблеме с несколькими числами.

Вот, как это работает.

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

Для начала представьте, что на столе лежит 16 игральных кубиков, и у всех верхняя грань с двумя точками (две точки обозначают двумерное пространство, а почему кубиков 16 увидим чуть позже). Все кубики повёрнуты одинаково, так, что две точки расположены однообразно у всех. Раскрасьте каждую точку любым из четырёх цветов: красным, зелёным, белым или чёрным.

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


Граф Келлера для двух измерений. Найдя подмножество из четырёх кубиков, в котором каждый соединён со всеми остальными, вы опровергнете гипотезу Келлера для двумерного пространства. Однако такого подмножества нет, и гипотеза верна.
Внизу приведён пример полностью объединённой клики из четырёх кубиков, которой нет в графе.


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

Существует 16 способов раскрасить две точки четырьмя цветами (поэтому у нас 16 кубиков). Разложите все эти 16 возможностей перед собой. Соедините все пары кубиков, удовлетворяющие требованиям. Найдутся ли в вашей схеме четыре кубика, каждый из которых объединён с тремя другими?

Такое полностью связанное подмножество кубиков называется кликой. Если вы сможете найти такую, вы опровергнете гипотезу Келлера в двух измерениях. Однако вы не сможете её просто не существует. А отсутствие такой клики из четырёх кубиков означает, что гипотеза Келлера верна для двух измерений.

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

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

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

Они должны соприкасаться, но не полностью, сказал Хиюл.


Одинаковая раскраска одинаковое расположение.
Разные цвета, нет пар частичное наложение.
Два парных цвета и пара одинаковых общая сторона.
Два парных цвета и два разных частичное соприкосновение сторонами.


Масштабирование


Тридцать лет назад Корради и Шабо доказали, что математики могут использовать подобную процедуру для работы с гипотезой Келлера в любом измерении, подправляя параметры эксперимента. Для доказательства гипотезы Келлера в трёх измерениях можно использовать 216 кубиков с тремя точками на грани, и, возможно, три пары цветов (однако тут возможна некоторая гибкость). Потом нужно поискать восемь кубиков (23), полностью соединённых друг с другом, по тем же условиям, что мы приводили выше.

В целом, для доказательства гипотезы Келлера в n измерениях нужно использовать кубики с n точек и попытаться найти среди них клику размера 2n. Можно считать, что она представляет некую сверхплитку (состоящую из 2n плиток меньшего размера), способную покрыть всё n-мерное пространство.

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

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

Мэки опроверг гипотезу Келлера в 8-м измерении, найдя клику из 256 кубиков (28), поэтому оставалось разобраться с гипотезой в 7-м измерении, найдя клику из 128 кубиков (27). Найдя эту клику, вы опровергнете гипотезу Келлера в седьмом измерении. Докажите, что она не существует и вы докажете истинность гипотезы.

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

Седьмое измерение неудобное, поскольку 7 простое число, и на измерения меньшего порядка его не разобьёшь, сказал Лагариас. Поэтому не оставалось выхода, кроме как разбираться с полноценной комбинаторикой этих графов.

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

Язык логики


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

Допустим вы втроём с друзьями планируете вечеринку. Вы пытаетесь составить список гостей, однако в нём встречаются столкновения интересов. Допустим, вы хотите либо пригласить Алексея, либо исключить Колю. Один из ваших друзей хочет пригласить Колю, или Влада, или их обоих. Другой друг не хочет звать ни Алексея, ни Влада. Можно ли с такими ограничениями составить список гостей, который удовлетворит всех троих?

В терминах информатики эта задача называется задачей на приемлемость. Решить её можно, описав условие в пропозициональной формуле. В данном случае она имеет следующий вид, а А, К и В обозначают потенциальных гостей: (A OR NOT K) AND (K OR B) AND (NOT A OR NOT B).

Компьютер просчитывает её, подставляя в каждую переменную 0 или 1. 0 значение переменной ложь, или выключено, а 1 правда или включено. Подставив 0 вместо А, мы говорим о том, что Алексея не пригласили, а 1 что пригласили. В эту простую формулу 0 и 1 можно подставить (составляя список гостей) множеством способов, и, возможно, что после перебора их всех компьютер заключит, что всем интересам удовлетворить невозможно. Однако в данном случае есть два способа подставить 1 и 0 так, чтобы всем угодить: A = 1, K = 1, B = 0 (пригласить Алексея и Колю) и A = 0, K = 0, B = 1 (пригласить одного Влада).

Компьютерная программа, решающая такие утверждения, называется SAT solver, где SAT сокращение от satisfiability, удовлетворяемость. Она исследует все комбинации переменных и выдаёт односложный ответ либо ДА, есть способ удовлетворить требованиям формулы, либо НЕТ, его нет.


Джон Маки из университета Карнеги-Меллона

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

Вопрос поиска клики из 128 кубиков задача сходного толка. Её тоже можно переписать в виде пропозициональной формулы и задать SAT-солверу. Начните с большого количества кубиков с 7 точками на каждом и шестью возможными цветами. Можно ли раскрасить точки так, чтобы 128 кубиков были связаны друг с другом по определённым правилам? Иначе говоря, можно ли назначить цвета так, чтобы клика появилась?

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

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

Если провести простой перебор всех возможностей, вы столкнётесь с 324-значным числом, сказал Мэки. Самый быстрый компьютер в мире работал бы до конца времён, перебирая все возможности.

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

Скрытые эффективности


Мэки вспоминает тот день, когда, с его точки зрения, проект реально заработал. Он стоял перед доской в своём офисе в университете Карнеги-Меллона, обсуждая проблему с двумя соавторами, Хиюлом и Брейкенсиком, когда Хиюл предложил способ структурировать поиск так, чтобы его можно было закончить за разумное время.

В тот день в моём офисе реально работал человеческий гений, сказал Мэки. Я будто наблюдал за Уэйном Гретцки, или за Леброном Джеймсом в финале НБА. У меня мурашки по телу от одного только воспоминания об этом.

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

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

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

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

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

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

В итоге они настолько улучшили поиски клики размера 128, что вместо проверки 239 000 конфигураций их программе пришлось проверять всего порядка миллиарда (230). Это превратило поиск, на который могла уйти вечность, в задачку на одно утро. Наконец, всего через полчаса вычислений они получили ответ.

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

Компьютер выдал не просто односложный ответ. Он присовокупил к нему длинное доказательство на 200 ГБ, поддерживающее это заключение.

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

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

Перевод Физики уточнили величину волшебного числа, управляющего Вселенной

11.01.2021 18:14:50 | Автор: admin

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



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

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

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

Постоянная повсеместна, поскольку она описывает силу электромагнитного взаимодействия, действующего на заряженные частицы электроны и протоны. В повседневном мире мы сталкиваемся либо с гравитацией, либо с электромагнетизмом. Поэтому альфа так важна, сказал Холгер Мюллер, физик из Калифорнийского университета в Беркли. 1/137 это немного, и влияние электромагнетизма слабое. В результате заряженные частицы формируют преимущественно пустые атомы, в которых электроны движутся по удалённым орбитам и легко с них срываются. Это приводит к формированию химических связей. С другой стороны, постоянная достаточно велика если бы она была ближе к 1/138, в звёздах не создавался бы углерод, и знакомая нам жизнь не смогла бы появиться.

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

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

В декабре 2020 команда из четырёх физиков под руководством Саиды Гелати-Халифы из парижской лаборатории Кастлер-Броссел опубликовала в журнале Nature новую работу с самым точным на сегодняшний день измерением величины постоянной тонкой структуры. Команда получила значение постоянной вплоть до 11 знака: = 1/137,035999206.

С погрешностью всего в 81 триллионную новое значение стало в три раза более точным, чем предыдущее, проведённое в 2018 году главным конкурентом команды группой Мюллера в Беркли. До Мюллера Гелати-Халифа получала самое точное на тот момент значение в 2011. О новом значении, полученном их соперниками, Мюллер сказал: В три раза это серьёзно. Можно без особого стеснения назвать это отличным достижением.


Саида Гелати-Халифа в своей парижской лаборатории

Гелати-Халифа улучшает свой эксперимент уже 22 года. Она измеряет постоянную тонкой структуры путём измерения величины отклонения атомов рубидия при поглощении ими фотона. Мюллер делает то же самое с атомами цезия. Скорость отклонения характеризует массу атомов рубидия в простой формуле постоянной тонкой структуры это самый сложный для измерения член. Узким местом всегда служит наименее точно измеренная величина, поэтому любое улучшение в этой области ведёт к уточнению постоянной тонкой структуры, пояснил Мюллер.

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

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

Тяжелее всего Гелати-Халифе понять, в какой момент нужно остановиться и опубликовать результаты. Они с командой остановились 17 февраля 2020 года когда коронавирус набирал обороты во Франции. На вопрос, похоже ли принятие решения учёным о том, когда нужно публиковать работу, на мысли художника о том, когда считать картину законченной. Гелати-Халифа ответила: Именно, именно, именно.

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

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

Но на самом деле все измерения прекрасно совпадают, что по большей части отметает некоторые предположения о существовании новых частиц. Совпадение наилучших измерений g-фактора и измерения, проведённого Мюллером в 2018 году, приветствовали как величайший триумф Стандартной модели. Новый результат Гелати-Халифы ещё лучше соответствует ожидаемому. Это самое лучшее совпадение теории с экспериментом, сказала она.

И всё же они с Мюллером настроены на дальнейшие улучшения экспериментов. Команда из Беркли переключилась на новый лазер с более широким лучом (благодаря которому получится равномернее обстреливать облако атомов цезия). Парижская команда планирует заменить вакуумную камеру, и провести иные усовершенствования.

Каким человеком надо быть, чтобы тратить так много сил на такой скромный результат? Гелати-Халифа назвала три свойства: Нужно быть скрупулёзным, пылким и честным с самим собой. Мюллер сказал: Думаю, что всё это очень интересно. Лично я обожаю строить новенькие блестящие механизмы. И применять их к каким-то важным вещам. Он отметил, что никто не может в одиночку построить коллайдер высоких энергий типа европейского Большого адронного коллайдера. Однако при сборке сверхточного инструмента можно проводить измерения, важные для фундаментальной физики, работая всего втроём-вчетвером.
Подробнее..

Как упростить доработки и поддержку хранилища данных?

08.06.2021 12:19:01 | Автор: admin

1. Адаптированная методология Anchor modeling

Архитектура ядра хранилища данных должна соответствовать описанной ниже адаптированной (не оригинальной) методологии Anchor modeling (но не Data Vault).

Тип таблицы

Примеры имени таблицы (в скобках описание)

С таблицами каких типов может быть связана

Обязательный тип поля

Примеры имени поля

Сущности (Anchor, Entity type). Обозначается квадратом

TR_Transaction (полупроводка по дебету или по кредиту), AC_Account (синтетический счет)

Связи, Атрибут сущностей

Суррогатный ключ сущности

TR_ID, AC_ID

Атрибут сущностей (Attribute). Обозначается кругом

TR_TDT_TransactionDate (дата заключения сделки)

Сущности

Суррогатный ключ сущности (является первичным ключом в течение срока действия записи)

TR_ID

Дата и время начала срока действия записи

TR_TDT_FROM

Дата и время окончания срока действия записи (не включительно)

TR_TDT_BEFORE

Атрибут сущностей

TR_TDT

Связи (Tie, Relationship). Обозначается ромбом

TR_AC_DC_Transaction_Account_DrCr (счет главной книги в полупроводке)

Сущности

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

TR_ID, AC_ID

Дата и время начала срока действия записи

TR_AC_DC_FROM

Дата и время окончания срока действия записи (не включительно)

TR_AC_DC_BEFORE

Опциональный атрибут или несколько атрибутов связей

DC (дебет/кредит)

Схема данных примераСхема данных примера

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

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

В ядре хранилища данных не должны использоваться значения NULL, за исключением тех атрибутов связей, которые не входят в составной ключ (обычно это наименования, обозначения, коды, ссылки, выбранные значения, флаги). Если неизвестны начало и/или окончание срока действия записи, то должны указываться принятые условные даты (например, '0001-01-01', '-infinity', '9999-12-31', 'infinity').

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

Таблицы типа узел (knot) исключены из адаптированной методологии Anchor modeling. Однако типовое обозначение узла на схеме в виде квадрата с закругленными углами удобно использовать для обозначения атрибутов связей.

Набросок БД может быть сделан (в том числе, офлайн) с помощью наглядных и удобных веб-инструментов Online Modeler или Online Modeler (test version), но сгенерированный ими SQL-код непригоден для использования. Для генерации SQL-кода (включая SQL-запросы) по методологии Anchor modeling все известные компании используют самостоятельно разработанные ими инструменты на основе языка программирования Python и Microsoft Excel.

2. Суррогатные ключи в адаптированном формате ULID

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

В качестве суррогатного ключа должна использоваться адаптированная (не оригинальная) версия ULID (но не UUID), имеющая любой из двух форматов:

  • ttttttttttrrrrrrrrrrrrrrxx (пример: 01F5B023PBG3C48TSBDQQ3V9TR)

  • ttttttttttsssrrrrrrrrrrrxx (пример: 01F5B023PB00448TSBDQQ3V5TR)

где

t дата и время генерации с точностью до миллисекунды (Timestamp) (10 символов или 48 бит), UNIX-time в миллисекундах (UTC)

s счетчик от 0 до 32768, сбрасываемый каждую миллисекунду, (Sequence) (3 символа или 15 бит)

r случайное число (Randomness) (14/11 символов или 65/55 бит)

x тип сущностей (Entity type) (2 символа или 10 бит)

Должна использоваться кодировка и алфавит Crockford's base32.

Генератор ULIDов должен удовлетворять следующим требованиям:

  1. Соблюдение требуемого формата ULIDов

  2. Однократное использование каждого генерируемого ULIDа в качестве суррогатного ключа сущности

  3. Использование (достаточно производительного) криптографически стойкого генератора псевдослучайных чисел или генератора истинно случайных чисел

  4. Монотонное возрастание ULIDов в интервале менее миллисекунды (за счет инкремента случайного числа для формата без счетчика, или за счет счетчика для формата со счетчиком)

  5. Генерация ULIDов в формате (текстовый, бинарный, UUID или целочисленный), наиболее производительном для операций поиска в применяемых СУБД и носителе данных (HDD или SSD)

  6. Пиковая (в течение 5 мс) производительность генерации ULIDов должна быть выше максимальной производительности записи в применяемых СУБД и носителе данных (HDD или SSD) (например, за счет буферизации заранее вычисленных частей ULIDа)

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

3. Указание начала и окончания срока действия записи

Для сохранения историчности данных должен применяться второй тип медленно меняющегося измерения SCD2 с добавлением двух унифицированных полей (столбцов): Дата и время начала срока действия записи (имя столбца с суффиксом _FROM) и Дата и время окончания срока действия записи (не включительно) (имя столбца с суффиксом _BEFORE).

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

4. Указание даты и времени создания записи

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

Примеры имени поля: TR_TIMESTAMP, TR_TDT_TIMESTAMP, TR_AC_DC_TIMESTAMP.

5. Только внешние источники пунктов классификаторов

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

Если при загрузке свежей версии классификатора изменился (исчез, появился) пункт классификатора, то должны автоматически рассчитываться и указываться окончание срока действия прежней запаси, а также начало и окончание действия новой записи.

6. Фасетная классификация

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

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

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

  • признак счета активный/пассивный,

  • глава,

  • раздел,

  • счет первого порядка,

  • тип контрагента,

  • срок.

7. Теги

Если есть большое количество атрибутов с логическими значениями true и false, то эти атрибуты удобнее заменить соответствующими тегами, которые можно хранить в одном поле типа array, типа hstore или типа jsonb.

8. Полиморфные связи

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

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

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

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

9. Устранение витрин данных

Каждый отчет должен формироваться непосредственно из реплики ядра хранилища данных.

Нежелательно использовать витрины данных, так как они сводят на нет все достоинства методологии Anchor modeling. Особенно большими недостатками обладают универсальные витрины данных, предназначенные для формирования любых видов отчетности.

10. Типовые SQL-запросы и материализованные представления

Разработка SQL-запросов к базе данных, соответствующей методологии Anchor modeling, трудоемка. Поэтому для облегчения работы системных аналитиков и SQL-программистов могут быть созданы типовые SQL-запросы или материализованные представления, соединяющие сущности с их атрибутами на задаваемую дату. Но использование таких SQL-запросов и материализованных представлений может привести к усложнению БД и снижению производительности. Поэтому для рабочей системы вместо них необходимо использовать автоматическую генерацию SQL-запросов (с использованием языка программирования Python и Microsoft Excel).

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

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

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

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

  • таблица сущностей правил, к которой привязаны входные атрибуты и один выходной атрибут,

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

Первый способ очевидно более гибкий и упорядоченный.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru