要約
日本でも、世界中で注目されているプログラミング言語の一つであるPythonを活用した事例が増えてきています。
今回は、日本の企業がPythonをどのように活用しているか、実際のコードを交えながら紹介していきたいと思います。
詳細内容
1. 運輸業界のスケジュール最適化日本の大手運輸会社である佐川急便は、Pythonを活用して輸送スケジュールを最適化するシステムを導入しています。
このシステムは、配送先や配送量、車両の種類・数、交通事情などの複数の要素をもとに最適なルートプランを作成するために、オープンソースの最適化ライブラリ「PuLP」を使用しています。
以下は、PuLPライブラリを使用して最適化問題を解くPythonコードの例です。
“`python
from pulp import *# 制約条件
capacities = {‘Vehicle1’: 30, ‘Vehicle2’: 20, ‘Vehicle3’: 50}
demand = {‘Customer1’: 10, ‘Customer2’: 15, ‘Customer3’: 30, ‘Customer4’: 25}
routes = [(‘Vehicle1’, ‘Customer1’), (‘Vehicle1’, ‘Customer2’), (‘Vehicle2’, ‘Customer3’), (‘Vehicle3’, ‘Customer4’)]# 問題の定義
model = LpProblem(‘Vehicle Routing Problem’, LpMinimize)# 変数の定義
route_vars = LpVariable.dicts(‘Route’, routes, lowBound=0, upBound=1, cat=LpInteger)# 目的関数
model += lpSum([route_vars[(v, c)] for (v, c) in routes]), ‘Total cost’# 制約条件の追加
for c in demand:
model += lpSum([route_vars[(v, c)] for v, c in routes if c == c]) == demand[c], ‘Demand_%s’%c
for v in capacities:
model += lpSum([route_vars[(v, c)] for v, c in routes if v == v]) <= capacities[v], 'Capacity_%s'%v# 問題の解決
model.solve()# 結果の出力
print("Total Cost = ", value(model.objective))
for v in capacities:
for c in demand:
if route_vars[(v, c)].value() == 1:
print(v, ":", c)
```2. 自動化されたファイル処理株式会社キャンパスワークスは、Pythonを利用して自動化されたファイル処理プログラムを開発しています。
このプログラムは、指定されたディレクトリ内のファイルを自動的に分類し、データベースに格納することができます。
以下に、ファイル分類のためにPythonを使用したコード例を示します。
“`python
import os
import sys
import shutil# ファイルの分類先を指定する辞書型変数
file_extentions = {
‘Images’: [‘.jpeg’, ‘.jpg’, ‘.png’, ‘.gif’, ‘.bmp’],
‘Documents’: [‘.doc’, ‘.docx’, ‘.pdf’, ‘.xls’, ‘.xlsx’, ‘.ppt’, ‘.pptx’],
‘Media’: [‘.mp3’, ‘.mp4’, ‘.avi’, ‘.wmv’, ‘.mkv’],
‘Data’: [‘.csv’,’.dat’,’.db’,’.json’,’.xml’,’.zip’,’.rar’,’.7z’]
}# ファイルを移動させる関数
def move_file(src, dest):
if not os.path.exists(dest):
os.makedirs(dest)
shutil.move(src, dest)# ファイルを分類する関数
def sort_files(folder_path):
for dirpath, dirnames, filenames in os.walk(folder_path):
for file in filenames:
file_ext = os.path.splitext(file)[1]
for folder, extensions in file_extentions.items():
if file_ext in extensions:
move_file(os.path.join(dirpath, file), os.path.join(dirpath, folder))# ディレクトリを指定してファイルを分類する
sort_files(‘/Users/username/Downloads’)
“`3. ファイルの重複削除日本の電力会社である東京電力パワーグリッドは、Pythonを活用して電力データに対する不要なファイルの重複削除を自動化するシステムを導入しています。
以下に、ファイルの重複削除のためにPythonを使用したコード例を示します。
“`python
import os
import hashlib# ファイルの重複チェックを行う関数
def check_duplicates(folder_path):
# ファイルのハッシュ値を管理する辞書型変数
file_hashes = {}
# フォルダ内の全てのファイルに対してハッシュ値を計算し、重複しているものを検出する
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
with open(file_path, ‘rb’) as f:
file_hash = hashlib.md5(f.read()).hexdigest()
if file_hash in file_hashes:
os.remove(file_path)
else:
file_hashes[file_hash] = file_path# ディレクトリを指定して重複ファイルを削除する
check_duplicates(‘/Users/username/Documents’)
“`
コメント