2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1 ... 3, 4, 5, 6, 7
 
 Re: Сложение и другие арифметические операции
Сообщение01.05.2018, 19:10 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва
Dmitriy40 в сообщении #1309188 писал(а):
Ну например длина вектора из одинаковых объектов с конечным числом состояний?
Ещё раз для тех, кто в танке: в булевой алгебре есть только три операции $\vee$, $\wedge$, $\neg$. Нет никакой "длины вектора" и "компонент". Вы говорите о произведении булевых алгебр и функциях, которые можно определить для этого произведения и его компонент. Эти функции не являются логическими операциями, поскольку не выражаются через операции $\vee$, $\wedge$, $\neg$.

Dmitriy40 в сообщении #1309188 писал(а):
каждая из которых представляется (не обязательно однозначно) композицией операций $\vee, \wedge, \neg$ над одним-двумя аргументами над любыми из объектов $A,B,C,D,E,F$.
Ага. Это как раз то, против чего я возражаю. Доказывать, что такими средствами можно реализовать сложение в некотором отрезке натурального ряда, не надо. В конце-концов, соответствующая реализация у меня перед носом стоит.

Dmitriy40 в сообщении #1309188 писал(а):
И это снова возвращает к вопросу допустимости логических операций над разными элементами векторов (а не лишь с одинаковым индексом для всех векторов).
Вот-вот. Пусть наша булева алгебра есть произведение какого-то числа двухэлементных булевых алгебр. Двух, например. Реализуйте сдвиг на один разряд с помощью операций $\vee$, $\wedge$, $\neg$ над элементами произведения, а не над компонентами.

Chifu в сообщении #1309190 писал(а):
Бит это 1 вход/выход или элемент памяти, соответственно 1 булева функция (с одним выходом). Байт это 8 пронумерованных бит - 8 пронумерованных булевых функций, т.е. соединяются по номеру, выделяются по номеру, соответственно они не "разбегаются", а жестко соединены со своим номером, поэтому собирать их не надо (они собраны). Рассмотрите "черный ящик" с входами по количеству и разряду аргументов и выходами по количеству разрядов результата, вот вся обработка информации происходит в "черном ящике" и вот в цифровой электронике этот ящик состоит из логических элементов (и элементов памяти).
Не надо меня убеждать в том, что компьютеры существуют и работают.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение01.05.2018, 21:18 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва
Каждая конечная булева алгебра является произведением двухэлементных булевых алгебр. В произведении булевы операции $\vee$, $\wedge$, $\neg$ выполняются поразрядно. Арифметические операции требуют переносов из одних разрядов в другие, поэтому не могут быть реализованы операциями $\vee$, $\wedge$, $\neg$.

Ещё раз повторяю: я не отрицаю реализации арифметических операций в компьютерах. Я только утверждаю, что для реализации арифметических операций используются функции, не сводящиеся к операциям $\vee$, $\wedge$, $\neg$. Это функции проектирования произведения на сомножители и функция, собирающая элемент произведения из его координат. Их особенность состоит в том, что они реализуются не какими-то специальными электронными элементами, а просто соответствующим соединением проводников. Вероятно, по этой причине многие не видят этих функций, что называется, в упор.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение01.05.2018, 22:02 
Заслуженный участник


20/08/14
11902
Россия, Москва
Вы похоже упорно подводите к мысли что матрицу межсоединений входов и выходов логических функций не описать в терминах самих этих логических функций, а требуется некая другая сущность (типа "проводов")? Причём для композиции функций Вы провода внутри не замечаете? Как и провода от источника объектов к входам функций (подстановка аргументов), как и провода от выходов функций до места хранения объектов (сохранение результата)?
Ну да, "провода" нужны, кто ж спорит.

(А некоторые так в упор и не понимают)

