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

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Нужно написать задачу, которая методом минимального элемента составит опорный план для транспортной задачи.
Не получается чёт, можете посмотреть, помочь?
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
Ответы с готовыми решениями:

Транспортная задача: метод северо-западного угла
Здесь уже была похожая тема, но там так и нет ответа. Программа делает только одну итерацию. ...

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

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

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

3
1 / 1 / 0
Регистрация: 09.05.2012
Сообщений: 74
01.04.2013, 16:38  [ТС] 2
всё сделал.
0
 Аватар для ЛенКа1505
1 / 1 / 0
Регистрация: 17.01.2014
Сообщений: 7
21.04.2014, 14:35 3
взяла за основу ваш код и запуталась....если вам не трудно подскажите мне...
0
0 / 0 / 0
Регистрация: 22.05.2017
Сообщений: 1
31.05.2019, 09:26 4
Вот моя реализация, но она написана на 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
31.05.2019, 09:26
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2019, 09:26
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru