授業用資料

 

 数値シミュレーション

 情報システムの最適化

 IT経営戦略

 研究室情報

 リンク

  [english]



(このページは該当講座受講登録者向けの情報です)
ビジネスシミュレーション特講


ビジネスシミュレーション 1回目
1.ファイルのダウンロード
下記のダウンロードファイルを右クリックして、対象をファイルに保存を選択し、マイドキュメントに保存する
 結果評価ファイル(main1.xls)

2.データの入力
2-1. main1.xlsを開き、「A社」「B社」「C社」「D社」シートの左上、意思決定値入力欄に下記を入力する。

ヒント:1期目のマーケットサイズ 安いノートPCの需要数 800台(3ヶ月単位)

意 思 決 定 値
予想順位     (1から4までの順位を入力)
受注予想数量  (マーケットサイズを4社で割った数だと200台になる)
仕入数量    (仕入数が足りなければ売り切れになり、利益が減る。多ければ在庫に残る)
販売価格   (今回は仕入価格が5万円)
広告費  今回はこの項目は4000000固定として下さい

    右側の損益計算書という項目の当期純利益を確認
    貸借対照表の借入金の項目を確認

2-1.上記1期の意思決定を決定して「意思決定記録表(練習用)」シートに入力する。
2-3.main.xlsを開き、「A社」「B社」「C社」「D社」シートに値(上記の)を入力する。
2-4.2期の意思決定を入力
 2期の意思決定を行ってシートへ入力する。

2-5.経営結果の確認と考察
 各社の結果をmain1.xlsを開き、「A社」「B社」「C社」「D社」シートに値(上記の)を入力する

2-6.取締役会の実施と経営結果の確認
  main1.xlsの計画実績比較表を見る。
   損益計算書が赤字になった場合は、何故赤字になったのかを考察する。
   また黒字が得られたとしても、販売数量が予定よりも少ない場合は、何故予想が外れたのかを考察する。

   企業別業績表シートで、各企業を比較して、どうしてそのような差が生じたのかを考察する。

   意思決定パターン図表シートと、経営業績パターン図表で、自分達の行った経営パターンを確認する。
   意思決定パターン図表の説明
    積極販売型:販売価格と広告費が積極的なパターン
    価格重視型:広告費は抑えて、販売価格のみで勝負するパターン
    広告重視型:販売価格は消極的で、広告費のみで勝負するパターン
    消極販売型:問題があり、改善が必要なパターン

   経営業績パターン図表の説明
    業界リード型:マーケットシェアと当期純利益の双方が高いパターン
    薄利多売型: マーケットシェアは高いが、当期純利益が低いパターン
    堅実合理型: マーケットシェアは低いが、当期純利益が高いパターン
    改善期待型: 問題があり、改善が必要なパターン

2-7.経営分析
   上記の分析を行い、取締役会で話し合った統一見解を、メモしておき、下記の次回の課題で記載する。

2-8.各期の経営実施
   4-4へ戻って、次期の意志決定を行う。

2-9.期末の取締役会実施と期末経営結果の確認
  4期を終えたら、下記の各期別のデータを確認して経営分析を行う。
   期別業績表:main1.xlsの期別業績表シート
   意思決定結果グラフ(期別): main1.xlsの意思決定結果グラフシート
   意思決定結果グラフ(企業別):main1.xlsの意思決定結果グラフシート
   業績結果グラフ(期別):   main1.xlsの期別業績結果グラフシート
   業績結果グラフ(企業別):  main1.xlsの期別業績結果グラフシート

  累積純利益が一番高くなった企業が勝者となる。

補足
販売価格の設定方法
固定費として各期毎に
 給与+家賃=3,300,000 が必要となる。

販売価格×販売個数−仕入価格×仕入個数−固定費−販売費(広告費)>0

在庫が残らないと仮定して、簡略化すると
 (販売価格−仕入価格)×個数−固定費−販売費(広告費)>0

具体的には次の式が成り立つような販売価格を設定する
 (販売価格−50,000)×受注予想数量−3,300,000-4,000,000>0

ビジネスシミュレーション 応用編
 今回は広告による売り上げの増減がある場合であり、他の条件も異なる。
