назад Оглавление вперед


[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [ 238 ] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293]


238

18.7. Языки имитационного моделирования

Основная роль программы в этом случае сводится к автоматизации процесса получения случайных значений, имеющих соответствующее распределение, хронологическому накоплению, обработке событий и сбору данных, относящихся к модели.

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

Процедурно-ориентированные языки управляются теми же действиями, что и языки, ориентированные на планирование событий. Отличие состоит в том, что эти действия автоматизированы для освобождения пользователя от утомительных вычислительных и логических деталей. В некотором отношении можно рассматривать процедурно-ориентированные языки как основанные на концепции "черного ящика", имеющего заданные "вход" и "выход". Это означает, что процедурно-ориентированные языки просты и легки в использовании благодаря гибкости процесса моделирования.

Наиболее известными языками программирования, ориентированными на планирование событий, являются SIMSCRIPT, SLAM и SIMAN. Развитие этих языков на протяжении многих лет привело к тому, что они включают и возможности процедурно-ориентированных языков. Все эти языки позволяют пользователю создавать модели (или их отдельные части) на языках высокого уровня, таких как FORTRAN и С. Это необходимо для того, чтобы дать возможность пользователю программировать сложные логические операции, которые невозможно или трудно осуществить обычными средствами этих языков. Главной причиной этого является ограничительная и, возможно, запутанная процедура, с помощью которой данные языки перемещают транзакции (или объекты) между очередью и сервисами, присутствующими в модели.

Первым процедурно-ориентированным языком был GPSS. Этот язык, первая версия которого появилась в начале 1960-х годов, совершенствовался на протяжении нескольких лет, чтобы удовлетворить новым требованиям, связанным с моделированием сложных систем. Чтобы эффективно использовать этот язык, пользователю необходимо настроить примерно восемьдесят различных блоков. Несмотря на многие годы использования GPSS, язык все еще имеет некоторые трудно объяснимые особенности моделирования. Примером может служить необходимость аппроксимировать непрерывные распределения вероятностей их кусочно-линейными аналогами. Справедливости ради заметим, что некоторые последние версии этого языка обеспечивают возможности использования и непрерывных распределений (например, экспоненциального и нормального). Однако при имеющихся громадных возможностях современных компьютеров трудно понять, почему такое препятствие продолжает так долго существовать.

В настоящее время на рынке программных продуктов для моделирования доминируют коммерческие пакеты, такие как Arena, AweSim и GPSS/H. Эти пакеты обладают развитым интерфейсом, что упрощает пользователю процесс создания имитационных моделей. Они также имеют анимационные средства, визуализирующие изменения, происходящие в модели во время имитации. Однако для опытных поль-



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

УПРАЖНЕНИЯ 18.77

1. Клиенты случайным образом прибывают на почтовое отделение, в котором работают три служащих. Время между их приходами является случайной величиной, распределенной по экспоненциальному закону с математическим ожиданием 5 мин. Время, затрачиваемое служащим на обслуживание клиента, имеет экспоненциальное распределение с математическим ожиданием 10 мин. Все прибывающие клиенты формируют единую очередь и ожидают первого освободившегося служащего. Используйте имитационную модель системы для исследования ее работы на протяжении 480 мин., чтобы определить

a) среднее число клиентов, ожидающих в очереди;

b) среднюю занятость служащих.

2. Телевизионные блоки прибывают для проверки на ленточный конвейер с постоянной скоростью пять единиц в час. Время проверки блока является случайной величиной, равномерно распределенной между 10 и 15 мин. Предыдущий опыт показывает, что 20 % проверенных блоков должны быть отрегулированы и отправлены на повторную проверку. Время регулировки также является случайной величиной, равномерно распределенной между 6 и 8 мин. Используйте имитационную модель системы для исследования ее работы на протяжении 480 мин., чтобы вычислить

a) среднее время, необходимое для проверки одного блока;

b) среднее количество повторных проверок, которые должен пройти телевизионный блок перед выходом из системы.

3. Мышь находится в лабиринте и отчаянно пытается из него выбраться. Проведя в попытках выбраться от 1 до 3 мин. с равномерным распределением, в 30 % случаев она находит выход из лабиринта. В случае неудачи она бродит бесцельно от 2 до 3 мин. с равномерным распределением и, в конце концов, останавливается в месте, откуда она начинала, но лишь для того, чтобы попробовать еще раз. Мышь может пытаться выбраться на свободу столько раз, сколько она хочет, но всему есть предел. Истратив много энергии на многочисленные попытки выбраться на свободу, мышь непременно умрет, если не успеет выбраться за период времени, имеющий нормальное распределение с математическим ожиданием 10 мин. и стандартным отклонением 2 мин. Постройте имитационную модель для оценки вероятности того, что мышь освободится. С этой целью предположите, что в модели будет использовано 100 мышей.

4. На финальной стадии сборки автомобиль движется по конвейеру между двумя параллельными рабочими местами, чтобы можно было выполнять работы как с левой, так и с правой стороны одновременно. Время выполнения работ с каждой стороны является равномерно распределенной случайной величиной с интервалом изменения от 15 до 20 мин. и от 18 до 22 мин. соответственно.

7 Решите эти упражнения, используя какой-либо язык имитационного моделирования по своему выбору или языки программирования Basic, FORTRAN или С.



Литература

Конвейер прибывает на рабочие места каждые 20 минут. Постройте имитационную модель работы сборочного конвейера на протяжении 480 мин. для определения времени использования рабочих мест слева и справа от машины.

5. Время между прибытием машин на пункт мойки с одним обслуживающим устройством является случайной величиной, распределенной по экспоненциальному закону с математическим ожиданием 10 мин. Автомобили выстраиваются в одну очередь, которая может поместить максимум пять ожидающих автомобилей. Если очередь заполнена, вновь прибывший автомобиль уезжает. Время мойки машины является случайной величиной, равномерно распределенной на интервале от 10 до 15 мин. Постройте имитационную модель работы системы на протяжении 960 мин. и найдите время пребывания автомобиля на пункте мойки.

ЛИТЕРАТУРА

1. Box G. and Muller М. "A Note on the Generation of Random Normal Deviates", Annals of Mathematical Statistics, Vol. 29, pp.610-611, 1958.

2. Law A. and Kelton W. Simulation Modeling & Analysis, 3rd ed., McGraw-Hill, New York, 2000.

3. Ross S. A Course of Simulation, Macmillan, New York, 1990.

4. Rubenstein R., Melamed B. and Shapiro A. Modern Simulation and Modeling, Wiley, New York, 1998.

5. Taha A. Simulation Modeling and SIMNET, Prentice Hall, Upper Saddle River, N. J., 1988.

Литература, добавленная при переводе

1. Ермаков С. М. Метод Монте-Карло и смежные вопросы. - М.: Наука, 1975.

2. Мур Дж., Уэдерфорд Л. Экономическое моделирование в Microsoft Excel. - М.: Издательский дом "Вильяме", 2004.

3. Нейлор Т. Машинные имитационные эксперименты с моделями экономических систем. - М.: Мир, 1978.

4. Соболь И. М. Численные методы Монте-Карло. - М.: Наука, 1973.

5. Шеннон Р. Имитационное моделирование систем - искусство и наука. - М.: Мир, 1978.

[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [ 238 ] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293]