Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Написать программу в Delphi на задачу 
:(
    Опции темы
Миринда
Дата 1.5.2013, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 18.3.2012

Репутация: нет
Всего: нет



Сможет ли кто-нибудь мне помочь. Задача на моделирование систем. 
Детали, необходимые для работы цеха, находятся на цеховом и центральном складах. На цеховом складе хранится 20 комплектов деталей, потребность в которых возникает через 60 ± 10 мин и составляет один комплект. В случае снижения запасов до трех комплектов формируется в течение 60 мин заявка на пополнение запасов цехового склада до полного объема в 20 комплектов, которая посылается на центральный склад, где в течение 60 ± 20 мин происходит комплектование и за 60 ±5 мин осуществляется доставка деталей в цех.
Смоделировать работу цеха в течение 400 ч. Определить вероятность простоя цеха из-за отсутствия деталей и среднюю загрузку цехового склада. Определить момент пополнения запаса цехового склада, при котором вероятность простоя цеха будет равна 0.
Надо написать программку на Delphi. 

Это сообщение отредактировал(а) Миринда - 1.5.2013, 14:30
PM MAIL   Вверх
Mirkes
Дата 1.5.2013, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



В чем проблема? Запускаете процесс моделирования. В начальный момент времени вычисляете время возникновения потребности в детали по формуле
t:=50+round((random()-0.5)*20)
пропускаете время t.
вычисляете цледующее время по той же формуле и вперед.
Сформулируйте что у вас не получается.


--------------------
Mirkes
PM MAIL   Вверх
Миринда
Дата 15.5.2013, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 18.3.2012

Репутация: нет
Всего: нет



Здравствуйте! Ну вот, наконец-то, то задание, которое я выкладывала, вроде бы готово, но преподаватель меня не оставляет в покое по поводу такого момента в работе программы, она при пороговом значении 3 считает время простоя равным нулю, а препод утверждает, что не может быть нулевое время простоя. Оно будет небольшим, но будет.
Подскажите что и как можно изменить в моей программке чтобы время простоя и вероятность простоя цеха не была равной нулю ?


Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  01_Based_on_provided_project.rar 242,06 Kb
PM MAIL   Вверх
Mirkes
Дата 16.5.2013, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



Ведите протокол моделирования smile

Рассмотрим вашу ситуацию
Со склада забрали 17 комплект. Осталось 3 Считаем это время за Т0.

Сначала цех.
Цех потребует новую деталь через 50-70 минут.
Потом еще через 50-70
и еще через 50-70
и наконец еще через 50-70 минут возникнет потребность, которую вы не сможете удовлетворить и начнется простой.
Таким образом от момента снижения запасов до 3 комплектов до момента простоя проидет от 200 до 280 минут

Теперь поставки.
Формирование заявки 60 минут
Формирование поставки 40-80 минут
Доставка 55-65 минут
Таким образом от момента снижения запасов до 3 комплектов до момента возобновления запасов пройдет от 155 до 205 минут

Вообще говоря преподаватель прав, но только отчасти: простой может возникнуть, но не более чем на 5 минут за большой цикл (я имею в виду пополнение склада) и с довольно маленькой вероятностью.
Вы моделируете 400 часов. Это всего около 25 больших циклов.

Как ответ преподавателю - запустите на моделирование не 400 часов а 4000 часов
Выведите в файл протокол моделирования с момента снижения запасов до момента доставки комплектов на склад. Кстати это поможет вам понять нет ли у вас ошибки smile

Предложите удвоить время формирования заявки - тогда простой почти гарантирован каждый раз.




--------------------
Mirkes
PM MAIL   Вверх
Миринда
Дата 17.5.2013, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 18.3.2012

Репутация: нет
Всего: нет



Почти всё поняла до определенного момента.
Цитата

простой может возникнуть, но не более чем на 5 минут за большой цикл (я имею в виду пополнение склада) и с довольно маленькой вероятностью.
 
Цитата

Это всего около 25 больших циклов.

Как вы высчитали эти 5 минут и 25 циклов ?
Цитата

Как ответ преподавателю - запустите на моделирование не 400 часов а 4000 часов
 Я пробовала запускать и на 4000 и на 40000 часов - все-равно при пороге 3 комплекта время простоя составляет 0 минут
Цитата

Выведите в файл протокол моделирования с момента снижения запасов до момента доставки комплектов на склад.
 - не представляю как это можно сделать.
Цитата

Предложите удвоить время формирования заявки - тогда простой почти гарантирован каждый раз.
 - боюсь препод меня не поймет, ведь это означает изменить условия задачи.
PM MAIL   Вверх
Mirkes
Дата 18.5.2013, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



Цитата(Миринда @  17.5.2013,  21:48 Найти цитируемый пост)
Цитата

Это всего около 25 больших циклов.



Как вы высчитали эти 5 минут и 25 циклов ?


Цитата(Mirkes @  16.5.2013,  21:18 Найти цитируемый пост)
Сначала цех.
Цех потребует новую деталь через 50-70 минут.
Потом еще через 50-70
и еще через 50-70
и наконец еще через 50-70 минут возникнет потребность, которую вы не сможете удовлетворить и начнется простой.
Таким образом от момента снижения запасов до 3 комплектов до момента простоя проидет от 200 до 280 минут

Теперь поставки.
Формирование заявки 60 минут
Формирование поставки 40-80 минут
Доставка 55-65 минут
Таким образом от момента снижения запасов до 3 комплектов до момента возобновления запасов пройдет от 155 до 205 минут


Если вы сравните время до начала простоя - 200-280 минут с временем на возобновление запасов 155-205 минут, то увидете, что эти два интервала пересекаются по интервалу 200-205 вот и 5 минут.
Большой цикл требует, чтобы цех потребил 20 комплектов это около 20 часов.
Кстати забавный вопрос. При пополнении запасов на склад цеха присылают 17 комплектов или 20? Из условия не понятно.

Теперь о протоколе. Очень полезно уметь это делать.
В вашей ситуации можно не мудрить, а делать записи о каждом действии. Получите строк 500.
Я имею в виду следующее.
В вашей модели есть несколько видов событий
1. Передача комплекта в цех. Записываем "Время. В цех. Остаток М комплектов"
2. Отправка заявки на центральный склад. Записываем "Время. Заявка."
3. Конец комплектации.  Записываем "Время. Комплектация"
4. Поставка комплектов на склад цеха.  Записываем "Время. Поставка"

Если ваша программа запишет это в текстовый файл, то вы легко поймете в чем причина.
Успехов.


Цитата(Миринда @  17.5.2013,  21:48 Найти цитируемый пост)
Цитата

Предложите удвоить время формирования заявки - тогда простой почти гарантирован каждый раз.


 - боюсь препод меня не поймет, ведь это означает изменить условия задачи. 

А вы для себя попробуйте. Если простоев не будет - у вас точно ошибка.


--------------------
Mirkes
PM MAIL   Вверх
Миринда
Дата 19.5.2013, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 18.3.2012

Репутация: нет
Всего: нет



Здравствуйте. 
Цитата

Кстати забавный вопрос. При пополнении запасов на склад цеха присылают 17 комплектов или 20? Из условия не понятно.
 Я почему-то уверена что присылают 17 комплектов.
Я уже совсем запуталась, каша в голове. Времени на долгие раздумья у меня совершенно нет, поэтому просто взяла да присвоила времени простоя случайное число от 1 до 6, полученное Random-ом, которое влияет на расчет вероятности простоя. Да вот что-то не всегда вероятность получается от 0 до 1. Буквально через раз вычисляется то "4", то "8".
Добавила лишь эти строчки:

Код

if  NminEdit.Text = inttostr(3) then
            Tprost := 1+Random(6);

Может не туда их прописала?

Это сообщение отредактировал(а) Миринда - 19.5.2013, 20:12

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  Готовая_программа.rar 243,47 Kb
PM MAIL   Вверх
Mirkes
Дата 20.5.2013, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



К сожалению у меня нет под рукой паскаля.
Не совсем понял про вероятность.
В паскале две принципиально разные функции получения случайного числа, причем имя у них одно.
Если вы пишете
i:=Random(6);
то вы просите ЦЕЛОЕ число от нуля до 5.
Если вы пишете 
i:=Random();
то вы просите ДЕЙСТВИТЕЛьное число в диапазоне от 0 до 1.


--------------------
Mirkes
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0744 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.