また前回よりも仕入値が高くなり、マーケットサイズが今回は不明となっているが、1期目は前回の800を想定し始めて下さい。
注意:前回とは仕入原価も異なるので、配布資料(グループ用)を見て考えること
 進め方や作業の流れ自体は、これまでのの作業手順と同様である。
 エクセルファイルのみ、下記のダウンロードファイルを右クリックして、
対象をファイルに保存を選択し、マイドキュメントに保存し直して下さい。
 結果評価ファイル(main_ver2.xls)
販売価格の設定方法
販売価格×販売個数−仕入価格×仕入個数−固定費−販売費(広告費)>0

在庫が残らないと仮定して、簡略化すると
 (販売価格−仕入価格)×個数−固定費−販売費(広告費)>0

  -------広告費の費用対効果の評価式の例---------------
   その1 (最も広告費が高額な会社の販売数量−最も広告費が廉価な会社の販売数量)
        ÷(最も高額な会社の広告費−最も廉価な会社の広告費)
   その2 (最も広告費が高額な会社の当期純利益−最も広告費が廉価な会社の当期純利益)
        ÷(最も高額な会社の広告費−最も廉価な会社の広告費)
    (実際は、人気店では、商品在庫が無くなって売れるのに売れない事が起きる。
    ケースバイケースで簡単には行かないが、単純に上記でも十分評価は可能)
  -------価格戦略の費用対効果の評価式の例-------------
   その1 (最も価格が安い会社の販売数量−最も価格が高い会社の販売数量)
        ÷(最も価格の安い会社の販売費−最も価格の高い会社の販売費)
   その2 (最も価格が安い会社の当期純利益−最も価格が高い会社の当期純利益)
        ÷(最も価格の安い会社の販売価格−最も価格の高い会社の販売価格)
    (実際は、人気店では、商品在庫が無くなって売れるのに売れない事が起きる。
    ケースバイケースで簡単には行かないが、単純に上記でも十分評価は可能)

AIプログラミング(参考図書:はじめての人工知能)
パーセプトロンによる文字認識
ホップフィールドネットワークによる文字認識
AIプログラミング(参考図書:はじめての人工知能)
パーセプトロンによる文字認識
ホップフィールドネットワークによる文字認識

日本大学生産工学部 人工知能RG: AIプログラミング資料

Google Colaboratory Python実行環境
#Pythonの簡易プログラム(#以降はコメント)
a = 1; b = 10; c = a + b
print (c);
print ("こんにちは");

#Pythonによる単純回帰分析
import itertools #効率的なループ処理のためのイテレータ関数を使えるようにする
import numpy as np #数学関数や数値計算を行うライブラリ
import pandas as pd #データ解析を支援するライブラリ 機械学習などで必須
import matplotlib.pyplot as plt #matplotlibは Pythonでグラフを作るライブラリ
import seaborn as sns #seabornは matplotlibをさらに見栄えよくするライブラリ
from sklearn import linear_model #sklearnは Pythonの代表的な機械学習のライブラリ
from sklearn import datasets #サンプルデータを使うためのライブラリ
sns.set() #seabornをセットして見栄えの良いグラフにする処理

wine_data = datasets.load_wine() #データ(セット)を読み込む
wine = pd.DataFrame(wine_data.data, columns=wine_data.feature_names) # 読み込んだデータ(セット)を解析用のpandasライブラリにセットする
clf = linear_model.LinearRegression() #単純回帰分析のためのライブラリを準備する
wine.head()

X = wine.loc[:, ['total_phenols']].values # 説明変数に ポリフェノール量 を利用
Y = wine['flavanoids'].values # 目的変数に 色素量 を利用

clf.fit(X,Y) #単純回帰分析を実行する
print("回帰係数=", clf.coef_) #回帰係数を表示する
print("切片:",clf.intercept_) #回帰直線の切片を表示する
print("決定係数R^2=",clf.score(X, Y)) #決定係数
plt.xlabel('total_phenols')
plt.ylabel('flavanoids')
plt.scatter(X, Y) #散布図を描画
plt.plot(X, clf.predict(X)) #回帰直線を描画

#課題 これを基に説明変数に alcohol、目的変数に flavanoids色素量 を利用して回帰分析をしなさい

アヤメの分類 versicolorブルーフラッグ、virginicaバージニカ、setosaヒオウギアヤメ

