Glacier & AdminAce
AdminAce AdminAce
Я тут разрабатываю модель распределения ресурсов, которая гарантирует отсутствие критических дефицитов в кризисной ситуации – это как таблица, которая просто не может сломаться. Твоё умение выявлять скрытые подводные камни может стать решающим фактором в доработке алгоритма. Поможешь разобраться с цифрами?
Glacier Glacier
Звучит неплохо, но мне сначала нужно посмотреть, на чём всё это основано. Давай проясним ограничения, перепроверим зависимости и убедимся, что ничего важного не упустили. Пришли мне таблицу, я быстро всё проанализирую.
AdminAce AdminAce
Конечно, вот ссылка. В таблице всё прописано: все ограничения отмечены, цепочки зависимостей прослежены, а ещё есть зона для аномалий. Проверь как следует и скажи, если что-то покажется странным.
Glacier Glacier
Я не вижу ссылку в твоем сообщении – можешь, пожалуйста, переслать? Как только у меня будет файл, быстро проверю ограничения, прослежу зависимости и проверю логику критической секции на непротиворечивость. И тогда уже выявим все мелкие несоответствия.
AdminAce AdminAce
Вот ссылка на таблицу: https://docs.google.com/spreadsheets/d/1ExamplePublicSheet/edit?usp=sharing Посмотри, проверь всё как надо, и скажи, если где-то нужно что-то подправить.
Glacier Glacier
Я не смогла потянуть этот отчет напрямую, но если ты отмечаешь аномалии, перепроверь, пожалуйста, что пороговые значения основаны на исторической изменчивости, а не просто на каком-то произвольном значении. И убедись, что цепочка зависимостей не приводит к тому, что один критически важный ресурс зацикливается в перераспределении – эти незаметные циклические ссылки легко пропустить при поверхностной проверке. Если ты сможешь поделиться формулами или скриншот основных ячеек, я попробую разобраться подробнее.
AdminAce AdminAce
Вот основные формулы для ключевых ячеек, которые управляют логикой "красной зоны" и цепью зависимостей: - Ячейка C10 (множитель исторической изменчивости): =STDEV.P(Data!B2:B100) * 1.5 - Ячейка D10 (порог для выбросов): =AVERAGE(Data!B2:B100) + C10 - Ячейка E12 (индикатор "красной зоны"): =IF(Data!B12 > D10, “RED”, “OK”) - Ячейка F20 (индикатор зависимости): =IF(AND(Allocation!A2>0, Allocation!B2>0), “CHAIN”, “NONE”) - Ячейка G25 (защита от циклических ссылок): =IF(AND(COUNTIF(Allocation!A:A, Allocation!A25)>1, COUNTIF(Allocation!B:B, Allocation!B25)>1), “CIRCULAR”, “CLEAR”) Вставь их в соответствующие ячейки и проверь. Если что-то всё ещё выглядит неправильно, скажи мне, и мы подкорректируем логику.
Glacier Glacier
The variance multiplier looks fine—STDEV.P over the whole column is a solid basis, but you might want to clamp it so a single outlier doesn’t skew everything. The threshold formula adds that correctly. For the red‑zone flag, checking only B12 means you’re only flagging one row; if you need a full scan, replace E12 with an array formula or apply the same logic across the range. The dependency indicator is okay, but it will return “CHAIN” as soon as any two non‑zero values exist, even if they’re unrelated. Consider tying it to specific allocation pairs rather than just checking existence. Your circular guard counts occurrences in each column independently; a true cycle needs both columns matched for the same row. Using COUNTIFS(Allocation!A:A, Allocation!A25, Allocation!B:B, Allocation!B25) > 1 would be more precise. Once those tweaks are in place, run a full audit on any cells that feed back into the allocation logic to ensure no hidden loops remain.