|
|
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Не могу картинку вставить. Объясните, как добавить картинку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2009, 11:32 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Вот, нашло озарение формализовать этот вопрос. Вообще, задачу можно нарисовать в виде графа. Вершины - люди, ребра - отношения между ними. Понятно, что одни отношения являются базовыми, полностью описывающими систему, а остальные - дополнительными, однозначно вычисляемыми из базовых. Обратное преобразование может быть невозможным (неоднозначным). Например, если есть некий А, два его сына B и C, и два сына B - D и E, то понятно, что D и E являются братьями между собой, и внуками A. В то же время, если описать, что есть A, два его сына B и C, и два внука D и E, то непонятно, являются ли D и E между собой родными братьями, или двоюродными - информация потеряна. Семью любой сложности можно описать отношениями двух видов: супружества (A и B - муж и жена), и родительства (A и В - отец и мать С, C - сын (дочь) A и B). В принципе, родительство подразумевает супружество, и отдельно супружество стоит упомянуть только для описания бездетных семей. То есть, муж, жена, отец, мать, сын, дочь - минимальный и достаточный набор отношений для описания семьи. Граф семьи является статическим, независимым от времени, накапливающим все возникшие отношения. То есть, если A на протяжении жизни был женат на нескольких женах, то в графе у него будут перечислены они все. Собственно, задача сводится к тому, чтобы описать существующую конфигурацию людей терминами супружества и родительства, а затем, на запрос "кем мне приходится такой-то", пробежаться по графу от одной вершины к другой по минимальному пути, накопить пройденые элементарные отношения (отец, сын, мать, дочь, муж, жена), и при возможности применить к ним сокращенные обозначения, например "сын отца" => брат. На примере показан такой граф. Синие овалы - супружество, черные линии - дети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2009, 17:44 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Я описал этот граф так: // перечень людей def_man(1, 1); // (ид_человека, пол (1=мужской)) def_man(2, 0); def_man(3, 1); def_man(4, 0); def_man(5, 1); def_man(6, 0); def_man(7, 1); def_man(8, 1); def_man(9, 0); def_man(10, 0); def_man(11, 1); def_man(12, 0); // перечень отношений def_rel_child(1, 2, 6); // (отец, мать, ребенок) def_rel_child(1, 2, 7); def_rel_child(1, 2, 8); def_rel_child(3, 4, 9); def_rel_child(3, 4, 10); def_rel_child(5, 6, 11); def_rel_child(8, 9, 12); Написал программу получения родственного отношения любого человека к любому, и запустил ее в цикле - получить отношение каждого к каждому. ...и получил такой результат: (смысл строки: "если Я - человек номер 1, то человек номер 2 приходится мне женой") Я: 1; 2 - это жена Я: 1; 3 - это сват Я: 1; 4 - это сваха Я: 1; 5 - это зять Я: 1; 6 - это дочь Я: 1; 7 - это сын Я: 1; 8 - это сын Я: 1; 9 - это невестка Я: 1; 10 - это сестра невестки Я: 1; 11 - это внук Я: 1; 12 - это внучка Я: 2; 1 - это муж Я: 2; 3 - это сват Я: 2; 4 - это сваха Я: 2; 5 - это зять Я: 2; 6 - это дочь Я: 2; 7 - это сын Я: 2; 8 - это сын Я: 2; 9 - это невестка Я: 2; 10 - это сестра невестки Я: 2; 11 - это внук Я: 2; 12 - это внучка Я: 3; 1 - это сват Я: 3; 2 - это сваха Я: 3; 4 - это жена Я: 3; 5 - это зять дочери Я: 3; 6 - это золовка дочери Я: 3; 7 - это деверь дочери Я: 3; 8 - это зять Я: 3; 9 - это дочь Я: 3; 10 - это дочь Я: 3; 11 - это племянник зятя Я: 3; 12 - это внучка Я: 4; 1 - это сват Я: 4; 2 - это сваха Я: 4; 3 - это муж Я: 4; 5 - это зять дочери Я: 4; 6 - это золовка дочери Я: 4; 7 - это деверь дочери Я: 4; 8 - это зять Я: 4; 9 - это дочь Я: 4; 10 - это дочь Я: 4; 11 - это племянник зятя Я: 4; 12 - это внучка Я: 5; 1 - это тесть Я: 5; 2 - это теща Я: 5; 3 - это тесть брата жены Я: 5; 4 - это теща брата жены Я: 5; 6 - это жена Я: 5; 7 - это брат жены Я: 5; 8 - это брат жены Я: 5; 9 - это жена брата жены Я: 5; 10 - это сестра жены брата жены Я: 5; 11 - это сын Я: 5; 12 - это племянница жены Я: 6; 1 - это отец Я: 6; 2 - это мать Я: 6; 3 - это тесть брата Я: 6; 4 - это теща брата Я: 6; 5 - это муж Я: 6; 7 - это брат Я: 6; 8 - это брат Я: 6; 9 - это жена брата Я: 6; 10 - это сестра жены брата Я: 6; 11 - это сын Я: 6; 12 - это племянница Я: 7; 1 - это отец Я: 7; 2 - это мать Я: 7; 3 - это тесть брата Я: 7; 4 - это теща брата Я: 7; 5 - это зять Я: 7; 6 - это сестра Я: 7; 8 - это брат Я: 7; 9 - это жена брата Я: 7; 10 - это сестра жены брата Я: 7; 11 - это племянник Я: 7; 12 - это племянница Я: 8; 1 - это отец Я: 8; 2 - это мать Я: 8; 3 - это тесть Я: 8; 4 - это теща Я: 8; 5 - это зять Я: 8; 6 - это сестра Я: 8; 7 - это брат Я: 8; 9 - это жена Я: 8; 10 - это сестра жены Я: 8; 11 - это племянник Я: 8; 12 - это дочь Я: 9; 1 - это свекор Я: 9; 2 - это свекровь Я: 9; 3 - это отец Я: 9; 4 - это мать Я: 9; 5 - это зять Я: 9; 6 - это золовка Я: 9; 7 - это деверь Я: 9; 8 - это муж Я: 9; 10 - это сестра Я: 9; 11 - это племянник мужа Я: 9; 12 - это дочь Я: 10; 1 - это свекор сестры Я: 10; 2 - это свекровь сестры Я: 10; 3 - это отец Я: 10; 4 - это мать Я: 10; 5 - это зять сестры Я: 10; 6 - это золовка сестры Я: 10; 7 - это деверь сестры Я: 10; 8 - это зять Я: 10; 9 - это сестра Я: 10; 11 - это племянник зятя Я: 10; 12 - это племянница Я: 11; 1 - это дед Я: 11; 2 - это бабушка Я: 11; 3 - это тесть дяди Я: 11; 4 - это теща дяди Я: 11; 5 - это отец Я: 11; 6 - это мать Я: 11; 7 - это дядя Я: 11; 8 - это дядя Я: 11; 9 - это жена дяди Я: 11; 10 - это сестра жены дяди Я: 11; 12 - это двоюродная_сестра Я: 12; 1 - это дед Я: 12; 2 - это бабушка Я: 12; 3 - это дед Я: 12; 4 - это бабушка Я: 12; 5 - это зять отца Я: 12; 6 - это тетя Я: 12; 7 - это дядя Я: 12; 8 - это отец Я: 12; 9 - это мать Я: 12; 10 - это тетя Я: 12; 11 - это двоюродный_брат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2009, 17:50 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
В результате прохождения по графу мы получаем "путь" родственного отношения в каноническом виде, то есть в терминах элементарных отношений (муж, жена, отец, мать, сын, дочь). Например, двоюродный брат в одном из канонических видов (человек N 11 по отношению к N 12) - это "сын дочери отца отца". А потом этот канонический путь мы упрощаем до общепринятого, например заменяя "отец отца" на "дед". И самая большая сложность - нахождение минимального варианта применения сокращений. Например, сначала моя программа упорно обзывала двоюродного брата "сыном тети", или "внуком бабушки", что в общем-то верно, но не минимально. Здесь можно долго оптимизировать. Извините за сумбурное изложение, что непонятно - спрашивайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2009, 17:59 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisher, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2009, 18:53 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 06:26 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Это форма определения степени родства. При нажатии на кнопку, в соответствии с занимаемым местом, объекту должны присвоиться пять индексов: 1. индекс по вертикали, 2. индекс рода, 3. индекс по горизонтали, 4. индекс глубины списка, 5. индекс созданного рода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 06:31 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherСемью любой сложности можно описать отношениями двух видов: супружества (A и B - муж и жена), и родительства (A и В - отец и мать С, C - сын (дочь) A и B). У этого утверждения есть ряд спорных моментов, наиболее очевидный из которых - "это возможно только при полноте информации". Скажем, может быть известно, что А - дядя Б, но для того, чтобы описать это в Ваших терминах, придётся вводить ещё несколько человек (родители А и родители Б), о которых системе в принципе может быть ничего не известно. Также систему придётся усложнять, вводя всякие статусы отношений и даты, для описания таких реалий жизни как "один из родителей неизвестен", "ребёнок от первого брака", "лишён родительских прав" итдитп. Cane Cat FisherТо есть, муж, жена, отец, мать, сын, дочь - минимальный и достаточный набор отношений для описания семьи. Отчим/мачеха/пасынок/падчерица/усыновлённый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 17:21 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
softwarerСкажем, может быть известно, что А - дядя Б, но для того, чтобы описать это в Ваших терминах, придётся вводить ещё несколько человек (родители А и родители Б), о которых системе в принципе может быть ничего не известно. Напомню, изначально вопрос был в том, чтобы описать семью (X,Y,Z), и получать от системы ответ "кем X приходится Y-ку". Ваше замечание затрагивает проблему, хотим ли мы иметь систему с однозначными ответами на все вопросы о родственниках, или же допускаем "неопределенно-вероятностные" оценки. Если описать все родственные отношения базовыми - кто чей родитель-сын, то "кто кому дядя" вычисляется жестко однозначно. Если же позволять явно вносить дополнительные отношения - "А - дядя Б", то это значит, что кто-то из братьев или сестер А является родителем Б. Предположим, системе известно, что у А есть два брата - А1 и А2. Что должна она ответить на запрос "кем А1 приходится Б"? Что-то вроде "возможно, родителем, а возможно, дядей"? "Неполноту информации" вложили - ее же и получили. Для поисковой экспертной системы - прекрасно. Но для коммунальной справки о составе семьи, о которой шла речь - вряд ли, тут нужен детерминированный подход. Можно, конечно, представить смешанную систему: вносятся все известные определения, а запросы можно извлекать либо "точные" - на основании базовых, или явно указанных дополнительных отношений; либо "ориентировочные" - "возможно, родитель, а возможно, дядя". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 18:37 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Гугль рулит. Как говорят буржуи - eat this: http://www.amalgama-lab.com/songs/r/ray_stevens/i_m_my_own_grandpaw.html Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 18:43 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovГугль рулит. Как говорят буржуи - eat this: ...Теперь моя дочь стала моей матерью, потому что она была женой моего отца. Тогда уж мачехой :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 18:46 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherСемью любой сложности можно описать отношениями двух видов: супружества (A и B - муж и жена), и родительства (A и В - отец и мать С, C - сын (дочь) A и B). В принципе, родительство подразумевает супружество если за супружество считать "гражданский брак", просто "брак (зарегистрированный государственными органами)", "половой акт", и "искуственное оплодотворение" Cane Cat FisherТо есть, муж, жена, отец, мать, сын, дочь - минимальный и достаточный набор отношений для описания семьи. Граф семьи является статическим, независимым от времени, накапливающим все возникшие отношения. То есть, если A на протяжении жизни был женат на нескольких женах, то в графе у него будут перечислены они все. пока не появится "усыновление". И тогда в грАфе будет у одного лица более одного (т.е. биологического) отца. А ещё есть задачи: что в графе "пол" для трансвеститов, будет ли "мать" в однополых браках геев, и как отметить суррогатную мать... Отаке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 18:58 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Мою форму можно сделать многослойной, тогда будет отображение родства в одном поколении, если есть несколько братьев и несколько сестер, еще одни индекс только появится :-). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 18:59 |
|
||
|
родственные отношения в семье для лицевого счета
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherНапомню, изначально вопрос был в том, чтобы описать семью (X,Y,Z), и получать от системы ответ "кем X приходится Y-ку". Именно что. Причём, если мне не изменяет память, для вполне конкретной задачи лицевого счёта. Для которой мы не можем надеяться на академическую полноту информации, но смело можем рассчитывать на некоторое количество экстравагантных случаев. Ну например: в 2000-м году А.Иванов женился на И.Петровой в 2001-м у них родилась дочь Б.Иванова в 2002-м они развелись, А.Иванов вместе с Б.Ивановой переехал в другой город в 2003-м А.Иванов женился на В.Сидоровой, сменившей фамилию на Иванова вопрос: кем в 2006-м году Б.Иванова приходится В.Ивановой при условии, что в квартире проживают Иванов и две Ивановых? Cane Cat FisherЕсли описать все родственные отношения базовыми Это невозможно. Для этого кто-то должен вбить в систему информацию о И.Петровой, которая никогда не жила по этому адресу, никогда не жила в этом городе и возможно даже в этой стране. Можно сколько угодно рассуждать о том, как будет прекрасно, если вдруг такая информация окажется доступна, но её не будет. Cane Cat FisherДля поисковой экспертной системы - прекрасно. Но для коммунальной справки о составе семьи, о которой шла речь - вряд ли, тут нужен детерминированный подход. Верно. Именно поэтому коммунальная система должна не парить мозги, а тупо выдавать известное и запрашивать неизвестное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 19:01 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35880243&tid=1541592]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 509ms |

| 0 / 0 |
