Получите скорость канала - Win32_PerfRawData_Tcpip_NetworkInterface

Во-первых, некоторые определения:

  • А конкретная проблема находится в P, если можно вычислить решение вовремя меньше чем n^k приблизительно для k, где n размер входа. Например, сортировка может быть сделана в n log n, который является меньше чем n^2, таким образом сортируя являются полиномиальным временем.

  • проблема А находится в NP, если там существует k таким образом, что там существует решение размера самое большее n^k, который можно проверить вовремя самое большее n^k. Возьмите с 3 окрасками из графиков: учитывая график, с 3 окрасками является список (вершина, цвет) пары, который имеет размер O(n), и можно проверить вовремя O(m) (или O(n^2)), есть ли у всех соседей различные цвета. Таким образом, график является 3-поддающимся окраске, только если существует короткое и с готовностью решение поддающееся проверке.

эквивалентным определением NP являются "проблемы, разрешимые машина Тьюринга N ondeterministic в [1 118] время P olynomial". В то время как это говорит Вам, куда название происходит от, оно не дает Вам то же интуитивное чувство того, на что похожи проблемы NP.

Примечание, что P является подмножеством NP: если можно найти решение в полиномиальное время, существует решение, которое может быть проверено в полиномиальное время - просто проверяют, что данное решение равно тому, которое можно найти.

, Почему вопрос P =? NP интересен? Ответить что, первые потребности видеть, каковы полные NP проблемы. Помещенный просто,

  • проблема А L полна NP, если (1) L находится в P и (2) алгоритм, который решает L, может использоваться для решения любой проблемы L' в NP; то есть, приведенный пример L' можно создать экземпляр L, который имеет решение, если и только если экземпляр L' имеет решение. Официально говоря, каждая проблема L' в NP приводима к L.

Примечание, что экземпляр L должен быть полиномиально-разовый вычислимый и иметь полиномиальный размер в размере L'; тот путь, решив полную NP проблему в полиномиальное время дает нам полиномиальное решение времени [1 120] весь проблемы непера.

Вот пример: предположите, что мы знаем, что с 3 окрасками из графиков NP-трудная проблема. Мы хотим доказать, что решение выполнимости булевых формул является NP-трудной проблемой также.

Для каждой вершины v, имейте две логических переменные v_h и v_l, и требование (v_h или v_l): каждая пара может только иметь значения {01, 10, 11}, о котором мы можем думать как цвет 1, 2 и 3.

Для каждого края (u, v), имеют требование что (u_h, u_l)! = (v_h, v_l). Таким образом,

not ((u_h and not u_l) and (v_h and not v_l) or ...) перечисление всех равных конфигураций и соглашения, что ни один из них не имеет место.

AND 'луг вместе все эти ограничения дают булеву формулу, которая имеет полиномиальный размер (O(n+m)). Можно проверить, что это занимает время для вычислений также: Вы делаете простой O(1) материал на вершину и на край.

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

Следовательно, если с 3 окрасками графиков полно NP, булева выполнимость формулы - также.

Мы знаем, что с 3 окрасками из графиков полно NP; однако, исторически мы узнали это первым проявлением полноты NP булевой выполнимости схемы и затем сокращения это к с 3 окрашиваемостью (вместо наоборот).

6
задан Community 23 May 2017 в 12:19
поделиться

2 ответа

Хорошо. Спасибо за размещение короткого сценария. Пока вы работали над этим, я следил по другому пути, используя DBD :: WMI и копался в документации, чтобы увидеть, не пропустили ли вы что-нибудь.

Я не мог найти лучшего способа (должен быть быть одним), чем канонизация имен:

#!/usr/bin/perl

use strict; use warnings;

use DBI;
use Data::Dumper;

my $computer = '.';
($computer) = @ARGV if @ARGV;

my $dbh = DBI->connect("dbi:WMI:$computer", undef, undef,
    { RaiseError => 1},
);

print "=== From Win32_NetworkAdapter ===\n";

my $name = $dbh->selectall_arrayref(
    'SELECT * FROM Win32_NetworkAdapter WHERE DeviceID = 11'
)->[0]->[0]->{Name};

(my $canonname = $name) =~ s/[^A-Za-z0-9]/_/g;

print "Name: $name\nCanonical name: $canonname\n\n";

my $sth = $dbh->prepare(
    'SELECT * FROM Win32_PerfRawData_Tcpip_NetworkInterface'
);

$sth->execute;

print "=== From Win32_PerfRawData_Tcpip_NetworkInterface ===\n";

while (defined (my $adapter = $sth->fetchrow_arrayref )) {
    my $conf = $adapter->[0];
    my $perfname = $conf->{Name};
    (my $canonperfname = $perfname) =~ s/[^A-Za-z0-9]/_/g;
    if ( $canonperfname =~ /^$canonname/ ) {
        print "Name: $perfname\nCanonical name: $canonperfname\n";
        print $conf->{CurrentBandwidth}, "\n\n";
        last;
    }
}

Вывод:

=== From Win32_NetworkAdapter ===
Name: Intel(R) PRO/Wireless 3945ABG Network Connection
Canonical name: Intel_R__PRO_Wireless_3945ABG_Network_Connection

=== From Win32_PerfRawData_Tcpip_NetworkInterface ===
Name: Intel[R] PRO_Wireless 3945ABG Network Connection - Packet Scheduler Miniport
Canonical name: Intel_R__PRO_Wireless_3945ABG_Network_Connection___Packet_Scheduler_Miniport
54000000
4
ответ дан 16 December 2019 в 21:41
поделиться

Я просто посмотрел на свою машину с WMI-инструментами, потому что подумал, что это должно быть легко ... ;-)
. но это не...

Но то, что я нашел на своей машине, это конкатенация "Win32_NetworkAdapter.Name" + "__". + "Win32_NetworkAdapter.InterfaceIndex". в результате получим "Win32_PerfFormattedData_Tcpip_NetworkInterface.Name="Сетевой контроллер NVIDIA nForce _2" [Regard the space too!].

Пример с моей машины:

Win32_NetworkAdapter.DeviceID="13"
Win32_NetworkAdapter.NetConnectionID="Local Area Connection 2"
Win32_NetworkAdapter.InterfaceIndex="2"
Win32_NetworkAdapter.Name="NVIDIA nForce Networking Controller"
Win32_PerfFormattedData_Tcpip_NetworkInterface="NVIDIA nForce Networking Controller _2"

Надеюсь, я правильно понял ваш вопрос и это может помочь?!

br--mabra

.
3
ответ дан 16 December 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: