Разработка программной модели целесообразного поведения индивида в стационарных средах (автомат Крылова ("осторожный"))

Автор: Пользователь скрыл имя, 17 Января 2012 в 08:49, курсовая работа

Описание работы

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

Содержание

Введение………………………………………………………………….3
Выбор и обоснование средств информационной системы……………4
2.1. Требования к системе и ее контекст. Диаграмма использования UML…………………………………………………………………………5
2.2. Состав технических устройств (ЭВМ, устройства связи), система интерфейсов……………………………………………………………………….5
2.3. Способы взаимодействия пользователя с системой, организация вычислительных процессов………………………………………………………6
2.4. Состав информационного и программного обеспечения…………...8
2.4.1. Структура и форматы данных………………………………………8
2.4.2. Описание процедур………………………………………………...9
Указания по использованию программы…………………………15
Результаты эксперимента…………………………………………16
Взаимодействие процедур и данных……………………………...17
Ш. Заключение…………………………………………………………………...19
3.1.Достоинства и недостатки разработанной информационной системы…………………………………………………………………………...19
3.2. Пути совершенствования разработанного программного продукта…………………………………………………………………………..19
3.3. Рекомендации пользователю………………………………………...19
IV. Используемая литература…………………………………………………...20
Приложение……………………………………………………………………....21

Работа содержит 1 файл

курсач.doc

— 273.00 Кб (Скачать)

            shag = shag + 1

            shag1 = shag1 + 1

            Else

            shag = shag + 1

            shag1 = shag1 + 1

         End If

Else

         If iNum = 0 Then

             If sostoianie > 0 Then

                sostoianie = sostoianie - 1

                shag = shag + 1

                shag1 = shag1 + 1

             Else

                   If deistvie < 2 Then

                      deistvie = deistvie + 1

                   Else

                      deistvie = 0

                   End If

                sostoianie = 0

                shag = shag + 1

                shag1 = shag1 + 1

              End If

          Else

               shag = shag + 1

               shag1 = shag1 + 1

          End If

End If

RaiseEvent step

End Sub 

Public Sub func2(ByVal ocenkasost As Double, ByVal ver As Double, ByVal iNum As Integer)

If ocenkasost > ver Then

      If sostoianie < glubina Then

         sostoianie = sostoianie + 1

         shag = shag + 1

         shag2 = shag2 + 1

       Else

         shag = shag + 1

         shag2 = shag2 + 1

       End If

Else

      If iNum = 0 Then

          If sostoianie > 0 Then

             sostoianie = sostoianie - 1

             shag = shag + 1

             shag2 = shag2 + 1

          Else

                   If deistvie < 2 Then

                      deistvie = deistvie + 1

                    Else

                       deistvie = 0

                    End If

             sostoianie = 0

             shag = shag + 1

             shag2 = shag2 + 1

          End If

     Else

       shag = shag + 1

       shag2 = shag2 + 1

      End If

End If

RaiseEvent step

End Sub 

Public Sub func3(ByVal ocenkasost As Double, ByVal ver As Double, ByVal iNum As Integer)

If ocenkasost > ver Then

     If sostoianie < glubina Then

        sostoianie = sostoianie + 1

        shag = shag + 1

        shag3 = shag3 + 1

     Else

        shag = shag + 1

        shag3 = shag3 + 1

     End If

Else

     If iNum = 0 Then

         If sostoianie > 0 Then

            sostoianie = sostoianie - 1

            shag = shag + 1

            shag3 = shag3 + 1

         Else

              If deistvie < 2 Then

                 deistvie = deistvie + 1

              Else

                  deistvie = 0

              End If

            sostoianie = 0

            shag = shag + 1

            shag3 = shag3 + 1

         End If

      Else

         shag = shag + 1

         shag3 = shag3 + 1

      End If

End If

RaiseEvent step

