Из курса школьной математики нам все известны задачи комбинаторики, такие как задачи на перестановки, сочетания, размещения, представленные соответствующими формулами. Но эти формулы дают нам только количество решений, а не сами решения. Общих типовых алгоритмов самих решений на эти типы задач не было. Эти типы задач с большими числами можно отнести к NP задачам. Но с помощью программы Scilab раскрываются типовые алгоритмы таких задач и выдаются сами решения, и не только количество решений. Суть алгоритмов состоит в оперировании с элементами натурального ряда в строках и столбцах матрицы, а также в оперировании со строками и столбцами матрицы с помощью команд Scilab. NP- задачи, в принципе, представляют все те же задачи комбинаторики, но в больших числах. Так в одной NP- задаче могут присутствовать сразу как перестановки, так и сочетания и размещения, могут быть эти операции (сочетания, размещения, перестановки) последовательно повторяться, но уже с другими, полученными в ходе решения задачи, данными, могут быть заданы дополнительные еще какие либо условия или вычисления. Суть в том, что зная типовые алгоритмы перестановок, размещения, сочетания, эти алгоритмы можно использовать сколько угодно в одной задаче и таким образом решать NP задачи. Подчеркнем еще раз, что приведенные ниже алгоритмы дают сами решения, а не только ответы о количестве решений, хотя и их тоже дают. В больших числах решение этих задач требует большой разрешительной мощности компьютера, но алгоритмы остаются все те же. В данной книге приводятся примеры с малыми числами, но суть дела остается та же. Тем самым, автор хочет показать, что часто решение задачи лежит на поверхности, но мы иногда не можем увидеть решение под таким углом. Автор уверен, что все больше NP-задач будет переходить в разряд P- задач. Этот процесс неизбежен с развитием программ и ростом мощности компьютеров.
Глава 1. Сущность метода, команды и типовые алгоритмы в программе Scilab 6.0.1
Любое множество можно записать в виде матрицы с элементами этого множества. Сущность применяемого метода состоит из оперирования над натуральными числами (элементами множеств), применяя матричный подход, то есть оперированием элементами матриц, их столбцов и строками, а также во взаимодействиями между матрицами (множествами).