Hardprob/Minimum Test Collection — различия между версиями
Материал из DISCOPAL
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 2: | Строка 2: | ||
* Коллекция <em>C</em> подмножеств конечного множества <em>S</em>. | * Коллекция <em>C</em> подмножеств конечного множества <em>S</em>. | ||
− | * Найти подколлекцию <em>C'⊆ C</em>, такую, что для каждой пары различных элементов <m>x_1, | + | * Найти подколлекцию <em>C'⊆ C</em>, такую, что для каждой пары различных элементов (и для каждого элемента этой пары) <m>x_1, x_2 ∈ S</m>, есть некоторое подмножество <m>c∈C'</m>, которое содержит точно один элемент из этой пары. |
* Минимизировать мощность этой подколлекции <em>|C'|</em>. | * Минимизировать мощность этой подколлекции <em>|C'|</em>. | ||
+ | |||
+ | Для понимания названия задачи, представим, что <em>S</em> — это множество возможных болезней, а подмножества — это симптомы (или «тесты»), которые могут быть характерны для нескольких болезней. И мы должны выбрать такой набор симптомов-тестов, чтобы имея результаты, мы могли отличить у пациента любые пары болезней. | ||
---- | ---- | ||
{{hard-problem-on-lab17|{{PAGENAME}}}} | {{hard-problem-on-lab17|{{PAGENAME}}}} | ||
− | + | * {{has-testdata-and-visualization}} | |
− | + | * {{has-pyomo-model}} | |
− | + | * {{has-npc-reduction}} | |
− | <!-- * {{add-random-fuzzing-tests}} --> | + | <!-- * {{add-random-fuzzing-tests}} --> |
+ | ** Вроде как все есть, но надо бы прорефакторить решение студента | ||
+ | |||
---- | ---- | ||
<small> | <small> | ||
Строка 18: | Строка 22: | ||
<!-- * [ Задача в википедии] --> | <!-- * [ Задача в википедии] --> | ||
</small> | </small> | ||
+ | |||
+ | {{reserve-task|[[Участник:StasFomin|StasFomin]] 20:35, 21 мая 2025 (UTC)}} | ||
<!-- end --> | <!-- end --> | ||
− | |||
[[Категория:ClassicHardProblems]] | [[Категория:ClassicHardProblems]] |
Текущая версия на 20:36, 21 мая 2025
- Коллекция C подмножеств конечного множества S.
- Найти подколлекцию C'⊆ C, такую, что для каждой пары различных элементов (и для каждого элемента этой пары) , есть некоторое подмножество , которое содержит точно один элемент из этой пары.
- Минимизировать мощность этой подколлекции |C'|.
Для понимания названия задачи, представим, что S — это множество возможных болезней, а подмножества — это симптомы (или «тесты»), которые могут быть характерны для нескольких болезней. И мы должны выбрать такой набор симптомов-тестов, чтобы имея результаты, мы могли отличить у пациента любые пары болезней.
Код в «minimum-test-collection.ipynb» на гитлаб или живьем в лабе
-
— есть тестовые данные и визуализация.
-
— есть Pyomo-формулировка для ЦЛП.
-
— есть сведение на Python NP-полной задачи к данной.
- Вроде как все есть, но надо бы прорефакторить решение студента
- Задача в базе NP-полных задач Вигго Кана
- Код задачи в книге «ГД» → «SP6»
Задача зарезервирована: StasFomin 20:35, 21 мая 2025 (UTC)