diff --git a/resources/simplex/simplex.py b/resources/simplex/simplex.py index 24e282c6ab410e0a32f703801047cb1a03faca62..1de39781bbce914aa1124a321367d009b683e52e 100644 --- a/resources/simplex/simplex.py +++ b/resources/simplex/simplex.py @@ -344,22 +344,54 @@ class Simplex(): logger.info('Printing Simplex Tableau.') logger.info('') + # Calculate overall table width. tableau_length = (len(self._obj_func) * 5) + 4 + # Optionally print description. if self._description is not None: - logger.info('{0}'.format(self._description)) - logger.info('-' * tableau_length) + logger.info('') + logger.info('Description: {0}'.format(self._description)) + logger.info('') + + # Print variables for reference. + print_string = ' ' + for index in range(len(self._obj_func)): + # Check if last index. + if index == (len(self._obj_func) - 1): + print_string += ' C ' + else: + print_string += ' {0:>3} '.format('x{0}'.format(index + 1)) + + print_string += ' B' + logger.info(print_string) + + # Print objective function. + logger.info(' ' + '-' * tableau_length) + print_string = ' Max: |' + for index in range(len(self._obj_func)): + # Check if last index. + if index == (len(self._obj_func) - 1): + print_string += ' | {0:>3} |'.format(self._obj_func[index]) + else: + print_string += ' {0:>3} '.format(self._obj_func[index]) + logger.info(print_string) + + # Print constraints. + logger.info(' ' + '-' * tableau_length) for row_index in range(len(self._matrix_a)): - print_string = '|' + if row_index == 0: + print_string = ' S.T. |' + else: + print_string = ' |' + # Loop through all items in row. for item in self._matrix_a[row_index]: print_string += ' {0:>3} '.format(item) - print_string += ' | {0:>3} |'.format(self._constants[row_index]) + print_string += ' {0:>3}'.format('x{0}'.format(self._basic_var_indexes[row_index] + 1)) logger.info(print_string) - logger.info('-' * tableau_length) - + logger.info(' ' + '-' * tableau_length) logger.info('') def pivot(self, old_basic_index, new_basic_index):