Главная страница
Навигация по странице:

  • Кафедра «Системотехника и управление в технических системах» Лабораторная работа №2 по дисциплине «Системный анализ и исследование операций»

  • Работу выполнил студент

  • ИнЭТМ, б - УПРК 3 1 , очная форма обучения Номер зачетной книжки 171429 Руководитель работы

  • Постановка задачи

  • Текст программы

  • Контрольные примеры Вывод

  • Лабораторная №2. Базисные решения транспортной задачи


    Скачать 121 Kb.
    НазваниеБазисные решения транспортной задачи
    Дата29.05.2020
    Размер121 Kb.
    Формат файлаdoc
    Имя файлаЛабораторная №2.doc
    ТипИсследование
    #126561





    Федеральное государственное бюджетное образовательное учреждение
    высшего образования

    «Саратовский государственный технический университет имени Гагарина Ю.А.»
    Кафедра «Системотехника и управление в технических системах»

    Лабораторная работа №2

    по дисциплине «Системный анализ и исследование операций»
    на тему «Базисные решения транспортной задачи»
    для направления подготовки

    (27.03.02) 221400.62 – Управление качеством

    Профиль «Управление качеством в производственно-технологических системах»

    Работу выполнил студент

    Тришкова Анастасия Владимировна

    ИнЭТМ, б-УПРК31, очная форма обучения

    Номер зачетной книжки 171429 Руководитель работы

    Преподаватель кафедры Миргородская Е.Е.

    Саратов – 2020

    Цель работы: ознакомиться с методами базисного решения транспортных задач линейного программирования, а именно, с методом северо-западного угла.

    Постановка задачи

    Имеются 5 пунктов отправления однородного груза и 4 пункта его

    назначения. Груз находится в 5 пунктах отправления в количестве a1, a2, a3, a4, a5 тонн соответственно, и его требуется доставить в 3 пункта назначения соответственно b1, b2, b3, b4.

    Расстояния в сотнях километров между пунктами отправления и назначения приведены в матрице D:



    Найти такой план перевозок, при котором общие затраты на перевозку грузов будут минимальными.

    Указания:

    1) считать стоимость перевозок пропорциональной количеству груза и

    расстоянию, на которое груз перевозится, т.е. для решения задачи достаточно

    минимизировать общий объем плана, выраженный в тонно-километрах;

    2) для решения задачи использовать методы северо-западного угла,

    наименьшей стоимости и потенциалов.

    Стоимость доставки единицы груза из каждого пункта отправления в

    соответствующие пункты назначения задана матрицей тарифов

    Вариант 8.


    Текст программы

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;
    namespace ConsoleApplication11

    {

    class Program

    {

    struct Element

    {
    public int Delivery { get; set; }

    public int Value { get; set; }

    public static int FindMinElement(int a, int b)

    {

    if (a > b) return b;

    if (a == b) { return a; }

    else return a;

    }
    }
    static void Main(string[] args)

    {

    int i = 0;

    int j = 0;

    int n;

    Console.ForegroundColor = ConsoleColor.Blue;

    Console.WriteLine("Введите количество A");

    n = Convert.ToInt32(Console.ReadLine());

    int[] a = new int[n];

    Console.ForegroundColor = ConsoleColor.Red;

    Console.WriteLine("Введите количество B");

    int m = Convert.ToInt32(Console.ReadLine());

    int[] b = new int[m];

    Element[,] C = new Element[n, m];

    Console.ForegroundColor = ConsoleColor.DarkBlue;

    Console.WriteLine("Введите a[i]");

    for (i = 0; i < a.Length; i++)

    {

    a[i] = Convert.ToInt32(Console.ReadLine());

    }

    Console.WriteLine("Введите b[i]");

    for (j = 0; j < b.Length; j++)

    {

    b[j] = Convert.ToInt32(Console.ReadLine());

    }

    Console.ForegroundColor = ConsoleColor.White;

    Console.WriteLine("Введите C[i][j]");

    for (i = 0; i < n; i++)

    {

    for (j = 0; j < m; j++)

    {

    Console.Write("a[{0},{1}] = ", i, j);

    Console.ForegroundColor = ConsoleColor.Red;

    C[i, j].Value = Convert.ToInt32(Console.ReadLine());

    Console.ResetColor();
    }

    }

    i = j = 0;

    // идём с северо-западного элемента

    while (i < n && j < m)

    {
    try

    {

    if (a[i] == 0) { i++; }

    if (b[j] == 0) { j++; }

    if (a[i] == 0 && b[j] == 0) { i++; j++; }

    C[i, j].Delivery = Element.FindMinElement(a[i], b[j]);

    a[i] -= C[i, j].Delivery;

    b[j] -= C[i, j].Delivery;

    }

    catch { }

    }

    //выводим массив на экран

    for (i = 0; i < n; i++)

    {

    for (j = 0; j < m; j++)

    {

    if (C[i, j].Delivery != 0)

    {

    Console.ForegroundColor = ConsoleColor.Blue;

    Console.Write("{0}", C[i, j].Value);

    Console.ForegroundColor = ConsoleColor.Red;

    Console.Write("({0})", C[i, j].Delivery); Console.ResetColor();

    }

    else

    Console.Write("{0}({1})", C[i, j].Value, C[i, j].Delivery);

    } Console.WriteLine();

    }

    int ResultFunction = 0;

    //считаем целевую функцию

    for (i = 0; i < n; i++)

    {

    for (j = 0; j < m; j++) { ResultFunction += (C[i, j].Value * C[i, j].Delivery); }

    }
    Console.WriteLine(" Result = {0}", ResultFunction);

    i = 0;

    j = 0;

    int[] u = new int[n];

    int[] v = new int[m];

    Console.ReadLine();
    }

    }

    }


    Контрольные примеры

    Вывод

    В данной работе ознакомились с методами базисного решения транспортных задач линейного программирования, а именно, с методом северо-западного угла.


    Копировал Формат А4



    написать администратору сайта