Let PCx Solve Your Problem!
PCx is a highly efficient code for solving linear programming optimization problems. In addition to being a useful tool for mathematical computation, the PCx package lends itself readily to a wide array of optimization problems in business and industry, helping decision-makers to find optimal solutions to problems with numerous constraints and variants.
With minimal modification, PCx can be applied to solve such problems as:
- Resource allocation (for example, farm management, investment of funds, allocation of labor and other human resources, utility energy/load management)
- Inventory planning and management
- Transportation planning and scheduling (for example, airline crews, where matching crew members to flights involves constraints such as shift lengths, continuity,and location)
- Minimizing waste when materials must be cut to various sizes from a single source (for example, cutting paper or carpeting from very large rolls)
One example of PCx's use is in diet planning, where the objective is to find the most economical (nutrition and cost) foods that will satisfy an individual's daily nutritional requirements. The user chooses acceptable foods from a list of possible menu items; a number of constraints have already been added to regulate the number of calories consumed, amounts of vitamins, minerals, fats cholesterol and so forth in the diet. When the program is run, PCx solves to provide a menu of foods and their relative contributions in terms of nutrients and cost. Argonne has fully developed this particular application (with a limited food group listing).
PCx uses an interior-point predictor-corrector algorithm to solve linear programming problems. it includes an efficient preprocessor to remove redundance information from the model, and it can be used in conjunction with a variety of sparse matrix solvers.
PCx runs under Windows 95 and on Linux and other Unix operating systems. The Windows 95 version incorporates a user-friendly graphical interface. A Java graphical interface also is available for all environments.
The PCx source code is available for licensing. This easy availability allows users to integrate the code into their applications. The code, written in C, is highly modular and easy to modify. The user manual outlines the algorithm and gives complete information on setting parameters and supplying input.
More About PCx
PCx is an easy-to-use, fast linear programming solver based on the Mehrotra predictor-corrector interior-point algorithm. PCx can be called as a subroutine or used in stand-alone mode with input from MPS files. The code incorporates reusable modules that can be used separately from the linear programming solver, including a presolve routine and data structure definitions. The problem size (number of rows and columns) is limited only by the resources of the host computer.
PCx may be used in any scientific, engineering, or financial application that requires a linear programming solver; examples include spreadsheets, inventory management, and airline crew scheduling, etc. PCx execution time depends on the size of the problem; run times from 0.2 seconds to 12 hours have been observed in tests. The minimum recommended hardware requirements are a 486 PC with 8 Mbytes of RAM. Executables for PCx are available for Windows 95/NT and for a variety of Unix environments including PC Linux, Sun SPARCstations, IBM RS6000, and Silicon Graphics workstations. However, PCx is exportable to any environment with a C compiler.
Improvements are ongoing, and sponsored research funding is solicited for the following areas: quadratic programming extensions, callable subroutine library interface, and access capabilities from spreadsheet utilities and modeling languages such as AMPL.
Consulting arrangements regarding the commercial customization or enhancement of PCx may also be available.
Scientific Use: PCx is the copyrighted material of the University of Chicago. It is not in the public domain; however, it may be used at no cost for education and nonprofit research purposes. The copyright notice must be retained on all copies, and the software, including derivative works, may not be resold or redistributed. Modifications and derivative works must be reported to the technical contact noted below, and must carry a prominent notice stating that you changed specified portions of the software.
Commercial Use: Commercial nonexclusive licenses are available for internal use by commercial entities and distribution or incorporation into a commercial software package. Licensing fees are based on a one-time payment for each "shrink-wrapped" copy or on a per CPU basis, with no right to sublicense.
Each commercial licensee will receive:
- The PCx software, Version 1.0, including:
- PCx source
- Online user's manual and documentation
- Version upgrades, if any
- Standard license agreement (in preparation)
The fee schedule is listed below. Prices are subject to change without notice.
|Number of CPUs
||Annual License Fee
(as of June 1998)
||$700 additional per CPU
||$400 additional per CPU
||$250 additional per CPU
More technical information. . .
To license PCx from Argonne, print a copy of the agreement, arrange for signature by your organization, and send the signed licensing agreement to:
Software Licensing Coordinator
Technology Development and Commercialization
Argonne National Laboratory
9700 S. Cass Ave.
Argonne, IL 60439
Please contact Aaron Sauers by phone at 630-252-7878 or e-mail to alert him that you are sending the agreement, signed by your organization.
Development funded by U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research, Mathematical, Information, and Computational Sciences Division through the Optimization Technology Center.