Application of Uncertain Programming in Hardware/Software Partitioning: Model and Algorithm