У меня есть набор датчиков, измеряющих некоторые временные данные. В любой момент времени датчик выдает либо 0
, либо 1
. Датчик никогда не выдаст два 1
с последовательно.
Как мы можем найти наилучшую оценку, учитывая доступные датчики?
Например, скажем, четыре датчика вывели 1
при этих предоставленных показателях.
A = [ 178, 511, 843, 1180, 1512, 1733]
B = [ 514, 846, 1182, 1515, 1736, 1937]
C = [ 182, 516, 848, 1517, 1738, 1939]
D = [ 179, 513, 845, 1181, 1513, 1735, 1936, 2124]
Из визуального осмотра я вижу, что:
- A потерял значение в конце списка
- B потерял значение в голове списка
- C потерял значение в середине списка
- D имеет дополнительное значение в конце списка
# the None locations are not known to the consensus algorithm
a = [ 178, 511, 843, 1180, 1512, 1733, None]
b = [ None, 514, 846, 1182, 1515, 1736, 1937]
c = [ 182, 516, 848, None, 1517, 1738, 1939]
d = [ 179, 513, 845, 1181, 1513, 1735, 1936] # 2124 removed
# Consensus: Average over columns with `None` removed
# rounded to the nearest integer
s = consensus((A,B,C,D))
s = [ 180, 514, 849, 1181, 1514, 1736, 1937]
Если бы у нас было два дополнительных датчика E
и F
со следующими значениями:
E = [ 2130 ]
F = [ 2121 ]
# these two sensors only have the one tail value
# therefore sensor D's extra reading is now part of consensus.
# All other values are unchanged.
s = consensus((A,B,C,D,E,F))
s = [ 180, 514, 849, 1181, 1514, 1736, 1937, 2125]
Есть ли решение для этой проблемы, которое не является O (n ^ 2)?