I think patents should be replaced with prizes. People can propose problems which needs solving and then private individuals and/or government can pledge money to donate to whoever finds a solution to the problem first. However the winner doesn't own the idea. It must be made public.