End Sub

      Блок - схема алгоритма func1, func2, func3:

      Пример  вызова функций func1, func 2, func 3:

      krug.func1 ocenka1, porog1, generator1

      krug.func2 ocenka2, porog2, generator2

      krug.func3 ocenka3, porog3, generator3

      krug_step()- функция проверяющая количество пройденных шагов и дающая характеристику поведения:

      Private Sub krug_step()

          If krug.steps > 0 Then

              socet1.SendData Str(krug.deistvie) + ";" + Str(krug.sostoianie)

              socet2.SendData Str(krug.deistvie) + ";" + Str(krug.sostoianie)

              socet3.SendData Str(krug.deistvie) + ";" + Str(krug.sostoianie)

              btnLetOut.Caption = "Шаги: " + Str(krug.shag) + " : " + Str(krug.shag1) + " : " + Str(krug.shag2) + " : " + Str(krug.shag3)

              krug.steps = krug.steps - 1

          Else

              If ((porog1 + porog2 + porog3) / 3) > (krug.shag / Val(txtSteps.Text)) Then

                  Server.txtReasonability = "Эффективно"

              Else

                  Server.txtReasonability = "Не эффективно"

              End If

              socet1.Close

              socet2.Close

              socet3.Close

              labelClient.Caption = "Эксперимент закончен!!!"

          End If

      End Sub

 

Функция перерисовки:

Private Sub Form_Paint()

    Dim h As Integer

    Dim w As Integer

    Dim i As Integer

    Dim d As Integer

    Dim r As Integer

    Dim x As Integer

    Dim y As Integer

   

    h = Client.Height

    w = Client.Width

    q = Val(txtGlubina.Text)

    d = h / 2 / q

    If w > d Then

        r = d / 2

    Else: r = w / 2

    End If 

   x = w / 1.3

    y = h / 4

    For i = 0 To q - 1

        Circle (x, y + i * d), r, vbGreen

        If i = sostoianie And deistvie = 0 Then

            For j = 0 To r

                Circle (x, y + i * d), j, vbGreen

          Next

        End If

    Next

End Sub 
 

     Внутри процедуры Form_Paint()используется стандартная    

     библиотечная функция рисование окружности- Circle (x, y + i * d), r, vbBlack.

         Пример вызова функции Form_Paint():Client.Refresh 

         Указания по использованию программы:

         Для того что бы воспользоваться данным программой необходимо выполнить следующие действия:

         На первой машине запустить  Сервер и Клиент1, на двух следующих Клиент2, Клиент3. В поле Remote Host на втором и третьем клиенте указать IP-адрес сервера.

         Заполнить соответствующие поля, необходимые для эксперимента. Затем  на всех клиентах установить  соединение с сервером с помощью  кнопки Соединить, на сервере нажать кнопку- Запустить.

        Во  время эксперимента в поле  Текущая оценка и штраф каждого клиента будут появляться три числа: оценка, вероятность штрафа и 0 или 1.

    По окончанию  в поле Behaviour is будет выведен результат эксперимента (то есть характеристика поведения при заданных параметрах).

    Результаты  эксперимента:

Параментры

№ экспе-римента

Количество  шагов Время Глубина Порог1 Порог 2 Порог 3 Кол1 Кол2 Кол3 Результаты
1

2

3

4

5

150

150

150

50

100

50

50

50

500

50

4

4

4

4

4

0,5

0,1

0,9

0,1

0,9

0,5

0,9

0,1

0,1

0,9

0,5

0,5

0,4

0,1

0,9

41

120

10

30

23

64

10

113

20

44

45

20

27

0

33

эффективно

Не эффективно

Не эффективно

Не эффективно

эффективно

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
      1. Взаимодействие  процедур и данных

Диаграмма классов для Сilent1:

Диаграмма классов для Сilent2: 

 
 

Диаграмма классов для Сilent3:

 

Диаграмма классов для Server:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ш. Заключение

      1. Достоинства и недостатки разработанной информационной системы.

     Недостатки:

1.  Для изменения данных необходимо перезапустить программу.

2. Не возможно добавить дополнительное действие (ветки)  в процесс моделирования без внесения изменений в текст программы.

     Достоинства:

  1. При моделировании предусмотрена возможность выполнять заданного количества шагов.
  2. Простая реализация алгоритма моделирования.

    3.2. Пути совершенствования разработанного программного продукта.

1. Возможное  улучшение быстродействия работы алгоритма;

2. Модернизация программы для возможности переноса ее на другую платформу.

    1. Рекомендации пользователю.

     Для проведения повтор эксперимента необходимо выполнить перезапуск модулей. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

IV. Используемая литература. 

  1. Варшавский  В. И. , Поспелов Д. А. Оркестр играет без дирижера. М. “Наука”, 1984;
  2. Крейг Дж. К. И Уэбб Дж. Microsoft Visual Basic 6.0. Москва. «Русская редакция», 2001.

Информация о работе Разработка программной модели целесообразного поведения индивида в стационарных средах (автомат Крылова ("осторожный"))