Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача коммивояжера и задача обедающие философы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Guilty
Здравствуйте люди ! Буду очень признателен , если вы мне поможете чем-нибудь !
У меня два вопроса :
1) Курсовая работа по САОДу : "Решение задачи коммивояжера - метод проб и ошибок" . Я ваще не знаю что представляет собой этот метод , ну может кто слышал ! Знаю что тока этот алгоритм можно реализовать с помощью реализации алгоритма "обхода конем шахматной доски" , т.е. если я реализую этот алгоритм , то это и будет метод проб и ошибок !
2) Курсовая работа по ОС(или по ТВП) : "реализация выч. системы для реализации итерационных выч-ых процессов на основе типовой задачи Обедающие философы" !

Заранее спасибо ! Я ваще попадаю , у меня нынче 5 курсачей , вот эти 2 я никак не успеваю сделать ! ХЭЛП ! ! ! :o :o :o

Я кстати тут новенький , прошу любить и жаловать ! ;)
volvo
Насколько я помню, метод "проб и ошибок" - это другое название "метода перебора", который на форуме уже рассматривался (так же как и метод "ветвей и границ"). Информация - здесь: Задача коммивояжера

Об обходе конем шахматной доски: FAQ: Переборные алгоритмы

Большая просьба в следующий раз сначала пользоваться поиском, а потом - спрашивать...
NightPaladin
А может ты вообще полное условие даш. Просто такие образные названия, может и известных задач, мне не о чём не говорят
volvo
Что касается "Задачи об обедающих философах":

Задача «Обедающие философы»

Рассмотрим формулировку задачи об обедающих философах в терминологии, предложенной Э. Дейкстрой. За круглым столом расставлены пять стульев, на каждом из которых сидит определенный философ (Фi ).

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

Существует множество различных формулировок данной задачи, в одной из которых философы интерпретируются как процессы, а вилки – как ресурсы. Задача «обедающие философы» удобна для изучения тупиковых ситуаций в системах парал­лельных процессов.

В представленной задаче имеются две опасные ситуации: ситуация голодной смерти и ситуации голодания отдельного философа. Ситуация голодной смерти возникает в случае, когда философы одновременно проголодаются и одновременно попытаются взять, например, свою левую вилку. В данном случае возникает тупиковая ситуация, так как никто из них не может начать есть, не имея второй вилки. Для исключения ситуации голодной смерти были предложены различные стратегии распределения вилок.

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

PROGRAM обедающие_философы;
VAR вилка[5]: ARRAY OF SEMAPHORE;
K:INTEGER;

PROCEDURE философ(i:INTEGER);
VAR левая,правая:1..5;
BEGIN
левая:=(i+1) mod 5;
правая:=i mod 5;
WHILE истина DO BEGIN
<размышления>;
P(вилка[левая];вилка[правая]);
<еда>;
V(вилка[левая];вилка[правая]);
END
END;

BEGIN
(* инициализация массива семафоров *)
K:=5;
REPEAT вилка[K]:=1; K:=K-1 UNTIL K=0;
PARBEGIN
философ(1);
...
философ(5);
PAREND
END.


При выполнении Р-примитива блокировка процесса не производится только в том случае, если оба семафора Р-примитива являются «открытыми». В представленном решении предполагается, что каждый из философов берет две необходимые для еды вилки одновременно.
Jeka
Чувак та же прабла, только вот у нас это не курсач, а лаба. Без нее писец зачета не видать!
Так что скинь если шо на мыло!!!!!!!!!!!
Хэлп! wacko.gif wacko.gif


Мое мыло <...>

У нас не доска объявлений. Читай Правила форума (пункт 1.12)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.