Только "некоторые в упор не понимают" почему провода разрешено вести только в строго одних направлениях и запрещено в других? Почему недопустимо соединение входа логической функции с любым входом или выходом любой логической функции?! Любым? Без проводов вы даже аргументы функции поменять местами не сможете - нет же операции перестановки первого аргумента на вторую позицию и наоборот, несмотря на все заявления о симметричности функции по аргументам. Симметрична то она симметрична, но операции перестановки аргументов нет! Когда я пишу математическую формулу я не думаю какие переменные я могу в ней использовать, а какие нет - какие мне надо, те и подставляю, не задумываясь какая такая спецфункция мне их выдаст и подставит в нужном порядке в аргументы. Вы же разрешили ходить только строем и никак иначе. Такое впечатление что это лишь для упрощения формальной теории, не более. И доупрощались до того что ликвидировали 99% практически полезных функций. А потом сокрушаетесь что полезные операции стали невыразимыми в используемом базисе и нужны новые функции, ага ...
В общем когда говорят "для реализации любой логической функции достаточно логических функций $\vee, \wedge, \neg$", то подразумевают непроизнесённое "... и в любом порядке соединяющих их проводов". Именно в любом, без ограничения общности. А уж как это формализуется именно в булевой алгебре - дело немного другое, это уже издержки формализации.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение02.05.2018, 10:58 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва
Dmitriy40 в сообщении #1309222 писал(а):
А уж как это формализуется именно в булевой алгебре
Никак. А поскольку "логические операции" — это операции в булевой алгебре, то функции, реализуемые соединениями проводов и не выражающиеся через логические операции, логическими не являются.

Dmitriy40 в сообщении #1309222 писал(а):
Причём для композиции функций Вы провода внутри не замечаете?
Композиция функций не выводит за пределы класса логических функций, поскольку это просто подстановка выражения функции в формулу вместо свободной переменной. Все функции, которые можно записать формулами в языке исчисления высказываний, являются логическими.

Dmitriy40 в сообщении #1309222 писал(а):
Почему недопустимо соединение входа логической функции с любым входом или выходом любой логической функции?
Можно. По-моему, Вы никак не хотите понять, о чём я говорю. Я вообще не хочу говорить ни о каких соединениях. Меня схемотехника не интересует.

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

В обсуждаемом случае речь идёт о конечной булевой алгебре. Всякая конечная булева алгебра изоморфна какой-то степени двухэлементной, и речь идёт о возможности реализации сложения в этой булевой алгебре. Аргументами логических функций тут являются не координаты элементов в этом произведении двухэлементных алгебр, а сами элементы. Пользуясь только логическими операциями, мы никак не можем реализовать произвольную функцию координат; в частности, мы не можем реализовать перенос в другой разряд, поэтому арифметические операции в булевой алгебре не реализуются.

Dmitriy40 в сообщении #1309222 писал(а):
Без проводов вы даже аргументы функции поменять местами не сможете - нет же операции перестановки первого аргумента на вторую позицию и наоборот, несмотря на все заявления о симметричности функции по аргументам.
Это ерунда. Если я могу написать формулу для $f(A,B)$, то я смогу написать и формулу для $f(B,A)$. Ещё раз повторяю: провода меня не интересуют.

Dmitriy40 в сообщении #1309222 писал(а):
Вы же разрешили ходить только строем и никак иначе. Такое впечатление что это лишь для упрощения формальной теории, не более. И доупрощались до того что ликвидировали 99% практически полезных функций.
Ничего подобного. Я просто хочу обратить внимание на то, что для реализации арифметики недостаточно булевой алгебры и логических операций. Необходима дополнительная структура и дополнительные операции, отсутствующие в булевой алгебре и, следовательно, не являющиеся логическими. Более того, фактическая реализация арифметических операций вообще не использует логических операций в исходной булевой алгебре; используются только логические операции в двухэлементных булевых алгебрах.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение02.05.2018, 12:58 
Заслуженный участник


20/08/14
11902
Россия, Москва
Получается мы говорим о разном: Вы об операциях над объектами типа <целиком_число>, я об "операциях в двухэлементных булевых алгебрах" (т.е. над битами). В таком случае разумеется согласен с Вами, нет операций над компонентами объекта <целиком_число> и соответственно нет сложений и многого всего другого.

(А почему бы не сменить уровень абстракции?)

Только так и непонятно почему же нельзя "развалить" объект <целиком_число> на упорядоченное множество более простых объектов, над которыми тоже существуют (некоторые другие вообще говоря) логические операции и которые уже позволяют реализовать отсутствующие операции над исходными объектами. В исходной алгебре нереализуемо, ну так спуститесь на уровень абстракции ниже и станет реализуемым. И на этом более низком уровне абстракции никакие новые операции кроме логических так и не понадобятся. И когда говорят "операция (не)выразима в логических операциях", то не добавляют же "... исключительно исходного уровня абстракции" (т.е. в исходной булевой алгебре). А Вы почему-то это подразумеваете автоматом. Ну так тогда говорите это явно, а не в любых логических операциях (что Вы сами понимаете неверно).

(Аналогия с матрицами)

