% % Written by: % -- % John L. Weatherwax 2007-07-01 % % email: wax@alum.mit.edu % % Please send comments and especially bug reports to the % above email address. % %----- clc; A = [ 2, 3, 1, 1, 0; 1, 2, 3, 0, 1 ]; [m,n] = size(A); % Solve each system one at a time: % all_perms = perms(1:n); nonzero_variables = unique( sort( all_perms(:,[1,2]), 2 ), 'rows' ); basic_feasable_solutions = []; for ii=1:size( nonzero_variables, 1 ) var1 = nonzero_variables(ii,1); var2 = nonzero_variables(ii,2); sprintf('var1= %5d; var2= %5d\n',var1,var2); % print the nonzero variables sol = ( A(:,[var1,var2]) \ [ 4; 5 ] ).' % print the solution full_sol = zeros( n, 1 ); full_sol(var1) = sol(1); full_sol(var2) = sol(2); if( sum(sol>0)==m ) % this is a feasable solution basic_feasable_solutions = [ basic_feasable_solutions, full_sol ] ; end end % Print all feasable solutions: basic_feasable_solutions % Evaluate the objective function at these basic feasable solutions: basic_feasable_solutions.' * [ 3; 2; -1; 0; 0 ]