(出典: そうだ!研究しよう https://kenyu-life.com/2019/05/14/iris/)

#アヤメのSVMによる機械学習による分類
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import load_iris
iris = load_iris()
#データフレームにしておくと、データを扱いやすくなる
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['target'] = iris.target
#データ説明 0(=setosa), 1(=versicolor), 2(=virginica)
df.loc[df['target'] == 0, 'target'] = "setosa"
df.loc[df['target'] == 1, 'target'] = "versicolor"
df.loc[df['target'] == 2, 'target'] = "virginica"
sns.pairplot(df, hue="target")
# データを定義
x = iris.data[:, [0, 2]]
y = iris.target

# グラフに関する処理
width = .05 # step size in the mesh
x_min, x_max = x[:, 0].min() - .5, x[:, 0].max() + .5
y_min, y_max = x[:, 1].min() - .5, x[:, 1].max() + .5
xx, yy = np.meshgrid(np.arange(x_min, x_max, width), np.arange(y_min, y_max, width))

# 決定境界を図にして可視化する処理
def decision_boundary(clf, x, y, ax, title):
    clf.fit(x, y)
    Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
    Z = Z.reshape(xx.shape)
    ax.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)
    ax.scatter(x[:, 0], x[:, 1], c=y, edgecolors='k', cmap=plt.cm.Paired)
    # label
    ax.set_title(title)
    ax.set_xlabel('sepal length')
    ax.set_ylabel('petal length')

#線形サポートベクタマシンLinearSVCを使った分類処理
from sklearn.svm import LinearSVC
fig, axes = plt.subplots(1, 3, figsize=(10, 3))

#C は正則化の度合いを調整するパラメータ Cが小さいと大雑把な近似、Cが大きいと詳細に近似するが過学習になる
for ax, C in zip(axes, [0.01, 1, 100]):
    title = "C=%s"% (C)
    clf = LinearSVC(C=C)
    decision_boundary(clf, x, y, ax, title)

#--------------------------ここまで----------------------------------
#ニューラルネットワークを用いた分類処理(上記の緑色の部分を置き換える)
from sklearn.neural_network import MLPClassifier
fig, axes = plt.subplots(1, 4, figsize=(12, 3))
for ax, n in zip(axes, [15, 15, 15, 15]):
    title = ""
    clf = MLPClassifier(hidden_layer_sizes=[n, n])
    decision_boundary(clf, x, y, ax, title)


#サポートベクタマシンSVMによる文字認識
from sklearn.model_selection import train_test_split
from sklearn import datasets,svm,metrics
from sklearn.metrics import accuracy_score

digits = datasets.load_digits()
print(digits.data)
x = digits.images
y = digits.target
#二次元配列を一次元配列に変換8bit×8bit(8行×8列)を64個のデータに並べなおす
x = x.reshape((-1,64))

# 画像データセットの最初から10つ[:10]を取り出して評価する
import matplotlib.pyplot as plt
images_and_labels = list(zip(digits.images, digits.target))
for index, (image, label) in enumerate(images_and_labels[:10]):
    plt.subplot(2, 5, index + 1)#画像を複数の領域(2行×5列)に分ける、最後のindex+1は画像を描画する場所(何番目か)を指定している
    plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')
    plt.axis('off')
    plt.title('Training: %i' % label)
plt.show()

# 元のデータを学習用データと、後で検証するためのテスト用データに分割する
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2)

# 教師データを元にAIに機械学習を行う
clf = svm.LinearSVC()
clf.fit(x_train, y_train)

# AIに予測させて、全体で何%正解したのかを表示
y_pred = clf.predict(x_test)
print('正解率:')
print(accuracy_score(y_test, y_pred))

print('特定の文字列を認識')#画像データセットの最後から2つ[-2:]を取り出して評価する
for index, (image, label) in enumerate(images_and_labels[-2:]):
    plt.subplot(2, 2, index + 1)#画像を複数の領域(2行×2列)に分ける、最後のindex+1は画像を描画する場所(何番目か)を指定している
    plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')
    plt.axis('off')
    plt.title('Training: %i' % label)
plt.show()
clf.fit(digits.data[-2:], digits.target[-2:])
y_pred1 = clf.predict(digits.data[-2:])
print('予測した数字:')
print(y_pred1)

その他
数値シミュレーションエクセルファイル

数値シミュレーションJavaファイル

数値シミュレーション2次元解析Javaファイル