Я работаю над библиотекой алгоритмов аппроксимации с открытым исходным кодом для графиков и сетей, используя некоторые популярные пакеты python в качестве базы. Основная цель состоит в том, чтобы охватить современные алгоритмы аппроксимации для NP-полных задач по графикам и сетям. Причина в том, что 1) я не видел хороший (современный) консолидированный пакет, который охватывает это, и 2) это был бы хороший педагогический инструмент для изучения алгоритмов аппроксимации в задачах оптимизации NP-Hard.
При создании этой библиотеки я использую unit-тесты для проверки работоспособности (как и любой соответствующий разработчик). Я несколько осторожен в своих модульных тестах, поскольку по самой своей природе алгоритмы аппроксимации могут не возвращать правильное решение. В настоящее время я решаю несколько небольших экземпляров вручную, а затем гарантирую, что возвращаемый результат соответствует этому, но это нежелательно и не масштабируется в смысле реализации.
Что было бы лучшим способом для алгоритмов приближения unit test? Генерировать случайные экземпляры и обеспечивать, чтобы возвращаемые результаты были меньше, чем оценка, гарантированная алгоритмом? У этого, казалось бы, были бы ложные срабатывания (тест просто повезло, что время, не гарантированное, чтобы все экземпляры были ниже границы).