Jim Hauser
Electrical and Computer Engineering and Computer Science, University of Cincinnati
This code will find a set of cubic polynomials which approximate a function on a given interval. Input is given as a table of function samples or measured data. Output is a set of third degree polynomials used to approximate the previous inputs.
This research addresses the problem of efficient function approximation for systems-on-a-chip. In these systems high speed, minimum chip size, and efficient computation are necessary. Examples include computing temperature using a thermistor and evaluating trigonometric functions. For function approximation, system engineers commonly use an off-the-shelf package to generate an approximating polynomial from a set of sampled data. The floating-point coefficients are rounded to integer values that match the target architecture’s size. The induced rounding errors can actually be due to this solution space translation. To minimize or eliminate the rounding affect, the optimal coefficient set should be found using the restricted target’s integer space. This is an integer programming problem which is NP-hard. To find the optimal coefficients, the restricted target space can be enumerated, but this takes an excessive amount of processing time. Alternatively, a heuristic such as a genetic algorithm can be used to find an arguably feasible solution. In this research a genetic algorithm is devised to find the set of integer coefficient valued polynomials in a piecewise fashion that minimizes the error over a set of experimentally gathered or function sampled data.
This code was developed as part of the Ph.D. of Jim Hauser. It was developed with the support of the State of Ohio and Dayton Area Graduate Studies Institute (DAGSI) in cooperation with the Air Force Institute of Technology (AFIT), Wright-Patterson Air Force Base.
Contact information:
Jim Hauser: hauserjw@email.uc.edu or hauserj@nku.edu
Carla Purdy: carla.purdy@uc.edu
Software: Copyright (C) 2001 Jim Hauser.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
|
|
||
|
|
![]()