Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 03:44   #1
Rhianin
Новичок
Джуниор
 
Регистрация: 11.04.2011
Сообщений: 1
По умолчанию [Алгоритм] Игра на орграфе

Здравствуйте.
Дана следующая задача :
В игре на орграфе два игрока поочередно накрывают белыми (соответственно, черными) фишками вершины орграфа. Игрок при своем ходе может накрыть фишкой любую из свободных вершин, хотя бы один предшественник которой накрыт фишкой противника; первым ходом белые накрывают любую вершину. Проигрывает тот, кто при своем ходе не может выставить фишку в соответствии с правилами игры. Определить, является ли начальная конфигурация игры на заданном орграфе выигрышной для белых.

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

Я так понимаю, что в данном случае нас интересуют орграфы, не имеющие вершин от которых не отходят дуги, т.к. в противном случае, белый игрок ставит на такую вершину свою фишку и выигрывает.
У меня пока что есть только одна идея решения: полный перебор всех вариантов ходов, и построение дерева игры.

В соответствии с этим есть несколько вопросов:
1. В правильную ли сторону я думаю, и является ли полный перебор и построение дерева единственным способом решения?
Если да, то:
а) Как оптимальнее построить дерево? Ведь в орграфе возможно достижение одной вершины несколькими способами с равным кол-вом
ходов, в следствии чего в дереве будут одинаковые лишние поддеревья.
б) К примеру я построил дерево игры, как определить, какие из листьев, обозначающих победу белых, достигаются независимо от ходов
чёрных?
Если же нет, то:
Прошу подсказать другой способ решения.
2. Для этой задачи орграф лучше представлять с помощью матрицы смежности?

Прошу направить на верный путь.
Заранее спасибо.
Rhianin вне форума Ответить с цитированием
Старый 11.04.2011, 07:22   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Задача коммивояжера. Классика жанра.
Литература:
А. И. Стрикалов, И. А. Печенежская. Экономико-математические методы и модели.
Ещё одна похожая задача: "Задача о восьми ферзях".
Она решается посредством обхода дерева решений с возвратом.
Простой перебор годен для небольших графов 3 - 5 вершин. Для более сложных возникнет "информационный взрыв". Читайте теорию игр.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 11.04.2011 в 07:25.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск циклов в орграфе Usr Помощь студентам 0 14.01.2011 14:05
Волновой алгоритм (алгоритм Ли) MrRockchip Общие вопросы C/C++ 4 10.05.2010 13:26
Игра Shyt Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 09.04.2010 16:48