TK Solver (originalmente TK!Solver ) [1] es un sistema de software de modelado matemático y resolución de problemas basado en un lenguaje declarativo basado en reglas , comercializado por Universal Technical Systems, Inc. [2]
Inventado por Milos Konopasek a finales de los años 1970 y desarrollado inicialmente en 1982 por Software Arts , la compañía detrás de VisiCalc , [1] TK Solver fue adquirido por Universal Technical Systems en 1984 después de que Software Arts cayera en dificultades financieras y fuera vendido a Lotus Software . [3] El objetivo de Konopasek al inventar el concepto de TK Solver era crear un entorno de resolución de problemas en el que un modelo matemático dado construido para resolver un problema específico pudiera usarse para resolver problemas relacionados (con una redistribución de variables de entrada y salida) con una programación adicional mínima o nula requerida: una vez que un usuario ingresa una ecuación, TK Solver puede evaluar esa ecuación tal como está, sin aislar variables desconocidas en un lado del signo igual.
Software Arts también lanzó una serie de " Solverpacks ": "versiones listas para usar de algunas de las fórmulas más comúnmente utilizadas en áreas específicas de aplicación". [4]
El New York Times describió a TK Solver como alguien que "hace por la ciencia y la ingeniería lo que el procesamiento de textos hizo por las comunicaciones corporativas y los paquetes de cálculo por las finanzas". [1]
Lotus, que había adquirido Software Arts, incluido TK Solver, en 1984 [3] vendió su propiedad del software a Universal Technical Systems menos de dos años después. [2] La versión 5 todavía se consideraba "uno de los solucionadores de ecuaciones matemáticas más antiguos del mercado actual" en 2012. [5] [6]
Las tecnologías principales de TK Solver son un lenguaje de programación declarativo , un solucionador de ecuaciones algebraicas, [1] un solucionador de ecuaciones iterativas y una interfaz estructurada basada en objetos que utiliza una estructura de comandos. [1] [7] La interfaz comprende nueve clases de objetos que se pueden compartir y fusionar con otros archivos TK:
Cada clase de objeto se enumera y almacena en su propia hoja de cálculo: la hoja de reglas, la hoja de variables, la hoja de unidades, etc. Dentro de cada hoja de cálculo, cada objeto tiene propiedades resumidas en subhojas o que se visualizan en una ventana de propiedades. La interfaz utiliza barras de herramientas y una barra de navegación jerárquica que se asemeja al árbol de directorios que se ve en el lado izquierdo del Explorador de Windows .
La estructura de programación declarativa está incorporada en las reglas, funciones y variables que forman el núcleo de un modelo matemático. [8]
Todas las reglas se introducen en la hoja de reglas o en funciones definidas por el usuario. A diferencia de una hoja de cálculo o un entorno de programación imperativa , las reglas pueden estar en cualquier orden o secuencia y no se expresan como instrucciones de asignación. "A + B = C / D" es una regla válida en TK Solver y se puede resolver para cualquiera de sus cuatro variables. Se pueden añadir y eliminar reglas según sea necesario en la hoja de reglas sin tener en cuenta su orden e incorporarlas a otros modelos. Un modelo de TK Solver puede incluir hasta 32.000 reglas, y la biblioteca que se incluye con la versión actual incluye utilidades para matemáticas superiores, estadística, ingeniería y ciencia, finanzas y programación.
Las variables de una regla se publican automáticamente en la Hoja de variables cuando se ingresa la regla y esta se muestra en formato matemático en la ventana Vista MathLook en la parte inferior de la pantalla. Cualquier variable puede funcionar como entrada o como salida, y el modelo [8] se resolverá para las variables de salida según la elección de entradas.
TK Solver también incluye una base de datos de factores de conversión de unidades, y los usuarios pueden agregar, eliminar o importar conversiones de unidades de una manera similar a la de las reglas. Cada variable está asociada a una unidad de "cálculo", pero también se pueden asignar a las variables unidades de "visualización" y TK convierte automáticamente los valores. Por ejemplo, las reglas pueden basarse en metros y kilogramos, pero se pueden utilizar unidades de pulgadas y libras para la entrada y la salida.
TK Solver tiene tres formas de resolver sistemas de ecuaciones. El "solucionador directo" resuelve un sistema algebraicamente mediante el principio de sustitución consecutiva. Cuando varias reglas contienen varias incógnitas, el programa puede activar un solucionador iterativo que utiliza el algoritmo de Newton-Raphson para aproximar sucesivamente en función de las suposiciones iniciales para una o más de las variables de salida. Las funciones de procedimiento también se pueden utilizar para resolver sistemas de ecuaciones. Las bibliotecas de dichos procedimientos se incluyen con el programa y se pueden fusionar en archivos según sea necesario. Una función de solucionador de listas permite asociar las variables con rangos de datos o distribuciones de probabilidad, resolviendo para múltiples valores, lo que es útil para generar tablas y gráficos y para ejecutar simulaciones de Monte Carlo . La versión premium ahora también incluye un "Optimizador de soluciones" para la configuración directa de límites y restricciones en la resolución de modelos [8] para condiciones mínimas, máximas o específicas.
TK Solver incluye aproximadamente 150 funciones integradas : matemáticas, trigonométricas , booleanas , cálculo numérico , operaciones matriciales, acceso a bases de datos y funciones de programación, incluyendo manejo de cadenas y llamadas a rutinas compiladas externamente. Los usuarios también pueden definir tres tipos de funciones: funciones de reglas declarativas; funciones de lista, para búsquedas en tablas y otras operaciones que involucran pares de listas; y funciones de procedimiento, para bucles y otras operaciones de procedimiento que también pueden procesar o dar como resultado matrices (listas de listas). Se incluye la base de datos NIST completa de propiedades termodinámicas y de transporte, con funciones integradas para acceder a ella. TK Solver también es la plataforma para aplicaciones de ingeniería comercializadas por UTS, [9] incluyendo Advanced Spring Design, Integrated Gear Software, Interactive Roark's Formulas, Heat Transfer on TK, y Dynamics and Vibration Analysis.
Se pueden utilizar tablas, gráficos, comentarios y la herramienta de visualización de notación MathLook para enriquecer los modelos de TK Solver. Los modelos se pueden vincular a otros componentes con herramientas Microsoft Visual Basic y .NET , o se pueden habilitar para la web mediante el producto RuleMaster o vincularse con hojas de cálculo de Excel mediante el producto Excel Toolkit. También existe una opción DesignLink que vincula los modelos de TK Solver con dibujos CAD y modelos sólidos. En la versión premium, los modelos independientes se pueden compartir con otras personas que no tengan una licencia de TK, abriéndolos en Excel o en el reproductor gratuito TK Player.
En 1984, BYTE afirmó que "TK!Solver es excelente para resolver casi cualquier tipo de ecuación", pero que no manejaba matrices y que un lenguaje de programación como Fortran o APL era superior para la solución simultánea de ecuaciones lineales . La revista concluyó que, a pesar de las limitaciones, era una "herramienta poderosa, útil para científicos e ingenieros. No existe ningún producto similar". [10] En la versión 5.0, TK Solver agregó la funcionalidad de manejo de matrices. [6]
A mediados de 1988 aparecieron productos competitivos: Mathcad de Mathsoft y Eureka: The Solver de Borland . [11] [12] [13]
Dan Bricklin , conocido por VisiCalc y el desarrollo inicial de TK Solver en Software Arts , dijo que el mercado "no era tan grande como pensábamos que sería porque no mucha gente piensa en ecuaciones". [13]
Hay mucho que admirar en el TK! Solver Plus de Universal Technical Systems, que cuesta 395 dólares...