Open pelinquin opened 4 years ago
If we assume 0.01% of the population gets infected every day and every person has 40 contacts, you would get a level 2 warning every 6 days on average. This doesn't seem helpful.
lowering the threshold for a contact (duration and signal strength) is probably a better way to lower the number of infected people that are missed.
I think, 40 contacts is quite a lot. A contact means, at least 15 min at low distance. I would assume not more than 4 unique contacts per day. Especially in Lock-Down.
It's up to the epidemiologists to tell the computer scientists if this is useful. It should be understood that a "contact tracing" app allows to set priorities to choose the people to be tested. If one day you have more tests than contacts of infected persons, it is then possible to accept requests for tests of contacts of contacts of infected persons. Testing less than capacity is sub-optimal and random testing is not indicated. Testing those who can pay is unfair. The app provides an objective criterion for sorting people.
I implemented a DP-3T Low-cost like algorithm: https://github.com/pelinquin/kissact/blob/master/beacon.py
The difference with yours is that a user tested condid+ sends his ids but also those of his contacts to the backend. The backend then distributes ids of infected people with two levels: Level 1 -> contact with a convid+ Level 2 -> contact with convid+ contact This improves the probability of risk and anticipates a little more on the spread of the virus.
The advantage is that you no longer have to link ids together. They can be completely random, which removes a criticism of centralized approaches.
There is still a risk that the user may modify the program to reverse the levels, thus distorting the risk assessment. This is less serious than not transmitting ids.
As I understand, Apple/google is doing this two levels evaluation