I have a large table of N items with M (M>=3) distinct properties per item, From this table I have to remove all items for which the same table contains an item that scores equal or better on all properties.
I have an algorithm (python) that solves it already, but it is output-sensitive and has a worst case of approx. O((n²+n)/2) when no items are removed in the process. This is far too slow for my project (where datasets of 100,000 items with 8 properties per item are not uncommon), so I require something close to O(m*n log n) worst case, but I do not know whether this problem can be solved that fast.
Example problem case and its solution:
[higher value = better] Singing Dancing Acting A 10 20 10 B 10 20 30 C 30 20 10 D 30 10 30 E 10 30 20 F 30 10 20 G 20 30 10
Dismiss all candidates for which there is a candidate that performs equal or better in all disciplines.
Solution:
- A is dismissed because B,C,E,G perform equal or better in all disciplines.
- F is dismissed because D performs equal or better in all disciplines.
Does there exist an algorithm that solves this problem efficiently, and what is it?