Можно провести прямую аналогию с матрицами, Вы определили некоторые операции с матрицами (базис) и утверждаете что некоторые другие операции в нём невыразимы. Ну и что, я проблемы не вижу, их же всегда можно выразить в терминах операций над компонентами. А выразив однажды и введя новое обозначение для операции над матрицами (т.е. добавив её в базис) можно в дальнейшем ею свободно пользоваться уже на исходном уровне абстракции, именно над целиком матрицами. Собственно так обычно и вводятся многие операции в математике.

(Не хочу понять?)

Someone в сообщении #1309323 писал(а):
По-моему, Вы никак не хотите понять, о чём я говорю.
Да не, я никак не пойму о чём Вы неявно умалчиваете в своих утверждениях (впрочем наверное как и я). И умалчиваем мы о разном. Вы например об операциях исключительно на исходном уровне абстракции, где нет ни компонентов сложных объектов, ни произвольно заданных функций над объектами (а только подкласс - логические). И если это всё оговорить, то разумеется Вы правы. Я же умалчиваю что всегда допускаю понижение уровня абстракции вплоть до отдельных битов (объектов с двумя состояниями) и произвольной композиции функций над именно этими объектами, что автоматом даёт реализуемость любой функции над исходными объектами.
Ну не математик я, формальные теории для меня феерический бред тёмный лес. ;-)

Итого.
Согласен что: в булевой алгебре многие операции (сложение/вычитание, сдвиги, арифметическое умножение/деление, перестановка компонент объекта) невыразимы в базисе логических операций на том же уровне абстракции (в исходной булевой алгебре), требуется или добавление других операций, или понижение уровня абстракции (доступ к компонентам объектов). И без выделенного жирным уточнения утверждение уже неверно, потому что под логическими операциями в этом утверждении все (не математики включая меня) неявно понимают именно операции в двухэлементных булевых алгебрах (т.е. над битами), а не в исходной булевой алгебре. И для них надо последнее особо подчёркивать.
На этом наверное и закончим, ведь я с Вами уже согласен (ну насколько могу понять)?

PS. Честно старался придерживаться вашей терминологии, хотя и не уверен на 100% что её понимаю.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение02.05.2018, 18:51 
Заслуженный участник


27/04/09
28128
Dmitriy40 в сообщении #1309347 писал(а):
Получается мы говорим о разном: Вы об операциях над объектами типа <целиком_число>, я об "операциях в двухэлементных булевых алгебрах" (т.е. над битами).
А это mihaild и я уже давно заметили и описали. :-) Потому продолжение темы лично меня изрядно удивило.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение03.05.2018, 19:58 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва
Dmitriy40 в сообщении #1309347 писал(а):
Только так и непонятно почему же нельзя "развалить" объект <целиком_число> на упорядоченное множество более простых объектов
"Развалить" можно, но это — не логическая операция. А потом ещё нужно "собрать", а это — тоже не логическая операция. Так что одними логическими операциями Вы не обойдётесь, даже если допустить логические операции в двухэлементных булевых алгебрах.

Для "разваливания" нужен набор функций из исходной булевой алгебры в двухэлементные, а для "сборки" — конструкция, которая называется диагональным произведением отображений.

Dmitriy40 в сообщении #1309347 писал(а):
Получается мы говорим о разном: Вы об операциях над объектами типа <целиком_число>
Я этого вовсе не скрывал и постоянно призывал отвлечься от всяких битов и байтов, поскольку их "выделение", последующее произвольное манипулирование и сборка с помощью исключительно логических операций невозможны. То, что Вы имеете в качестве исходных данных и что хотите получить в результате находится не в том множестве, в котором находится то, чем Вы хотите манипулировать.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение04.05.2018, 14:40 
Аватара пользователя


27/01/09
814
Уфа
Someone в сообщении #1309833 писал(а):
... поскольку их "выделение", последующее произвольное манипулирование и сборка с помощью исключительно логических операций невозможны. То, что Вы имеете в качестве исходных данных и что хотите получить в результате находится не в том множестве, в котором находится то, чем Вы хотите манипулировать. То, что Вы имеете в качестве исходных данных и что хотите получить в результате находится не в том множестве, в котором находится то, чем Вы хотите манипулировать.
Провода показывают, какие сигналы подаются на вход логических элементов, соответственно какой вид имеют логические формулы. Соответственно логические формулы задают логическую схему. В схеме нет места для произвола (за исключением двойственности и выбора базиса) и перемешивания, произвольными могут быть лишь значения сигналов. Все сигналы на входах и выходах двоичные.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение04.05.2018, 21:39 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва

(Chifu)

О-хо-хо…

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 99 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group