Ищу исходник - "Искусственного базиса" на VB
От: BlackRaiDe  
Дата: 07.03.09 12:05
Оценка:
Помогите найти исходник.
Кучу сайтов перерыл, и нашел одни туториалы и рефераты.
по исходник базис visual basic source
Re: Ищу исходник - "Искусственного базиса" на VB
От: ZAMUNDA Земля для жалоб и предложений
Дата: 07.03.09 23:33
Оценка:
Здравствуйте, BlackRaiDe, Вы писали:

BRD>Помогите найти исходник.

BRD>Кучу сайтов перерыл, и нашел одни туториалы и рефераты.
Хех, такие вещи видимо никто на VB не реализовывал просто. Тем каму надо, будут делать в C++ (кстати dll-ки с stdcall экспортами, можно подключать к VB), а каму хочется язык попроще, в MatLab будут делать IMHO.
Реализуй сам, я мельком на описание взглянул — день работы.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
й
Re[2]: Ищу исходник - "Искусственного базиса" на VB
От: BlackRaiDe  
Дата: 08.03.09 08:25
Оценка:
BRD>>Помогите найти исходник.
BRD>>Кучу сайтов перерыл, и нашел одни туториалы и рефераты.
ZAM>Хех, такие вещи видимо никто на VB не реализовывал просто. Тем каму надо, будут делать в C++ (кстати dll-ки с stdcall экспортами, можно подключать к VB), а каму хочется язык попроще, в MatLab будут делать IMHO.
ZAM>Реализуй сам, я мельком на описание взглянул — день работы.
В том то и дело. Что я пока молод, и на Си пока что, ничего стоящего написать не смогу. Посему, не могу использовать этот язык для реализации.
На счет dll спасибо, подумаю над этим

Может еще здесь найдется кто видел исходники или нечто подобное?
visual basic source code исходник
Re: Ищу исходник - "Искусственного базиса" на VB
От: BlackRaiDe  
Дата: 08.03.09 08:33
Оценка:
У меня есть исходный код на Delphi. В точности моя задача

program simple_sim;

{$APPTYPE CONSOLE}

uses SysUtils;
const mm = 100; nn = 100;

var A : array[1..mm, 1..nn] of double;
fun : array[1..nn] of integer; // Коэффициенты целевой функции
m, n : integer; // m ограничений, n переменных.

basis : array[1..nn] of integer; // Здесь храним номера базисных переменных
i, j : integer;
x : array[1..nn] of double; // Здесь будут значения переменных при расшифровке плана


procedure solve;
var i, j, i0, j0 : integer;
    tmp : double;
    opt : boolean;
begin
    opt := false;
    repeat
        j0 := 1; i0 := 0;
        while (j0 < m+n+1) and (A[m+1, j0] >= 0) do inc(j0);
        if A[m+1, j0] >= 0 then opt := true;

        if not opt then begin
            tmp := 10000;
            for i := 1 to m do
                if (A[i, j0] > 0) and (A[i, m+n+1] / A[i, j0] < tmp) then
                begin
                    tmp := A[i, m+n+1] / A[i, j0]; i0 := i
                end;
            // i0 - выводим, j0 - добавляем
            basis[i0] := j0;                        // Ввод нового элемента в базис
            // [i0, j0] - ведущий эл-т в Гауссе:
            for i := 1 to m + 1 do
                    if i <> i0 then
                    begin
                            tmp := A[i, j0];
                            for j := 1 to m + n + 1 do
                                   A[i,j] := A[i,j] - A[i0,j]*tmp/A[i0,j0];
                    end;
            tmp := A[i0, j0];
            for j := 1 to m + n + 1 do
                    A[i0, j] := A[i0, j] / tmp;
        end;
    until opt;
end;

begin
    assign(input, 'input.txt'); reset(input);
// -------Ввод данных---------------------------
    read(n); read(m);

    for i := 1 to n do read(fun[i]);     //Читаем коэффициенты целевой функции

    for i := 1 to m do
        for j := 1 to n do
            read(A[i, j]);

    for i := 1 to m do
        read(A[i, n+m+1]);               // Читаем правые части ограничений

    for i := 1 to m do                   // Вводим дополнительные переменные
        A[i, n+i] := 1;
    fillchar(A[m+1], sizeof(A[m+1]), 0);

// базис из доп. переменных
    for i := 1 to m do
        basis[i] := n + i;
    for j := 1 to n do
        A[m+1,j] := -fun[j];             // Оценки для небазисных переменных = -fun[j], для базисных - 0


    solve;                               // DO IT! +)

// -- вывод базиса --
    for i := 1 to m do
        if basis[i] <= n then
             x[basis[i]] := A[i, m+n+1];

    for i := 1 to n do writeLn('x[', i, '] = ', x[i]:0:3);
    writeLn('min f(x) = ', A[m+1, m+n+1]:0:3); 
end.


Люди добрые, помогите перекодировать в VB.
Чует моё сердце что в интернете действительно нет этой реализации на VB.
Re: Ищу исходник - "Искусственного базиса" на VB
От: BlackRaiDe  
Дата: 08.03.09 22:16
Оценка:
Разобрался сам.
ТЕму можете закрыть =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.