| Procedure ( is the cardinality of facility set F, cso is position set that have been split) | | () (“splitting position”, 0, “left set”, ); % Initialize the first left set with empty set | | () (“splitting position”, 0, “right set”, ); % Initialize the first right set with set | | () for To | | () ; | | () ; | | () ; | | () ; | | () if | | () (“splitting position”, , “left set”, setR(_max).right set(1: -)); | | () (“splitting position”, , “right set”, setR(_max).right set((-): end)); | | () elseif | | () (“splitting position”, , “left set”, setL(_min).left set(1: )); | | () (“splitting position”, , “right set”, setL(_min).left set(( + 1): end)); | | () elseif | | () if | | () (“splitting position”, , “left set”, setR(temp1).right set(1: ()-cso(temp1))); | | () (“splitting position”, , “left set”, setR(temp1).right set((-cso(temp1) + 1): end)); | | () elseif | | () ((temp2).left set); | | () (“splitting position”, , “left set”, setL(temp2).left set(1: -cso(temp2) + )); | | () (“splitting position”, , “right set”, setL(temp2).left set((-cso(temp2) + + 1): end)); | | () end if | | () end if | | () end for |
|