Самый простой способ объяснить P v. NP и такой, не вникая в технические вопросы, - это сравнить «проблемы с текстом» с «проблемами с множественным выбором».
Когда вы пытаетесь решить «проблему с текстом», вам нужно найти решение с нуля. Когда вы пытаетесь решить проблему с несколькими вариантами выбора, у вас есть выбор: либо решить его, как «проблему с текстом», либо попытаться подключить каждый из предоставленных вам ответов и выбрать подходящий ответ кандидата.
Часто бывает, что «проблема с множественным выбором» намного проще, чем соответствующая «проблема слов»: замена ответов кандидата и проверка того, подходят ли они, могут потребовать значительно меньше усилий, чем поиск правильного ответа с нуля.
Теперь, если бы мы согласились с усилием, которое забирает полиномиальное время «легко», то класс P будет состоять из «простых словесных задач», а класс NP будет состоять из «простых задач множественного выбора»
Суть P v. NP заключается в следующем: «Есть ли какие-то легкие проблемы с множественным выбором, которые нелегко, как проблемы слов»? То есть существуют ли проблемы, для которых легко проверить достоверность данного ответа, но найти, что ответ с нуля трудно?
Теперь, когда мы интуитивно понимаем, что такое NP, мы должны бросить вызов нашей интуиции. Оказывается, есть «проблемы с множественным выбором», которые в некотором смысле являются самыми сложными из них: если бы можно было найти решение одной из этих «самых трудных из всех» проблем, можно было бы найти решение для ВСЕХ Проблемы с NP! Когда Кук обнаружил это 40 лет назад, это стало полной неожиданностью. Эти «самые трудные из всех» проблем известны как NP-hard. Если вы найдете «решение проблемы с текстом» для одного из них, вы автоматически найдете «решение проблем слов» для каждой проблемы «простого множественного выбора»!
Наконец, NP-полные проблемы - это проблемы, которые одновременно являются NP и NP-жесткими. Следуя нашей аналогии, они одновременно «легки, как проблемы с множественным выбором» и «самые трудные из них - как проблемы с текстом».
Вам нужен API сетевого монитора . Подробнее здесь и здесь .
Я использую smsniff от NIRSOFT. Вы должны быть администратором на машине, чтобы отслеживать трафик.
http://www.nirsoft.net/utils/smsniff.html
Я никогда не видел, чтобы .net использовался для прослушивания трафика. Но, возможно, у NetMon от Microsoft есть COM-интерфейс, который вы вызываете из .Net
. Но, как всегда, вам нужно быть администратором для прослушивания трафика, поскольку это необходимо для перевода сетевой карты в неразборчивый режим.