NP=P? Алгоритмы решения NP-задач матричным методом в программе Scilab. Математическое эссе. Людмила Наумова

Читать онлайн.



Скачать книгу

P=perms (n)

      Перестановки с последующей заменой матрицы и нахождения решений

      Как пример со сложной перестановкой (замена матрицы, полученной как перестановки на другую матрицу), задача-модель №3:

      Требуется найти кратчайший путь, проходящий точно по одному разу через каждый из четырех городов А, B. C. D.6. Задана матрица расстояний между любыми парами городов,

      Решение.

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

      Зададим начальные условия: города A, B, C,D пронумеруем по порядку и присвоим каждому городу номер 1,2,3,4 соответственно. Зададим расстояние между городами матрицами, например. расстояние между городом А и В как матрицу ab, элементами которой является пара 1 и 2 (это номера городов А и В):

      – > ab= [1 2];

      – > ac= [1 3];

      – > ad= [1 4];

      – > ba= [2 1];

      – > bc= [2 3];

      – > bd= [2 4];

      – > ca= [3 1];

      – > cb= [3 2];

      – > cd= [3 4];

      – > da= [4 1];

      – > db= [4 2];

      – > dc= [4 3];

      – > M= [1 2 3 4]

      M =

      – 2. 3. 4.

      Найдем все возможные варианты перестановок и получим матрицу Р.

      – -> P=perms (M);

      Получилась матрица из 4-х столбцов (городов) и строк – вариантов перестановок.

      Если бы в условии задачи надо было вернуться обратно в исходный пункт, то к полученной в результате перестановок матрице надо было бы добавить еще 5-йстолбец, где элементом в каждой строке которого, стоял бы первый элемент строки матрицы Р.

      В программе не предусмотрена команда замены исходной матрицы, строки которой —это пути, обозначенные последовательным перечислением городов, на матрицу расстояний между этими городами (К примеру, такую бы команду можно было бы назвать between. Значение между элементами со значениями 1 и 2 равно 10, к примеру, как исходные данные between ([1 2]) =10; вставка значений между элементами строк матрицы Р как between (Р:,1)). Поэтому придется пойти обходным путем. Разделим полученную матрицу Р на 3 части, а затем снова соединим, так как между 4-мя городами можно построить путь из трех расстояний между городами. Эти матрицы будут состоять:1-я из первых двух столбцов, 2- я из второго и третьего столбца, 3-я – из третьего и четвертого столбца.

      – > N=P;

      – > N (:,4) = [];

      – > N (:,3) = [];

      – > A=N;

      Конец ознакомительного фрагмента.

      Текст предоставлен ООО «ЛитРес».

      Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

      Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

/9j/4AAQSkZJRgABAQAAAQABAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBA