A novel algorithm for optimal meter placement to maintain network observability