Транспортная задача и математическая оптимизацияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Транспортная задача и математическая оптимизация

Сообщение Anonymous »

Мне нужно найти решение транспортной задачи с некоторыми ограничениями.
Здесь у нас есть базовая таблица, где A — столбец «Предложение», B — линия спроса, а матрица содержит тарифы на транспортировку. .



< th>A(Sp)\B(Dm)
6
15
7
8
8




17
10
8
5< /td>
9
16


8
4
3
4
11
12


10
5< /td>
10
29
7
6


9
9
2
4
1
3



Я нашел решение и код работает правильно, потому что я решал задачу разными способами и ответы всегда были одинаковыми . В скобках указан объем для перевозки. Например, в элементе (1, 2) нам нужно перевезти 10 тонн по цене 8 долларов США за тонну = всего 80 долларов США. Самая низкая общая стоимость перевозки составляет 210 и не может быть ниже.



A \ B
6
15
7
8
8




17
10
(10)\ 8
(7)\5
9
16

8
(3)\4
( 5)\3
4
11
12


10
(3)\5
1029
7
(7)\6


9
9
2
4
(8)\1
(1)\3



Однако в моей задаче есть ограничение. Для перевозки мне нужен 6-тонный грузовик. Например, в найденном решении в элементе (1, 2) мне нужно доставить 10 тонн по цене 8 долларов за тонну. В общей сложности это означает 80 долларов США, но с учетом моих ограничений это означает, что мне нужно забронировать 2 грузовика и заплатить 120 долларов США.
Благодаря помощи сообщества я получил решение, и оно работает правильно.
Благодаря помощи сообщества я получил решение, и оно работает правильно.
Благодаря помощи сообщества я получил решение, и оно работает правильно.
Благодаря помощи сообщества я получил решение.
p>

Код: Выделить всё

import pandas as pd
import pulp

truck_capacity = 6
suppliers = pd.RangeIndex(name='supplier', stop=4)
consumers = pd.RangeIndex(name='consumer', stop=5)

supply = pd.Series(
name='supply',
index=suppliers,
data=(17, 8, 10, 9),
)
demand = pd.Series(
name='demand',
index=consumers,
data=(6, 15, 7, 8, 8),
)
price_per_tonne = pd.DataFrame(
index=suppliers, columns=consumers,
data=(
(10,  8,  5,  9, 16),
( 4,  3,  4, 11, 12),
( 5, 10, 29,  7,  6),
( 9,  2,  4,  1,  3),
),
).stack()
price_per_tonne.name = 'price'

flow = pd.DataFrame(
index=suppliers, columns=consumers,
data=pulp.LpVariable.matrix(
name='flow_s%d_c%d', cat=pulp.LpContinuous, lowBound=0,
indices=(suppliers, consumers),
),
).stack()
flow.name = 'flow'

trucks = pd.DataFrame(
index=suppliers, columns=consumers,
data=pulp.LpVariable.matrix(
name='trucks_s%d_c%d', cat=pulp.LpInteger, lowBound=0,
indices=(suppliers, consumers),
)
).stack()
trucks.name = 'trucks'

price = truck_capacity * pulp.lpDot(price_per_tonne, trucks)
prob = pulp.LpProblem(name='transportation', sense=pulp.LpMinimize)
prob.setObjective(price)

# The flow must not exceed the supply
for supplier, group in flow.groupby('supplier'):
prob.addConstraint(
name=f'flow_supply_s{supplier}',
constraint=pulp.lpSum(group) 

Подробнее здесь: [url]https://stackoverflow.com/questions/78300511/transportation-problem-mathematical-optimization[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Математическая оптимизация в C#
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Транспортная проблема с транзитными ограничениями
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Транспортная конечная точка не подключена в Colab Pro+
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Математическая специальная функция не найдена, несмотря на то, что она предположительно определена в cmath.
    Anonymous » » в форуме C++
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • FLET: математическая операция над значением в элементах управления «Ползунок».
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»