устройство для решения задач целочисленного линейного программирования
Классы МПК: | G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций |
Автор(ы): | Титов Виктор Алексеевич (RU), Сафиуллин Руслан Ринатович (RU) |
Патентообладатель(и): | Негосударственное образовательное учреждение высшего профессионального образования Московский институт предпринимательства и права (RU) |
Приоритеты: |
подача заявки:
2010-12-08 публикация патента:
27.03.2012 |
Изобретение относится к вычислительной технике. Технический результат заключается в повышении быстродействия работы устройства. Устройство для решения задач целочисленного линейного программирования содержит вход 1, элемент И 2, счетчики 31, 32 , , 3n (n - число возможных вариантов разрезания заготовки длиной L), регистры 41, 42, , 4n, регистры 511, 522 , , 5mn, блоки умножения 611, 6 22, , 6mn (m - общее число типов различных заготовок), сумматоры 71, 72, , 7m, регистры 81, 82, , 8m для хранения требуемых чисел различных заготовок, схемы сравнения 91, 92, , 9m, элемент И 10, элемент И 11, элемент И 12, регистры 131, 132, , 13n, блоки умножения 141, 14 2, , 14n, сумматор 15, схему сравнения 16, регистр 17, элемент задержки 18, выход устройства 19, выходы устройства 201, 202, , 20n. 1 ил.
Формула изобретения
Устройство для решения задач целочисленного линейного программирования, содержащее группу из n счетчиков 31 3n, первый элемент И 2, первый вход которого соединен с пусковым входом устройства 1, а выход подсоединен к входу счетчика 31, группу из m первых сумматоров 71 7m, группу из m первых схем сравнения 9 1 9m, второй элемент И 10, вторую схему сравнения 16, выход каждого сумматора 7i (i=1 m) подсоединен к первому входу одноименной схемы сравнения 9i, выход которой подсоединен к одноименному входу второго элемента И 10, отличающееся тем, что в него дополнительно включены группы из m*n первых регистров 511 5mn, первых блоков умножения 611 6mn, m вторых регистров 81 8m, n третьих 41 4n регистров, n четвертых 131 13n регистров, n вторых блоков умножения 14 1 14n, второй сумматор 15, пятый регистр 17, элемент задержки 18, третий элемент И 11, четвертый элемент И 12, выход каждого счетчика 3j (j=1, 2, n) подсоединен к первым входам первых блоков умножения 6ij, к первому входу регистра 4 и к первому входу второго блока умножения 14j, второй вход которого подсоединен к выходу четвертого регистра 13j, a выход - к одноименному входу второго сумматора 15, выход которого подсоединен к первым входам третьего элемента И 11 и второй схемы сравнения 16, второй вход которой подсоединен к выходу пятого регистра 17, а выход - к первому входу элемента И 12 и через элемент задержки 18 ко второму входу третьего элемента И 11, выход которого подсоединен к входу пятого регистра 17, выход каждого второго регистра 8 i (i=1 m) подсоединен ко второму входу схемы сравнения 9i , второй вход каждого первого блока умножения 6ij подсоединен к выходу одноименного первого регистра 5ij , а выход - к одноименному входу сумматора 7i, выход второго элемента И 10 подсоединен к третьему входу элемента И 11 и ко второму входу четвертого элемента И 12, выход которого подсоединен ко вторым входам третьих регистров 4j, выход переполнения счетчика 3i (i=1, 2, n-1) подсоединен к счетному входу счетчика 3i+1 , выход переполнения счетчика 3n подсоединен ко второму входу элемента И 2 и является первым выходом устройства 19, выходы третьих регистров 41 4n являются вторыми выходами третьих 20 1 20n устройства.
Описание изобретения к патенту
Изобретение относится к автоматике и вычислительной технике. Целью изобретения является разработка устройства, обеспечивающего более высокое быстродействие.
Наиболее близким по технической сущности является устройство [1], содержащее группу из n счетчиков 31 3n, первый элемент И 2, первый вход которого соединен с пусковым входом устройства 1, а выход подсоединен к входу счетчика 31, группу из m первых сумматоров 71 7m, группу из m первых схем сравнения 9 1 9m, второй элемент И 10, вторую схему сравнения 16, выход каждого сумматора 7i (i=1 m) подсоединен к первому входу одноименной схемы сравнения 9i, выход которой подсоединен к одноименному входу второго элемента И 10.
Недостатками данного устройства являются низкое быстродействие из-за применения аналого-цифровых преобразователей и многочисленных блоков памяти, а так же решение только узкой задачи раскроя с минимальными остатками цельного единого материала длиной L на заготовки длиной Ii с потребным количеством каждого типа Ni: найти min L, , при L=L-(n1I1+n2I 2+ +nkIn) 0, где ni - целое, 0 ni, Ni; L Lmax; L, Ii, Ni>0 - заданные величины [1].
Задача изобретения - создать устройство, обеспечивающее задачи разрезания набора заготовок длиной L с минимальными остатками на заготовки с длинами L 1, L2, Ln, где n - количество различных заготовок, то есть найти:
min dL=mL-(k1L1 +k2L2+ +knLn),
где ki - искомое целое число требуемых заготовок;
m - потребное число исходных заготовок длиной L.
Сущность изобретения состоит в том, что в устройство для решения задач целочисленного линейного программирования, содержащее группу из n счетчиков 31 3n, первый элемент И 2, первый вход которого соединен с пусковым входом устройства 1, а выход подсоединен к входу счетчика 31, группу из m первых сумматоров 71 7m, группу из m первых схем сравнения 9 1 9m, второй элемент И 10, вторую схему сравнения 16, выход каждого сумматора 7i (i=1 m) подсоединен к первому входу одноименной схемы сравнения 9i, выход которой подсоединен к одноименному входу второго элемента И 10, дополнительно включены группы из m*n первых регистров 511 5mn, первых блоков умножения 611 6mn, m вторых регистров 81 8m, n третьих 41 4n регистров, n четвертых 131 13n регистров, n вторых блоков умножения 14 1 14n, второй сумматор 15, пятый регистр 17, элемент задержки 18, третий элемент И 11, четвертый элемент И 12, выход каждого счетчика 3j (j=1, 2, n) подсоединен к первым входам первых блоков умножения 6ij, к первому входу регистра 4j и к первому входу второго блока умножения 14j, второй вход которого подсоединен к выходу четвертого регистра 13j, а выход - к одноименному входу второго сумматора 15, выход которого подсоединен к первым входам третьего элемента И 11 и второй схемы сравнения 16, второй вход которой подсоединен к выходу пятого регистра 17, а выход - к первому входу элемента И 12 и через элемент задержки 18 ко второму входу третьего элемента И 11, выход которого подсоединен к входу пятого регистра 17, выход каждого второго регистра 8 i (i=1 m) подсоединен ко второму входу схемы сравнения 9i , второй вход каждого первого блока умножения 6ij подсоединен к выходу одноименного первого регистра 5ij , а выход - к одноименному входу сумматора 7i, выход второго элемента И 10 подсоединен к третьему входу элемента И 11 и ко второму входу четвертого элемента И 12, выход которого подсоединен ко вторым входам третьих регистров 4j, выход переполнения счетчика 3n подсоединен ко второму входу элемента И 2 и является первым выходом устройства 19, выходы третьих регистров 41 4n являются вторыми выходами третьих 20 1 20n устройства.
Проведенный поиск в известной научно-технической литературе не выявил наличие подобных технических решений.
Новизна предлагаемого устройства заключается в том, что новое техническое устройство отличается от прототипа тем, что дополнительно в него введены группы из m*n первых регистров 511 5mn, первых блоков умножения 611 6mn, m вторых регистров 81 8m, n третьих 41 4n регистров, n четвертых 131 13n регистров, n вторых блоков умножения 14 1 14n, второй сумматор 15, пятый регистр 17, элемент задержки 18, третий элемент И 11, четвертый элемент И 12, выход каждого счетчика 3j (j=1, 2, n) подсоединен к первым входам первых блоков умножения 6ij, к первому входу регистра 4j и к первому входу второго блока умножения 14j, второй вход которого подсоединен к выходу четвертого регистра 13j, а выход - к одноименному входу второго сумматора 15, выход которого подсоединен к первым входам третьего элемента И 11 и второй схемы сравнения 16, второй вход которой подсоединен к выходу пятого регистра 17, а выход - к первому входу элемента И 12 и через элемент задержки 18 ко второму входу третьего элемента И 11, выход которого подсоединен к входу пятого регистра 17, выход каждого второго регистра 8 i (i=1 m) подсоединен ко второму входу схемы сравнения 9i , второй вход каждого первого блока умножения 6ij подсоединен к выходу одноименного первого регистра 5ij , а выход - к одноименному входу сумматора 7i, выход второго элемента И 10 подсоединен к третьему входу элемента И 11 и ко второму входу четвертого элемента И 12, выход которого подсоединен ко вторым входам третьих регистров 4j, выход переполнения счетчика 3i (i=1, 2, n-1) подсоединен к счетному входу счетчика 3i+1 , выход переполнения счетчика 3n подсоединен ко второму входу элемента И 2 и является первым выходом устройства 19, выходы третьих регистров 41 4n являются вторыми выходами 201 20n устройства.
Изобретательский уровень достигается тем, что ввод соответствующих элементов в известный прототип вместе со связями позволяет решить новую техническую задачу, решение которой в известных технических решениях и в литературе в настоящее время не отражено.
Предлагаемое устройство позволяет быстро решить задачу разрезания набора заготовок длиной L с минимальными остатками на заготовки с длинами L 1, L2, Ln, где n - количество различных заготовок.
Сущность изобретения поясняется чертежом (фиг.1), на котором приведена структурная схема заявленного устройства.
Устройство для решения задач целочисленного линейного программирования, показанное на фиг.1, содержит: вход 1, элемент И 2, счетчики 31, 32, , 3n (n - число возможных вариантов разрезания заготовки длиной L), регистры 41, 42, , 4n, регистры 511, 522 , , 5mn, блоки умножения 611, 6 22, , 6mn (m - общее число типов различных заготовок), сумматоры 71, 72, , 7m, регистры 81, 82, , 8m для хранения требуемых чисел различных заготовок, схемы сравнения 91, 92, , 9m, элемент И 10, элемент И 11, элемент И 12, регистры 131, 132, , 13n, блоки умножения 141, 14 2, , 14n, сумматор 15, схему сравнения 16, регистр 17, элемент задержки 18, выход устройства 19, выходы устройства 201, 202, , 20n.
Разрядность регистров 4j и счетчиков 3j (j=1 n) выбирается из условия потребности максимального требуемого числа j-х заготовок.
Разрядность регистров 5 ij (i=1 m, j=1 n) выбирается из условия хранения на них числа заготовок при разбиении исходной i-й заготовки по j-му варианту. Разрядность регистров 8i (i=1 m) выбирается из условия максимума требуемых чисел i-х заготовок, регистров 13j (j=1 m) из условия возможности хранения максимального числа остатка исходной заготовки при применении j-го варианта разбиения.
Разрядность сумматора 15 и регистра 17 выбирается из условия достаточности для размещения кода оптимизируемой функции.
Частота поступающих входных тактовых сигналов на входе 1 выбирается из условия суммарных задержек сигнала элементом И 2, счетчиками 3, блока умножения 6ij, сумматора 7i, схемы сравнения 9i, элементов И 10, И 11, И 12.
Устройство работает следующим образом.
Заявленное устройство работает следующим образом.
В исходном состоянии счетчики 31 3 2, , 3n, регистры 41, 42, , 4n (n - число возможных вариантов разрезания заготовки длиной L) находятся в нулевом состоянии. На регистре 17 хранится код максимального числа (все разряды регистра находятся в единичном состоянии). На выходе переполнения счетчика 3 n находится логический ноль, который поступает на выход 19 устройства и на инверсный вход элемента И 2, тем самым элемент И 2 открыт для последующего прохождения тактовых импульсов по входу.
На регистрах 511, 522 , , 5mn хранятся числа изделий (заготовок) i-го типа по j-му варианту (i=1, 2, m, j=1, 2, n). На регистрах 81, 82, , 8m хранятся коды требуемых чисел различных заготовок. На регистрах 131, 132, , 13n хранятся коды длин остатков от разрезания заготовки по j-му варианту.
Работа устройства начинается после подачи на вход 1 тактовых импульсов с выхода генератора тактовых импульсов (на чертеже из-за громоздкости он не показан), которые через открытый элемент И 2 поступают на вход счетчика 31. Код с выхода переполнения счетчика 3j (j=1, 2, n-1) поступает на счетный вход очередного счетчика 3 j+1. С выхода счетчика 3j (j=1, 2, 3, n) код поступает на первые входы блока умножения 14 j, регистр 4j и блоков умножения 6ij (1=1, 2, m, j=1, 2, n).
На второй вход блока умножения 14 поступает код с выхода регистра 13j. Результат произведения с выхода блока умножения 14j поступает на одноименный вход сумматора 15, код с выхода которого поступает на первый вход схемы сравнения 16, на второй вход которой поступает код с выхода регистра 17 с текущим значением минимизируемой функции. На выходе схемы сравнения 16 появляется единичный сигнал только в том случае, если код на выходе сумматора 15 меньше кода с выхода регистра 17.
Единичный сигнал с выхода схемы сравнения 16 поступает на первый вход элемента И 12, а так же через элемент задержки 18 открывает элемент И 11, через который при наличии также единичного сигнала на другом его входе с выхода элемента И 10 новое значение с выхода сумматора 15 запомнится на регистре 17.
Одновременно результат произведения с выхода блока умножения 6ij поступает на одноименный вход сумматора 7i, код с выхода которого поступает на первый вход схемы сравнения 9i, на второй вход которой поступает код с выхода регистра 8i, со значением требуемого количества изделий i-го типа. На выходе схемы сравнения 9 i появляется единичный сигнал только в том случае, если код на выходе регистра 8i не меньше кода с выхода сумматора 7i.
Сигнал с выхода схемы сравнения 9i поступает на одноименный вход элемента И 10, на выходе которого появляется единичный сигнал только при одновременном появлении единичных входных сигналов с выходов всех схем сравнения 9. Единичный сигнал с выхода элемента И 10 поступает на второй управляющий вход элемента И 11 и элемента И 12, с выхода которого единичный сигнал обеспечивает перезапись содержимого счетчиков 3j (j=1, 2, 3, n) в одноименные регистры 4j (j=1, 2, 3, n).
Сигналом окончания работы устройства является сигнал переполнения с выхода счетчика 3n, который поступает на выход 19 устройства и на инверсный вход элемента И 2, тем самым прекращается подача входных тактовых сигналов по входу 1 устройства.
Таким образом, в результате работы устройства выходной информацией являются: единичный сигнал на выходе 19 и коды на выходах 20j (j=1, 2, 3, n).
Литература
1. Патент 2143729. Устройство для решения задач целочисленного линейного программирования. Опубликовано: 27.12.1999.
2. Г.Вагнер. Основы исследования операций. Том 3. - М.: Мир, 1973. - С.284-294.
Класс G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций