Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/50: Рейтинг темы: голосов - 50, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 09.05.2012
Сообщений: 74

Транспортная задача(метод минимального элемента)

01.04.2013, 12:26. Показов 9857. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Нужно написать задачу, которая методом минимального элемента составит опорный план для транспортной задачи.
Не получается чёт, можете посмотреть, помочь?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
void __fastcall TForm1::Button5Click(TObject *Sender)
{double min;
int sb, st, shag,g,sum;
 
for  (i=0;i<m-1;i++)
     StringGrid2->Cells[i][n-1]=IntToStr(b[i]);
    for  (i=0;i<n-1;i++)
     StringGrid2->Cells[m-1][i]=IntToStr(a[i]);
 
 
min=tar[0][0];
shag=(m-2)+(n-2)-1;
for (int g=0;g<=shag;g++)
{
for(int i=0;i<n-1;i++)
  for(int j=0;j<m-1;j++){
  if (min==-1){min=tar[i][j];}
  if (tar[i][j]<=min && tar[i][j]>-1) {
  min=tar[i][j]; sb=j; st=i;
  ShowMessage(min);
  } }
//çàïîëíåíèå òàáëèöû
if (a[sb]<=b[st]){
itog[st][sb]=a[sb];
b[st]-=a[j];
}
else{
itog[sb][st]=b[sb];
a[st]-=b[sb];
}  tar[st][sb]=-1;
min=-1;
for(i=0;i<=n-2;i++)
  for(j=0;j<=m-2;j++)
  StringGrid2->Cells[j][i]=FloatToStr(itog[i][j]);
  Edit4->Text=min;
  Edit5->Text=sb;
  Edit6->Text=st;
}
/*for(int i=1;i<=m-2;i++)
  for(int j=1;j<=n-2;j++)
  if(itog[i][j]!=-1)
sum+=itog[i][j]*mas[i][j]; */
}
//Edit3->Text=FloatToStr(sum);
Ну ваще нужно очень.

Вот прога сама
Вложения
Тип файла: rar ТранспортнаяПутинцев - копия.rar (365.7 Кб, 223 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2013, 12:26
Ответы с готовыми решениями:

Транспортная задача: метод северо-западного угла
Здесь уже была похожая тема, но там так и нет ответа. Программа делает только одну итерацию. //libraries #include &lt;stdafx.h&gt; ...

ТЗЛП: метод минимального элемента
hi all! Мне нужна помощь в решении транспортной задачи линейного программирования методом минимального элемента в строке. Прикладываю...

Метод потенциалов Транспортная задача
Как можно найти цикл в матрице ? нехватает этой чудо функций

3
1 / 1 / 0
Регистрация: 09.05.2012
Сообщений: 74
01.04.2013, 16:38  [ТС]
всё сделал.
0
 Аватар для ЛенКа1505
1 / 1 / 0
Регистрация: 17.01.2014
Сообщений: 7
21.04.2014, 14:35
взяла за основу ваш код и запуталась....если вам не трудно подскажите мне...
0
0 / 0 / 0
Регистрация: 22.05.2017
Сообщений: 1
31.05.2019, 09:26
Вот моя реализация, но она написана на Java в NetBeans.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package javaapplication4;
 
/**
 *
 * @author Lain_Iwakura
 */
public class JavaApplication4 {
 
    public static int[][] x = new int[][] // инициация матрицы тарифов перевозок
    {{0, 30, 80, 65, 35, 40}, // заявки
    {60, 8, 12, 4, 9, 10},
    {40, 7, 5, 15, 3, 6},
    {100, 9, 4, 6, 12, 7},
    {50, 5, 3, 2, 6, 4},};
    //запасы 
 
    public static int[][] x2 = new int[][] // инициация матрицы тарифов перевозок
    {{0, 300, 150, 100, 200,}, // заявки
    {400, 4, 3, 2, 12,},
    {200, 10, 10, 4, 7},
    {100, 12, 10, 11, 5},
    {50, 0, 0, 0, 0}
    };
    //запасы  
 
    public static int[][] x1 = new int[][] // инициация матрицы тарифов перевозок
    {{0, 20, 35, 40, 12, 15}, // заявки
    {25, 4, 8, 5, 6, 7},
    {32, 5, 6, 6, 8, 9},
    {42, 4, 8, 7, 8, 5},
    {23, 7, 4, 5, 7, 9}
 
    };
    //запасы  
 
    public static int[][] c; // дополнительная матрица
    public static int min = 999;
    public static int index_min_i = 0;
    public static int index_min_j = 0;
 
    public static void main(String[] args) {
        printMas(x);// вывод матрицы
        c = new int[x.length-1][x.length];// инициация матрицы результатов
        System.out.println("A: " + summaStocks(x));
        System.out.println("B: " + summaRequest(x));
 
        if (open(x)) {
            System.out.println("Задача была открытая и приведена к закрытой");
        } else {
            System.out.println("Задача закрытая");
        }
 
        while ((summaStocks(x) != 0) && (summaRequest(x) != 0)) { // считаем пока есть запасы и заявки
            findMin(x); // нахождение минимального элемента
            System.out.println("Минимальный равен " + min + " = [" + index_min_i + "]" + "[" + index_min_j + "]");
            if (x[index_min_i][0] < x[0][index_min_j]) { // заявка меньше запаса 
 
                c[index_min_i - 1][index_min_j - 1] = x[index_min_i][0];
                x[index_min_i][index_min_j] = 0;
                x[0][index_min_j] -= x[index_min_i][0];
                x[index_min_i][0] = 0;
 
            } else {
                c[index_min_i - 1][index_min_j - 1] = x[0][index_min_j];
                x[index_min_i][index_min_j] = 0;
                x[index_min_i][0] -= x[0][index_min_j];
                x[0][index_min_j] = 0;
            }
 
            summaStocks(x);  // сумма запасов
            summaRequest(x); // сумма заявок
            // printMas(x);
            //  printMas(c);     
            //  System.out.println("A: " + summaStocks(x));
            //  System.out.println("B: " + summaRequest(x)); 
        }
        printMas(c);
 
        // printMas(x);
    }
 
    // функция для вывода двумерной матрицы
    public static void printMas(int[][] mas) {
        System.out.println("Ваша матрица оценок:");
        System.out.println("══───────────────══ ");
        for (int i = 0; i < mas.length; i++) {
            for (int j = 0; j < mas[i].length; j++) {
                System.out.print(" " + mas[i][j] + "\t");
            }
            System.out.println();
        }
        System.out.println("══───────────────══ ");
    }
 
    // нахождение минимального элемента
    public static int findMin(int[][] mas) {
        min = 999;
        for (int i = mas.length - 1; i > 0; i--) {
            for (int j = mas[0].length - 1; j > 0; j--) {
                if ((mas[i][0] != 0) && (mas[0][j] != 0)) {
                    if ((mas[i][j] < min)) {
                        min = mas[i][j];
                        index_min_i = i;
                        index_min_j = j;
                    }
                }
            }
        }
        return (min);
    }
 
    // сумма запасов
    public static int summaStocks(int[][] mas) {
        int temp = 0;
        for (int j = 0; j < x.length; j++) {
            temp += mas[j][0];
        }
        return (temp);
    }
 
    // сумма заявок
    public static int summaRequest(int[][] mas) {
        int temp = 0;
        for (int j = 0; j < x[0].length; j++) {
            temp += mas[0][j];
        }
        return (temp);
    }
 
    // проверка на открытость    
    public static boolean open(int[][] mas) {
        for (int i = 0; i < mas.length; i++) {
            for (int j = 1; j < mas[i].length; j++) {
                if (mas[i][j] == 0) {
                    return (true);
                }
            }
        }
        return false;
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2019, 09:26
Помогаю со студенческими работами здесь

Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код
Моя задача отсортировать массив методом выбора минимального элемента. Он заключается в следующем. Ищем в массиве минимальный элемент и...

Определить номера минимального элемента массива и элемента, являющегося минимальным без учета этого элемента.
Дан массив. Определить номера минимального элемента массива и элемента, являющегося мини-мальным без учета этого элемента.

Транспортная задача
Всем привет) Пишу решение транспортной задачи по методу минимального элемента. Сейчас нахожусь на стадии заполнения матрицы перевозок....

Транспортная задача
Здравствуйте! Помогите пожалуйста составить задачу методом минимального элемента и методом потенциалов с улучшением плана и правильным...

Транспортная задача
Всем добрый день! Второй месяц не могу справиться, помогите пожалуйста. Очень нужна программа к этой задаче! Заранее спасибо!...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru