Observability analysis for state estimation using linear programming