Linear Programming: An Introduction with Applications