Технический форум по робототехнике.
blindman » 24 дек 2009, 20:17
Дана квадратная матрица A размером n x n. Найти матрицу B размером n x n, такую, что:
1. Все элементы В - 0 или 1
2. В[i][i] = 0 для любого i
3. В содержит ровно 1 единичный элемент в каждой строке и в каждом столбце
4. SUM(i=0,n-1;j=0,n-1)(A[i,j]*B[i,j]) - минимально
Duhas » 24 дек 2009, 20:24
какой вид решения приемлем ? )
blindman » 24 дек 2009, 20:25
Решения, требующие порядка n! итераций (тупой перебор) неприемлемы
Duhas » 24 дек 2009, 20:27
ГА?
Michael_K » 24 дек 2009, 20:31
Duhas » 24 дек 2009, 20:32
мммм, а если найти n наименьший элементов матрицы А, и по их номерам заполнить В...
с ГА думаю я бредил )))
blindman » 24 дек 2009, 20:35
Duhas писал(а):ГА?
Гугу
![Very Happy :D](http://roboforum.ru/images/smilies/biggrin.gif)
А как оценить время нахождения решения?
Michael_K писал(а):вам сюда это надо задать
Решение-то я найду в любом случае. Здесь как-то ... поуютнее, что ли...
Добавлено спустя 53 секунды:Duhas писал(а):с ГА думаю я бредил )))
Может быть и нет
Duhas » 24 дек 2009, 20:38
дык ваиант с примерно n^3 обращений к матрице не катит?
blindman » 24 дек 2009, 20:42
Вполне
Duhas » 24 дек 2009, 20:46
ну дык а в чем проблема то ?
ищем n наименьших чисел в матрице А... то займет если быть точнее (n^2 - n)*n обращений... и прям в функции поиска пишем 1-цы оп найденным номерам в B... как я понимаю условие - минимальность суммы поэлементных произведений?
в В все или 0 или 1.. то по идее такой суммы = равен сумме n меньших элементов А...
blindman » 24 дек 2009, 20:53
ищем n наименьших чисел в матрице А
Что, если они все оказываются в одном столбце(строке)?
Добавлено спустя 3 минуты 30 секунд:Duhas писал(а):в В все или 0 или 1
Это не единственное условие!
3. В содержит ровно 1 единичный элемент в каждой строке и в каждом столбце
avr123.nm.ru » 24 дек 2009, 21:11
blindman писал(а):Дана квадратная матрица
Для чего это применяется.
blindman » 24 дек 2009, 21:13
Какая разница? От этого зависит решение? Если условие неоднозначно/непонятно - пишите, уточню
avr123.nm.ru » 24 дек 2009, 21:21
Это просто вопрос вызваный любопытством.
blindman » 24 дек 2009, 21:28
Изначально это задача по программированию - ничего более.