Hi,
in order to help with the initial positions you could use warm start :
About your switches, why not using logical constraints ?
You are allowed to write
constraint_1 :(P+N >= 0) => (Switch == 0);
constraint_2 :!(P+N >= 0) => (Switch == -N); //(negation constraint)
regards