我的软件从多个传感器接收信息。传感器的数量不固定 - 可以添加和删除它们,每个传感器都有自己唯一的标识符。传感器不定期地发送数据 - 它们可以保持沉默数周或每秒推送数据。每个传感器都会根据一组固定的值生成一个值 - 因此传感器是离散的。我的程序将每个传感器的每条消息记录到一个SQL数据库表中(sensorId,time,value)。
任务是过滤信息。我需要从这个日志中只选择一条记录,我正在考虑将其作为实际信息。例如,如果我从单个传感器获得最新记录,其中该值表示值为A,但在此之前,10个不同的传感器告诉我该值为B,那么我仍然认为B是实际信息。同时问题不仅仅是通常的噪音过滤,因为如果有一个传感器告诉我每秒一个月的值是C,然后五个传感器最近告诉我实际上值是D,我会马上尽管历史悠久,但我认为D是实际数据 - 我想说独立来源的数量也必须具有权重。
所以,我认为我得到了两种变量的函数 - 时间(老化)和瞬间唯一传感器的数量。所以,我认为,我必须以某种方式计算每条记录的重量,然后选择一个重量最大的记录。我想,为了计算记录权重,我不仅应该使用当前记录中的信息,还应该使用之前所有记录中的信息。
我需要一些算法帮助。也许实际上有一些我不知道的着名解决方案?