Диссертация (1150701), страница 16
Текст из файла (страница 16)
Для этого вычислим количество операций, которые должен выполнить процессор для получения результата. Пусть количество заданных точек . Для начала, необходимо выполнить4(3 + 1) арифметические операции для вычисления величины параметров ине более 48 операции для получения значения целевой функции, а также неболее 42 операций на вычисление координат оптимального положения объекта. Таким образом потребуется 12 + 94 операций.
Сложность алгоритма, придостаточно больших можно считать ().121A.3Программная реализация решения минимаксной задачи размещения с ограничениями в виде прямоугольника на языке RНиже представлена программная реализация решения минимаксной задачи размещения точечного объекта на плоскости с прямоугольной метрикой сограничениями на допустимую область размещения в виде прямоугольника сиспользованием результатов, полученных в следствии 15. В результате работыпрограммы получено графическое изображение с оптимальной областью размещения.# Считывание массива исходных данных(координат точек) из файлаdf <- read.table("С:\\data.txt", header = FALSE, sep = "", dec = ".")#Введение обозначений для константных величинa<-max(df[,1]+df[,2]+df[,3])b<-max(-df[,1]+df[,2]+df[,3])c<-max(df[,1]-df[,2]+df[,3])d<-max(-df[,1]-df[,2]+df[,3])f<-const #левая граница ограничений для первой координатыg<-const #правая граница ограничений для первой координатыp<-const #левая граница ограничений для второй координатыq<-const #правая граница ограничений для второй координатыu<-max((a+c)/2,a-qq,c+pp)v<-max((b+d)/2,b-qq,d+pp)z<-max((a+d)/2,(b+c)/2)#вычисление значения минимума целевой функцииmu<-max((u+v)/2,u-gg, v+ff, z)#Вычисление решенияt <- function(x) (1-x)*max(-mu+u,f)-x*max(-mu+v,-g)s <- function(y) (1-y)*max(-mu+a-t(y),-mu+b+t(y),p)-y*max(-mu+d+t(y),-mu+c-t(y),-q)122sol <- function(x) c(t(x),s(x))#Построение графика с набором исходных координат и решениемi<-min(df[,1],df[,2])-1j<-max(df[,1],df[,2])+1plot(i:j, i:j, type = "n",, main = "Оптимальнаязона для расположения", xlab = "x", ylab = "y")segments(sol(0)[1], sol(0)[2], sol(1)[1], sol(1)[2],lwd=5, col= ’red’)points(df[,1],df[,2])Определим сложность предложенного алгоритма.
Для этого вычислим количество операций, которые должен выполнить процессор для получения результата. Пусть количество заданных точек . Для начала, необходимо выполнить 12 арифметические операции для вычисления величины параметров и128 операции для получения значения целевой функции. Таким образом потребуется 12 + 128 операций. Сложность алгоритма, при достаточно больших можно считать ()..