免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

python的運(yùn)籌學(xué)工業(yè)場(chǎng)景模擬第八十四篇:讀取零件BOM物料清單,拆解產(chǎn)品物料消耗,生成物料消耗系數(shù)矩陣。

python的運(yùn)籌學(xué)工業(yè)場(chǎng)景模擬第八十四篇:讀取零件BOM物料清單,拆解產(chǎn)品物料消耗,生成物料消耗系數(shù)矩陣。 BOM“翻譯機(jī)”用Python拆解物料清單把“層級(jí)結(jié)構(gòu)”變成“消耗系數(shù)矩陣”“某工程機(jī)械廠有 3 大系列產(chǎn)品、87 種自制件、近 300 種原材料。計(jì)劃員每月做主生產(chǎn)計(jì)劃MPS需要把產(chǎn)品產(chǎn)量換算成原材料需求。但 BOM物料清單是多層樹狀結(jié)構(gòu)整機(jī) → 部件 → 零件 → 原材料。人工一層層拆解算 3 天還經(jīng)常漏算、錯(cuò)算。上個(gè)月因?yàn)槁┧爿S承鋼需求導(dǎo)致關(guān)鍵零件停產(chǎn) 2 天損失 42 萬(wàn)。后來我寫了個(gè)BOM 拆解器0.8 秒讀完 87 種自制件的 BOM自動(dòng)生成 3 大系列 × 300 種原材料的消耗系數(shù)矩陣直接喂給 PuLP 做線性規(guī)劃。廠長(zhǎng)說‘原來不是計(jì)劃員不行是我們?nèi)眰€(gè)能把 BOM 翻譯成數(shù)學(xué)語(yǔ)言的工具?!薄?參考北京理工大學(xué)《運(yùn)籌學(xué)》第 4 章“運(yùn)輸與存儲(chǔ)問題”、第 7 章“網(wǎng)絡(luò)流與圖論”一、實(shí)際應(yīng)用場(chǎng)景描述BOM 拆解 → 物料消耗系數(shù)矩陣生成器是任何涉及生產(chǎn)計(jì)劃、物料需求、成本優(yōu)化的“數(shù)據(jù)翻譯工具”。凡是“產(chǎn)品由零件組成、零件由材料構(gòu)成”的地方都是它行業(yè) 生產(chǎn)場(chǎng)景 BOM 痛點(diǎn) 優(yōu)化風(fēng)險(xiǎn)工程機(jī)械 整機(jī)裝配 多層BOM5~7層 原材料缺料停產(chǎn)汽車制造 整車生產(chǎn) 數(shù)萬(wàn)種零部件 MRP運(yùn)算失真電子裝配 PCBA制造 元器件替代關(guān)系復(fù)雜 采購(gòu)計(jì)劃偏差家電生產(chǎn) 整機(jī)總裝 自制件外協(xié)件混合 產(chǎn)能分配失衡航空航天 型號(hào)研制 構(gòu)型管理嚴(yán)格 物料追溯困難化工生產(chǎn) 配方管理 原料配比精確 成本失控核心矛盾- ERP 里的 BOM 是“樹狀層級(jí)結(jié)構(gòu)”父項(xiàng)-子項(xiàng)適合工程管理和生產(chǎn)領(lǐng)料- 線性規(guī)劃PuLP/Scipy需要的是“消耗系數(shù)矩陣”產(chǎn)品→原材料一行一個(gè)產(chǎn)品一列一種材料- 人工拆解多層 BOM 耗時(shí)、易錯(cuò)導(dǎo)致物料需求計(jì)算失真- 沒有準(zhǔn)確的消耗系數(shù)矩陣生產(chǎn)計(jì)劃優(yōu)化就是“空中樓閣”。┌──────────────────────────────────────────────────────────────┐│ BOM拆解器 · 物料消耗系數(shù)矩陣生成器 · BOM翻譯機(jī) ││ ││ 【業(yè)務(wù)場(chǎng)景】 ││ ┌─────────────────────────────────────────────────────────┐││ │ 輸入: 企業(yè)BOM物料清單(Excel/CSV) │││ │ ? 物料主數(shù)據(jù)(編碼、名稱、類型、單位) │││ │ ? BOM結(jié)構(gòu)(父項(xiàng)編碼、子項(xiàng)編碼、用量、損耗率) │││ │ ? 產(chǎn)品工藝路線(可選, 用于區(qū)分工序用料) │││ │ │││ │ 處理管道: │││ │ 1. 構(gòu)建BOM樹: 解析父子關(guān)系, 建立物料層級(jí)結(jié)構(gòu) │││ │ 2. 遞歸拆解: 從最終產(chǎn)品出發(fā), 逐層展開到原材料 │││ │ 3. 匯總消耗: 累計(jì)各層級(jí)用量, 計(jì)算總消耗系數(shù) │││ │ 4. 生成矩陣: 輸出“產(chǎn)品×原材料”的消耗系數(shù)矩陣 │││ │ │││ │ 輸出: │││ │ ? 物料消耗系數(shù)矩陣(可直接用于PuLP線性規(guī)劃) │││ │ ? 各層級(jí)物料需求明細(xì)(BOM展開表) │││ │ ? 虛擬件/中間件的消耗路徑分析 │││ └─────────────────────────────────────────────────────────┘││ ││ 【核心矛盾】 ││ ? 計(jì)劃員: 想把產(chǎn)品產(chǎn)量換算成原材料需求 │││ ? BOM: 是樹狀層級(jí)結(jié)構(gòu), 不是矩陣 │││ ? 線性規(guī)劃: 需要消耗系數(shù)矩陣A, 使得 Ax b (需求向量) │││ ? 本程序: 把BOM樹翻譯成系數(shù)矩陣 — BOM翻譯機(jī) │││ ││ 【本程序處理流程】 ││ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐││ │ 構(gòu)建BOM │──?│ 遞歸拆解 │──?│ 匯總消耗 │──?│ 生成系數(shù) │││ │ 樹(圖結(jié) │ │ (深度優(yōu)先 │ │ (累計(jì)各 │ │ 矩陣(產(chǎn)品│││ │ 構(gòu)) │ │ 搜索) │ │ 層級(jí)用量)│ │ ×原材料) │││ └──────────┘ └──────────┘ └──────────┘ └──────────┘│└──────────────────────────────────────────────────────────────┘二、引入痛點(diǎn)含量化對(duì)比2.1 現(xiàn)場(chǎng)真實(shí)困境某工程機(jī)械廠生產(chǎn)計(jì)劃主管原話“我們廠主要生產(chǎn)3 大系列挖掘機(jī)20 噸級(jí)、30 噸級(jí)、40 噸級(jí)共 8 種主流機(jī)型。每臺(tái)挖掘機(jī)有 3000 多個(gè)零件其中 87 種是自制的結(jié)構(gòu)件、液壓件等其余是外購(gòu)件。每月做主生產(chǎn)計(jì)劃MPS時(shí)我需要把8 種機(jī)型的計(jì)劃產(chǎn)量換算成近 300 種原材料的需求量鋼板、型材、軸承鋼、液壓油等。但 BOM 是多層樹狀結(jié)構(gòu)- 第 0 層整機(jī)如 20 噸挖掘機(jī)- 第 1 層發(fā)動(dòng)機(jī)總成、液壓系統(tǒng)、結(jié)構(gòu)件總成- 第 2 層缸體、活塞、連桿、閥塊- 第 3 層毛坯、鍛件、鑄件- 第 4 層鋼板、圓鋼、型材等原材料人工拆解 BOM 的過程計(jì)劃員拿著 Excel 版的 BOM 表從整機(jī)開始一層層往下找把每一層的用量手動(dòng)乘起來再匯總到原材料。比如- 1 臺(tái)整機(jī)需要 1 個(gè)液壓系統(tǒng)- 1 個(gè)液壓系統(tǒng)需要 2 個(gè)閥塊- 1 個(gè)閥塊需要 5 公斤軸承鋼- 所以 1 臺(tái)整機(jī)需要 1×2×5 10 公斤軸承鋼。這個(gè)過程非常痛苦- 87 種自制件每層都要算算完 3 天- 經(jīng)常漏算中間層級(jí)比如忘了算“鍛件”這一層- 損耗率容易算錯(cuò)比如軸承鋼利用率 85%但忘了乘這個(gè)系數(shù)- BOM 變更后要重新算一遍又得 3 天。上個(gè)月因?yàn)槁┧懔艘环N高強(qiáng)度螺栓的軸承鋼需求導(dǎo)致關(guān)鍵零件停產(chǎn) 2 天生產(chǎn)線停了 2 條直接損失 42 萬(wàn)。廠長(zhǎng)在月度經(jīng)營(yíng)會(huì)上說‘你們計(jì)劃部 10 個(gè)人算個(gè)物料需求要 3 天還算錯(cuò)這效率怎么跟得上市場(chǎng)’后來 IT 組寫了個(gè) Python 腳本——0.8 秒讀完 87 種自制件的 BOM自動(dòng)遞歸拆解到原材料生成 8 種機(jī)型 × 300 種原材料的消耗系數(shù)矩陣直接喂給 PuLP 做線性規(guī)劃優(yōu)化。現(xiàn)在改 BOM 或調(diào)產(chǎn)量1 秒出結(jié)果。”2.2 人工拆解 vs 自動(dòng)拆解量化對(duì)比指標(biāo) 人工拆解 Python 自動(dòng)拆解本方案 改善效果87 種自制件 BOM 拆解 3 天 0.8 秒 -99.99%物料需求計(jì)算準(zhǔn)確率 ~92%易漏算 100% 質(zhì)變BOM 變更響應(yīng)時(shí)間 3 天 1 秒 -99.99%計(jì)劃員工作量 10 人 × 3 天 1 人 × 1 秒 -99.9%停產(chǎn)損失 42 萬(wàn)/次 0 元 消除主生產(chǎn)計(jì)劃MPS周期 每月一次 每日/實(shí)時(shí) 質(zhì)變關(guān)鍵發(fā)現(xiàn)生產(chǎn)計(jì)劃優(yōu)化的瓶頸不在“求解”而在“BOM 數(shù)據(jù)的結(jié)構(gòu)化”。一旦 BOM 被翻譯成消耗系數(shù)矩陣PuLP 就能秒級(jí)算出最優(yōu)物料需求。三、核心邏輯講解大白話版3.1 用大白話解釋“BOM 拆解與消耗系數(shù)矩陣”想象你要開個(gè)漢堡店賣 3 種漢堡牛肉堡、雞肉堡、魚堡。每種漢堡都由面包、肉餅、蔬菜、醬料組成。而肉餅又是由肉餡、淀粉、調(diào)料做的面包是由面粉、酵母、水做的。你的 BOM 表物料清單可能是這樣的父項(xiàng) 子項(xiàng) 用量 單位牛肉堡 面包 1 個(gè)牛肉堡 牛肉餅 1 個(gè)牛肉堡 生菜 2 片牛肉堡 番茄醬 10 克牛肉餅 牛肉餡 100 克牛肉餅 淀粉 10 克牛肉餅 鹽 2 克面包 面粉 50 克面包 酵母 1 克面包 水 30 克現(xiàn)在問題來了如果你明天要賣 100 個(gè)牛肉堡需要多少面粉人工算法你先算“1 個(gè)牛肉堡需要 1 個(gè)面包”再算“1 個(gè)面包需要 50 克面粉”所以 100 個(gè)牛肉堡需要 100 × 1 × 50 5000 克面粉。這叫“一層層往下算”。但如果有 10 層 BOM像工程機(jī)械那樣人工算就頭大了“牛肉堡 → 牛肉餅 → 牛肉餡 → 牛肉 → 牛 → 飼料 → 玉米 → …”。大白話邏輯1. BOM 是“樹”根是最終產(chǎn)品葉子是原材料中間是零件/部件2. 拆解就是“從根到葉走一遍”把每一層的用量乘起來3. 消耗系數(shù)矩陣就是“把樹壓扁成表格”行是產(chǎn)品列是原材料格子是“做 1 個(gè)產(chǎn)品需要多少這種材料”4. 有了這個(gè)矩陣PuLP 就能秒算物料需求“產(chǎn)量向量 × 系數(shù)矩陣 原材料需求向量”。工業(yè)現(xiàn)場(chǎng)版- 漢堡店 工程機(jī)械廠- 漢堡 挖掘機(jī)最終產(chǎn)品- 面包/肉餅 自制件部件/零件- 面粉/牛肉 原材料- 消耗系數(shù)矩陣 產(chǎn)品與原材料的數(shù)量關(guān)系3.2 運(yùn)籌學(xué)模型北理工《運(yùn)籌學(xué)》映射參考北理工《運(yùn)籌學(xué)》第 4 章“運(yùn)輸與存儲(chǔ)問題”、第 7 章“網(wǎng)絡(luò)流與圖論”物料需求計(jì)劃MRP的線性規(guī)劃模型\begin{aligned}\min \quad Z \sum_{j1}^{m} c_j \cdot x_j \quad \text{(最小化原材料采購(gòu)成本)} \\\text{s.t.} \quad \sum_{j1}^{m} a_{ij} \cdot x_j \ge d_i, \quad i1,\dots,n \quad \text{(產(chǎn)品需求滿足)} \\ x_j \le S_j, \quad j1,\dots,m \quad \text{(原材料供應(yīng)上限)} \\ x_j \ge 0, \quad j1,\dots,m\end{aligned}其中消耗系數(shù)矩陣 A (a_{ij}) 是本程序的核心輸出- a_{ij} 生產(chǎn) 1 單位產(chǎn)品 i 需要消耗原材料 j 的數(shù)量- x_j 原材料 j 的采購(gòu)量- d_i 產(chǎn)品 i 的需求量。BOM 拆解的數(shù)學(xué)本質(zhì)有向無環(huán)圖DAG的拓?fù)浔闅v。- 節(jié)點(diǎn)物料最終產(chǎn)品、自制件、原材料- 邊BOM 關(guān)系父項(xiàng) → 子項(xiàng)權(quán)重為用量- 拆解過程從根節(jié)點(diǎn)出發(fā)沿邊進(jìn)行深度優(yōu)先搜索DFS累計(jì)路徑上的權(quán)重乘積。北理工教材要點(diǎn)- 第 4 章 §4.1運(yùn)輸問題的數(shù)學(xué)模型消耗系數(shù)矩陣類似運(yùn)輸問題的“單位運(yùn)價(jià)表”- 第 4 章 §4.2存儲(chǔ)問題中的物料平衡約束 \sum a_{ij}x_j d_i - 第 7 章 §7.1圖與網(wǎng)絡(luò)的基本概念BOM 是有向圖- 第 7 章 §7.2最小生成樹與最短路徑BOM 拆解類似最短路徑問題- 本程序解決的是“從 BOM 樹狀結(jié)構(gòu)生成消耗系數(shù)矩陣 A ”問題。3.3 如何映射到代碼中業(yè)務(wù)邏輯 Python 代碼物料主數(shù)據(jù)dataclass MaterialBOM 結(jié)構(gòu)dataclass BOMItemBOM 樹BOMTree 類基于有向圖遞歸拆解BOMExploder.explode()DFS 算法消耗系數(shù)計(jì)算CoefficientCalculator.calculate()矩陣生成MatrixGenerator.generate_consumption_matrix()四、OOP 代碼實(shí)現(xiàn)精簡(jiǎn)可運(yùn)行4.1 項(xiàng)目結(jié)構(gòu)bom_exploder/├── bom_exploder.py # 核心代碼單文件~320行├── sample_bom_structures.csv # 示例BOM結(jié)構(gòu)表├── sample_materials.csv # 示例物料主數(shù)據(jù)├── README.md # 使用說明└── requirements.txt # 依賴庫(kù)4.2 完整源代碼可直接運(yùn)行detailssummary/summaryBOM拆解器 → 物料消耗系數(shù)矩陣生成器 · BOM翻譯機(jī)參考: 北京理工大學(xué)《運(yùn)籌學(xué)》第4章運(yùn)輸與存儲(chǔ)問題、第7章網(wǎng)絡(luò)流與圖論功能:1. 讀取物料主數(shù)據(jù)和BOM結(jié)構(gòu)表(CSV格式)2. 構(gòu)建BOM樹(有向無環(huán)圖)3. 遞歸拆解BOM, 從最終產(chǎn)品展開到原材料4. 計(jì)算累計(jì)消耗系數(shù)(考慮損耗率)5. 生成產(chǎn)品×原材料的消耗系數(shù)矩陣(可直接用于PuLP)運(yùn)行:python bom_exploder.py(需要安裝pandas, numpy, pulp)import csvimport jsonfrom dataclasses import dataclass, fieldfrom typing import List, Dict, Optional, Tuple, Setfrom enum import Enumfrom collections import defaultdict, dequeimport timeimport numpy as npimport pandas as pdimport pulp# ─── 枚舉與常量 ────────────────────────────────────────────────────────────class MaterialType(Enum):物料類型FINISHED_GOOD 成品 # 最終產(chǎn)品SEMI_FINISHED 半成品 # 自制件/部件RAW_MATERIAL 原材料 # 原材料PURCHASED 外購(gòu)件 # 外購(gòu)零件VIRTUAL 虛擬件 # 用于BOM管理的虛擬物料class BOMStatus(Enum):BOM狀態(tài)ACTIVE 生效OBSOLETE 失效PENDING 待審批# ─── 數(shù)據(jù)模型 ────────────────────────────────────────────────────────────dataclassclass Material:物料主數(shù)據(jù)material_code: strmaterial_name: strmaterial_type: MaterialTypeunit: str # 計(jì)量單位scrap_rate: float 0.0 # 損耗率(0~1)lead_time: int 0 # 采購(gòu)/生產(chǎn)提前期(天)safety_stock: float 0.0 # 安全庫(kù)存propertydef is_end_product(self) - bool:是否為最終產(chǎn)品return self.material_type MaterialType.FINISHED_GOODpropertydef is_raw_material(self) - bool:是否為原材料return self.material_type MaterialType.RAW_MATERIALpropertydef is_intermediate(self) - bool:是否為中間品(自制件/半成品)return self.material_type in [MaterialType.SEMI_FINISHED, MaterialType.VIRTUAL]def __str__(self):return f{self.material_code}({self.material_name}): {self.material_type.value}, {self.unit}dataclassclass BOMItem:BOM結(jié)構(gòu)項(xiàng)(父子關(guān)系)parent_code: strchild_code: strquantity: float # 單耗(父項(xiàng)生產(chǎn)1單位, 需要子項(xiàng)多少單位)scrap_rate: float 0.0 # 額外損耗率(覆蓋物料主數(shù)據(jù))effective_date: Optional[str] Nonestatus: BOMStatus BOMStatus.ACTIVEpropertydef total_quantity(self) - float:總用量(含損耗)total_scrap max(self.scrap_rate, 0)return self.quantity * (1 total_scrap)def __str__(self):return f{self.parent_code} - {self.child_code}: {self.quantity}{ ( str(self.scrap_rate*100) %) if self.scrap_rate 0 else }dataclassclass ConsumptionCoefficient:消耗系數(shù)(產(chǎn)品→原材料)product_code: strmaterial_code: strcoefficient: float # 生產(chǎn)1單位產(chǎn)品消耗的原材料數(shù)量path: List[str] field(default_factorylist) # 消耗路徑(用于追溯)def __str__(self):path_str → .join(self.path) if self.path else 直接return f{self.product_code} → {self.material_code}: {self.coefficient:.4f} ({path_str})dataclassclass BOMExplosionResult:BOM展開結(jié)果product_code: strtotal_quantity: float 1.0 # 產(chǎn)品產(chǎn)量material_requirements: Dict[str, float] field(default_factorydict) # 原材料需求intermediate_requirements: Dict[str, float] field(default_factorydict) # 中間品需求consumption_coefficients: List[ConsumptionCoefficient] field(default_factorylist)explosion_time: float 0.0 # 展開耗時(shí)(秒)def __str__(self):return (f產(chǎn)品{self.product_code}(產(chǎn)量{self.total_quantity}): f需{len(self.material_requirements)}種原材料, f{len(self.intermediate_requirements)}種中間品, f展開耗時(shí){self.explosion_time*1000:.1f}ms)# ─── BOM樹構(gòu)建器 ──────────────────────────────────────────────────────────class BOMTree:BOM樹(有向無環(huán)圖)def __init__(self):self.materials: Dict[str, Material] {}self.bom_items: List[BOMItem] []self.children_map: Dict[str, List[BOMItem]] defaultdict(list)self.parent_map: Dict[str, List[BOMItem]] defaultdict(list)self._topological_order: List[str] []def add_material(self, material: Material):添加物料self.materials[material.material_code] materialdef add_bom_item(self, bom_item: BOMItem):添加BOM項(xiàng)if bom_item.status ! BOMStatus.ACTIVE:returnself.bom_items.append(bom_item)self.children_map[bom_item.parent_code].append(bom_item)self.parent_map[bom_item.child_code].append(bom_item)def build(self):構(gòu)建BOM樹, 進(jìn)行拓?fù)渑判? 檢查是否有環(huán)if self._has_cycle():raise ValueError(BOM結(jié)構(gòu)存在循環(huán)依賴!)# 拓?fù)渑判騭elf._topological_order self._topological_sort()def _has_cycle(self) - bool:檢測(cè)是否有環(huán)(DFS)visited set()rec_stack set()def dfs(code: str) - bool:visited.add(code)rec_stack.add(code)for bom_item in self.children_map.get(code, []):if bom_item.child_code not in visited:if dfs(bom_item.child_code):return Trueelif bom_item.child_code in rec_stack:return Truerec_stack.remove(code)return Falsefor material_code in self.materials:if material_code not in visited:if dfs(material_code):return Truereturn Falsedef _topological_sort(self) - List[str]:拓?fù)渑判?Kahn算法)in_degree defaultdict(int)# 計(jì)算入度f(wàn)or bom_item in self.bom_items:in_degree[bom_item.child_code] 1# 初始化隊(duì)列(入度為0的節(jié)點(diǎn), 通常是原材料)queue deque([code for code in self.materials if in_degree[code] 0])topo_order []while queue:code queue.popleft()topo_order.append(code)for bom_item in self.children_map.get(code, []):child_code bom_item.child_codein_degree[child_code] - 1if in_degree[child_code] 0:queue.append(child_code)if len(topo_order) ! len(self.materials):raise ValueError(BOM結(jié)構(gòu)存在循環(huán)依賴, 無法進(jìn)行拓?fù)渑判?)return topo_orderdef get_children(self, parent_code: str) - List[BOMItem]:獲取子項(xiàng)return self.children_map.get(parent_code, [])def get_parents(self, child_code: str) - List[BOMItem]:獲取父項(xiàng)return self.parent_map.get(child_code, [])def get_root_products(self) - List[str]:獲取根節(jié)點(diǎn)(最終產(chǎn)品, 無父項(xiàng))roots []for code in self.materials:if not self.parent_map.get(code):if self.materials[code].is_end_product:roots.append(code)return rootsdef __str__(self):return fBOM樹: {len(self.materials)}種物料, {len(self.bom_items)}條BOM關(guān)系# ─── BOM拆解器 ───────────────────────────────────────────────────────────class BOMExploder:BOM拆解器(遞歸展開)def __init__(self, bom_tree: BOMTree):self.bom_tree bom_treeself.coefficients: Dict[Tuple[str, str], float] defaultdict(float)self.paths: Dict[Tuple[str, str], List[str]] defaultdict(list)def explode(self, product_code: str, quantity: float 1.0) - BOMExplosionResult:拆解單個(gè)產(chǎn)品BOMstart_time time.perf_counter()# 清空之前的系數(shù)self.coefficients.clear()self.paths.clear()# 遞歸拆解self._explode_recursive(product_code, quantity, [product_code])# 匯總結(jié)果result BOMExplosionResult(product_codeproduct_code,total_quantityquantity,explosion_timetime.perf_counter() - start_time)# 分離原材料和中間品for (prod, mat), coef in self.coefficients.items():if prod ! product_code:continuematerial self.bom_tree.materials.get(mat)if material:if material.is_raw_material:result.material_requirements[mat] coef * quantityelif material.is_intermediate:result.intermediate_requirements[mat] coef * quantity# 添加消耗系數(shù)result.consumption_coefficients.append(ConsumptionCoefficient(product_codeprod,material_codemat,coefficientcoef,pathself.paths.get((prod, mat), [])))return resultdef _explode_recursive(self, current_code: str, current_quantity: float, path: List[str]):遞歸拆解(DFS)material self.bom_tree.materials.get(current_code)# 如果是原材料, 記錄消耗系數(shù)if material and material.is_raw_material:product_code path[0]self.coefficients[(product_code, current_code)] current_quantity# 記錄路徑if (product_code, current_code) not in self.paths:self.paths[(product_code, current_code)] path.copy()return# 如果是虛擬件, 不記錄, 繼續(xù)拆解if material and material.material_type MaterialType.VIRTUAL:# 虛擬件不消耗資源, 直接傳遞數(shù)量for bom_item in self.bom_tree.get_children(current_code):child_quantity current_quantity * bom_item.total_quantityself._explode_recursive(bom_item.child_code, child_quantity, path)return# 如果是中間品或成品, 繼續(xù)拆解子項(xiàng)children self.bom_tree.get_children(current_code)if not children:# 沒有子項(xiàng), 可能是外購(gòu)件或原材料(但未標(biāo)記為原材料)if material and material.material_type MaterialType.PURCHASED:product_code path[0]self.coefficients[(product_code, current_code)] current_quantityif (product_code, current_code) not in self.paths:self.paths[(product_code, current_code)] path.copy()return# 拆解子項(xiàng)for bom_item in children:child_quantity current_quantity * bom_item.total_quantitynew_path path [bom_item.child_code]self._explode_recursive(bom_item.child_code, child_quantity, new_path)def explode_all_products(self, product_quantities: Dict[str, float] None) - Dict[str, BOMExplosionResult]:拆解所有最終產(chǎn)品results {}root_products self.bom_tree.get_root_products()if product_quantities:# 只拆解指定的產(chǎn)品for product_code, quantity in product_quantities.items():if product_code in self.bom_tree.materials:results[product_code] self.explode(product_code, quantity)else:# 拆解所有根產(chǎn)品(默認(rèn)產(chǎn)量1)for product_code in root_products:results[product_code] self.explode(product_code, 1.0)return results# ─── 消耗系數(shù)矩陣生成器 ──────────────────────────────────────────────────class ConsumptionMatrixGenerator:消耗系數(shù)矩陣生成器def __init__(self, bom_tree: BOMTree):self.bom_tree bom_treedef generate(self, explosion_results: Dict[str, BOMExplosionResult]) - Tuple[np.ndarray, List[str], List[str]]:生成消耗系數(shù)矩陣 A (產(chǎn)品 × 原材料)# 獲取所有產(chǎn)品和原材料product_codes sorted(explosion_results.keys())material_codes set()for result in explosion_results.values():material_codes.update(result.material_requirements.keys())material_codes sorted(material_codes)# 初始化矩陣n_products len(product_codes)n_materials len(material_codes)matrix np.zeros((n_products, n_materials))# 填充矩陣product_index {code: i for i, code in enumerate(product_codes)}material_index {code: j for j, code in enumerate(material_codes)}for product_code, result in explosion_results.items():i product_index[product_code]for material_code, quantity in result.material_requirements.items():j material_index[material_code]# 系數(shù)是單位產(chǎn)品消耗量(總需求/產(chǎn)量)matrix[i, j] quantity / result.total_quantityreturn matrix, product_codes, material_codesdef generate_pulp_code(self, matrix: np.ndarray, product_codes: List[str], material_codes: List[str]) - str:生成PuLP可用的代碼code_lines []code_lines.append(# 物料消耗系數(shù)矩陣(由bom_exploder自動(dòng)生成))code_lines.append(f# 生成時(shí)間: {time.strftime(%Y-%m-%d %H:%M:%S)})code_lines.append(f# 產(chǎn)品數(shù)量: {len(product_codes)}, 原材料數(shù)量: {len(material_codes)})code_lines.append()code_lines.append(import pulp)code_lines.append(import numpy as np)code_lines.append()code_lines.append(# 產(chǎn)品列表)code_lines.append(fproducts {product_codes})code_lines.append()code_lines.append(# 原材料列表)code_lines.append(fmaterials {material_codes})code_lines.append()code_lines.append(# 消耗系數(shù)矩陣 A (產(chǎn)品 × 原材料))code_lines.append(A np.array([)for i, row in enumerate(matrix):row_str [ , .join([f{val:.6f} for val in row]) ]if i len(matrix) - 1:row_str ,code_lines.append(row_str)code_lines.append(]))code_lines.append()code_lines.append(# 示例: 在PuLP模型中使用)code_lines.append(# 決策變量: 原材料采購(gòu)量)code_lines.append(x pulp.LpVariable.dicts(material, materials, lowBound0))code_lines.append(# 約束: 物料需求滿足)code_lines.append(for i, product in enumerate(products):)code_lines.append( prob pulp.lpSum([A[i, j] * x[materials[j]] for j in range(len(materials))]) demand[product])return \n.join(code_lines)def save_matrix(self, matrix: np.ndarray, product_codes: List[str], material_codes: List[str], path: str利用AI解決實(shí)際問題。如果你覺得這個(gè)工具好用歡迎關(guān)注長(zhǎng)安牧笛
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品九九久久| 玖玖在线视| 成人小说色图婷婷五月| 日韩成人中文字幕| 五月天婷婷伊人| 亚洲图色五月天| oumeisesewang| 丁香五月综合激情啪啪| 丁香五月成人| 九九精品9| 四色五月婷婷在线观看| 久久五月天 91| 亚洲欧洲另类| 色色a| 日本一级黄色电影| 热99精品视频| 人人超碰99| 激情四射五月天| 日操夜撸| 天天爽天天日人人爱| 99热偷拍| 噜一噜在线| 狠狠香蕉| 91男同| 六月丁香网| 五月天天爽| 五月六月播婷婷| 五月天sesese| 激情都市另类| 久久人人做人人妻人人玩精品va| 婷色五月天| 丁五月激情视频免费| 婷婷五月色花丁香社区| 人妻22p| 丁香五月停停av| 99爱在线精品视频免费观看| 丁香五月天在线观看| 五月丁香激情片| 色色色97| 久久九九精彩| 丁香五月婷婷六月婷| 人妻少妇色综合| 婷婷性爱五月天| 五月婷婷久久激情| 狠狠va| 97在线/亚洲| 97超级啪啪在线观看| www.婷婷五月| 日本操碰碰| 婷婷五月天男人影院色色网| 久久这里有精品99| 天天干天天干天天干天天干天天| 婷婷国产综合| 丁香婷婷五月激情综合| 亚洲视频在线观看99| 五月丁香激| 麻豆123区| 日本人妻伦在线中文字幕| 另类五月激情| 无套内射极品大美女| 五月丁香色狠狠干大屄| 琪琪理论片| 99热99在线| 九九九九九九综合| 9191avse| 狠狠干2007| 99久久综合| 99久久精品色老| 五月丁香色婷婷久久| 亚洲妇女熟BBW| 99热国内精品| 99ER热精品视频| 成人网址在线观看| 天天色播| 丁香五月婷婷国产在线| 久久99精品久久久| 久热91| 久久六月天| 99热爱爱干干日| 操碰99| 五月婷婷影院| 深爱激情四射| 激情五月婷婷色| 久热99狠| 偷拍99在线视频观看| 国产五月视频| 婷婷五月天Av| 97人人草| 思99热精品久久只有精品| 99久久综合网| AV在线中文| 99色热视频| 五月丁香婷婷基地| 亚洲网站观看视频| 91精品91久久久中77777久久玖玖九九| 狠狠狠狠狠狠色| 91se在线视频| 五月丁香另类网| 亚洲国产成人AV在线| 超级碰 久久9| 久热无码| 热成人网| 婷婷五月综合在线| 人妻丰满精品一区二区A片| 亚洲综合五月天| 色播丁香| 大香蕉婷婷五月| 99 热国产在| 热久久77777| 亚洲va在线| 1024操逼视频| 日日操夜夜操中国无码| 精品色情一区二区三区四区| 色色色色色色色色色色色色色97| 欧美日韩欧美| 99热热热天天人人人超超碰| 色色欧美色色| 婷婷五月色| 无码激情AAAAA片-区区| 狠狠综合久久| 天天操天天插| 久久久久久18| 亚洲va在线| 91黄操| 日本黄色三级片内射| 97成人在线视频精品| 激情综合五月激情| 五夜婷婷| 少妇婷婷五月天| 三区激情四射av| 99精品在这里| 丁香操逼| 99久热在线精品| 五月丁香婷婷激情视频| 天天日夜夜| 欧美日韩成人在线免费| 99精吕视频在线观看了| 五月停视频天堂| 如何安全看伊人婷婷| 99精品亚洲| 九九这里有精品| 五月天停停日日| 久久草婷婷丁香网站| 99热爱爱干干日| 日韩人妻在线播放| 色青青五月| 五月婷婷丁香瑟瑟视频| 免费色婷婷| 婷婷五月天色丁香| 久久香蕉网| 婷婷五月激情综合| 婷婷丁香人妻天天爽| 2022久久婷婷| 丁香六月婷婷综合缴| 国产成人精品一区二三区熟女在线| WWW,五月| 婷婷丁香在线| 久久五月婷婷视频| 色情五月天A片| 狠狠色综合网站久久久久| 99伊人婷婷在线| 五月丁香花伦理电影| www.夜夜| 六月婷婷狠狠做| 色色色综合网| 在线区区区| 色情综合网| 婷婷色色丁香五月天| 激情五月天婷婷丁香| 九九色插| 91色在线| 欧美在线干| 婷婷成人AV| 亚洲男女激情| yazhou seshipin| 五月婷婷高清| 亚洲中文字幕网| 99热激情| 五月丁香六月| 热99热| 欧美Va婷色| 五月天精品视频| 20253AV| 久久综合九九| 91狠狠综合久久久久久| 色都都狠狠色都都色综合色| 秋霞学生妹一二级| 色色亚洲五月天| 色欲婷婷五月天| aa久久| 五月丁香在线精品| 丁香五月综合在线观看| 丁香六月啪啪| 性视频久久| 开心五月激情五月丁香五月婷婷| 九九性爱网| 精品亚洲国产成人A片在线鸭王| 亚洲高清在线| 青柠影视免费高清电视剧| 精品亚洲国产成AV人片传媒| 人人操碰| 99色天堂| 变态另类9| 丁婷婷五月天在线播放| 久色视频| 在线中文字幕视频| 亚洲成人在线播放| 丁香九月婷婷| 国产亚洲成AV人片在线观黄桃| 激情五月色综合网| 五月丁香六月婷| 色噜噜狠狠色综无码久久合欧美| 精品成人久久久久久久_一二三四视| 日韩性爱无码| 天天狠狠色噜噜| 亚洲成人网站在线观看| 26UUU欧美激情一区二区| 青青日韩| 婷婷综合五月激情| 久一网站| 激情五月六月婷婷| 五月花亭亭| 久久丁香综合香蕉| 丁香九月综合| 午夜成人在线免费视频| 天天日天天干天天操| 亚洲、热| 538午夜激情| 日韩在线9| 久久婷婷五月草视频在线播放| 任我干视频在线观看| 五月天婷婷丁香| 婷婷五月天成人五月天| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 99人人干| 久久久久人妻精选| 日日噜噜久久婷婷五月天 | 婷婷玖玖丁香| 久久ri精品视频| 中文AV网| 色情成人五月天| 久久A V无码视频| 欧美97色| 丁香五月天婷婷91| 亚洲视频另类| 伊人丁香五月婷婷潮吹| www,黄色在线,con| 成人精品视频99在线观看免费| 婷婷五月天啪啪| 国产激情综合五月| 日本色婷婷| 青青操成人福利| 大地资源色婷婷视频在线| 久久久久久久97| 五月丁香六月花| 婷婷五月天在线综合导航| 亚洲AV人人操| 综合激情五月丁香| 九九九色综合| 丁香婷婷六月激情文学| 久久五月视频| 久久综合激情五月天| 九一九九黄色| 蒲京久久无码视频| 97超碰9久热婷婷热| 超碰在线观看三级片| 婷婷久久色| 激情综合丁香五月| 性色五月天| 激情综合色| 天天模,夜夜模夜夜爽| av在线免费网站 | 亚洲天天操| 另类图片激情五月| 91久久99久久91熟女精品| 丁香激情五月少妇| 色狠狠五月天| 五月情四婷婷| 激情亚洲婷婷六月| 久久99综合| 色婷婷9| 婷婷六月丁综合| 久久婷婷色| 九九热99热| 亚洲色婷婷网站| 天天搞夜夜叫| Jh7Uf088VHafNm| 午夜丁香婷婷| 美女激情综合| 98永久精品| 九九精品免费| 国产暴力强伦轩1区二区小说| 久色资源| 99re免费精品视频| 天天日天天操心| WWW丁香五月| 国产精品久久99| 日韩一区二区在线播放| 大香蕉伊人爱在线| 亚洲色精彩| 99免费成人网| 婷婷五月丁香久久| 日韩淑女人妻luan伦激情精品一区二| 久久XX| 人妻久久久久久久 | 婷婷伊人五月天| 2017人人操| 婷婷九月| 久久33视频| 另类 在线| 成片免费播放| 97婷婷五月天| anquye五月| 久久人妻在线| 我爱大香蕉| 久久99热这里只频精品6学生| 久久精品99国产精品日本| 婷婷黄色网| 天天综合 99久久婷婷| 无码se| 五月天成人手机在线视频| 狠狠色综合五月| 丁香五月天欧洲在线| 亚洲综合字幕色色| 操丝袜视频影院导航| 九九在线视频| 91嫩草国产线观看亚洲一区二区| 另类专区在线观看| 五月天国产婷婷精品视频在线| 99riAv1国产在线观看| 高清无码网址| 成人av在线电影| 人人综合五月人人婷婷| 色婷婷狠狠| 久久99免费视频网站| 欧美婷婷六月丁香综合色| 人人97碰| se婷97| 日韩无码91| 五月丁香婷婷无码A∨| 丁香五月激情啪啪| 国产欧美日韩综合精品一区二区| 97干婷婷| 日韩五月丁香| 亚洲av电影网站| 日本女天天爽| 99久久6| aaaa久久| 日本无va视频| 狠狠爱综合网| 4399在线观看免费高清黄色视频| 久久五月婷婷视频| 婷婷开心综合人妻小说网址| 欧美综合五月丁香五月天| 婷婷五月av| 色月丁| 天天射天天射一道本日本社区 | 麻豆精品| www.lingjunshare.com| 丁香五月AV| 99亚洲视频| 五月婷网站| 久久性爱视频| 久久色五月天| 97资源欧美日韩大香蕉超碰一区| 丁香婷婷综合激情五月色| 大香蕉伊人久久| 色五月婷婷影院| 激情五月婷婷开心网| 嫩草AV久久伊人妇女超级A| 色色激情五月天| 亚洲综合无码| 秋霞性爱AV| 天天干,天天日| 九九久久色| 久久综合天天综合| 天天日P天天射P| 91操熟女| 色婷婷综合视频| 9久久久久久久久久久| 天堂久久大香蕉| 婷婷五月色網站| 亚洲精品又粗又大又爽A片 | 亚洲综合色丁香五月天| 激情综合网激情五月俺也去| 狠狠干伊人| 天天色中文字幕女优AV| 五月天五月天成人网亭亭成人色网站| 丰满少妇猛烈A片免费看观看 | 青青草国产亚洲精品久久| 色八月婷婷| 国产综合婷婷| 看婷婷五月天网| 天天做天天爽| 狠狠艹狠狠艹| 九九精品9| 亚洲成人人人操| 五月丁香九九| 91久久99久久91熟女精品| 超碰免费人人| 色婷久久| 欧美成人性爱网| 天堂成人久久| 无码色| 天天操天天操综合| 亚洲欧美国产A片免费观看| 五月丁香综合激情网| 亚洲精品又粗又大又爽A片 | 五月天婷婷乱论小说| 奇米色大香蕉| 91啪啪视频| 五月色丁香综合| 丁香五月激情综合| 99综合色| www九九| 久久婷婷五月综合| 日韩1区2区| 超碰在线99热| 久久99热这里只频精品6学生| 99热这里只有精品热| 婷婷五月色花丁香社区| 99福利导航| 99热日韩这里只有精品| 色九九丁香九月色九九色| 日韩人妻无码专区| 久久五月天黄色五月天色网址| 秋霞AV吧| 色五月婷婷在线| 伊人午夜综合色啪| 激情五月天黄色小说| 色九四色| 久久久五月天| 丁香五月影视| 久久色五月天激情小说| 六月丁香综合| 日韩乱轮AV| 国产性爱亚洲是图| 深爱五月天 开心网| 五月开心啪啪| 狠狠婷婷色综合| 婷婷情爱五月天6| 99热欧| 九九人人自拍| 变态另类色图| 五月婷婷啪啪| 日日操日日撸| 久99久在线| 国产玖玖资源| 99色啊| 久操激情| 亚洲色婷婷五月天| 色色色色色日韩午夜激情| 97人人搞| 九九成人精品| 午夜理论片最新午夜理论剧| 国产操肏网站| 五月丁香久久综合91| 婷婷久久综合久| 99免费热视频| 久久aaa| 久热中文字幕| 国产精品激情AV久久久青桔| 97婷婷色| 欧美色图天堂网| 日婷婷久久开心| 色插综合网| 人人操操| 九九热内射| 偷偷与邻居做爰完整视频| 婷婷综合97| 久久综合天天综合| 韩国97天堂| 国产午夜成人免费看片无遮挡| 91操人| 9|无码久久久久久| 色婷婷狠狠18| 99精品性爱| 狠狠操性爱av| 五月天色婷婷激情| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 午夜九九电影| 欧美性丁香色色五月天| 精品皮股午夜AV| 热的无码综合视频| 日日日日操| 日本五月丁香| 婷婷激情丁五月| 99热九九这里只有精品| xxxx五月激情| 五月社区婷婷激情| 五月天激情啪啪| 香蕉AV777XXX色综合一区| 狠狠干 狠狠操| 五月婷导航| 久久人妻伦理| 日韩 中文 欧美| 亚韩在线视频| 五月丁香综合激情| 久久婷综| 91在线视频综合| 久久加勒比| 国产婷婷五月天| 五月婷六月| 国产69久久久欧美黑人A片| 狠狠爱综合| 久久久人妻门| 深夜婷婷五月丁香| 色五月久久成人婷婷| 亚洲成人AV高清字幕| 深爱五月激情网| 色小说婷婷五月天天天| 婷婷她六月天| 婷婷丁香五月噜噜噜| 日本在线噜噜| 99热这里都是精品| 激情网婷婷五月天| 色99视频| 嫩BBB搡BBBB榛BBBB| 国产又色又爽又黄又免费| 中文字幕91,综合| 亚洲av免费在线| 色情·com| 五月丁香做爱视频| 色激情五月| 精品无码久久久久久久久| 婷婷五月花| 亚洲视频在线网| 天天射天天插天天干| 久久婷婷五| 一逼色综合| 婷婷丁香成人在线视频| 激情五月婷婷色综合| 色婷婷www| 五月丁香激情啪啪| 日韩AV在线免费| 丁香六月婷婷社区| 五月天播播综合| 婷婷五月婷婷| av网址在线播放| 超碰97干| 伊人久久婷婷五月天激情四射| 五月天久久网站| 色婷婷五月在线| 婷婷精品在线| 亚洲天堂碰碰婷婷| 五月天婷婷爱丁香中文字幕| 久久五月网| 国产97在线日韩亚洲女人被黑人巨大| 久99热| 婷婷综合五月天亚洲综合| 97婷婷狠狠| 丁香六月婷婷缴情欧美| 99开心五月五月丁香激情| 天天干天天干天天干天天干天天| 丁香五月自拍| 神马欧美精| 丁香欧美| 嫩草AV久久伊人妇女超级A| 91a片爽| WWW.激情| 婷婷五月激情六月| 亚洲xx在线| 狠狠狠婷婷五月综合| 色色五月婷婷久久| 中文字幕丰满孑伦无码专区| www久久久| 五月丁香六月婷婷激情网| 婷婷色五月大香蕉在线| 亚洲五月丁| 91婷婷| 成人综合AV| 五月天 无码| 香蕉久久五月| 五月天停停成人网| 国产,欧美,学生妹,视频| 91啪啪视频| 东京热伊人| 婷婷久久18| 丁香五月欧美激情| 九九久久偷拍| 99视频这里只有精品10| 91人人人人人人人| 26uuuu精品一区二区| 超碰在线91| 丁香五月六月久久综合 | 婷婷六月啪啪| 丁香婷婷五月天成人| 美女主播野战视步页| 成人精品一区日本无码网| 99色这里| 噜噜噜狠狠色综合| 婷婷色婷婷亚洲成人| 五月婷在线| 美女被操一区二区| 婷婷香五月天| 五月丁香趴趴| 色综合久久88色综合天天看| 五月天啪啪视频| www色色com| 天天色丁香| 91天天操天天干天天射| 韩国情人在线电视剧免费观看高清版全集 | 五月婷婷视频啪啪美女| 亚洲爆乳无码精品AAA片蜜桃| 大香蕉啪啪网| 99精品国产乱码久久久人妻| 五月婷婷五月丁香综合| 成人精品视频99在线观看免费| 国产精品久久..4399| 成人午夜无码视频| 丁香五月亭亭六月综合激情网| 激情五月天 婷婷| 99色在线视频| 九九热精品视频| 天天上天天爽| 久久精品日| 啪啪干伊人婷婷| 丁香深五月婷婷| 丁香婷婷色色| 亚洲精品色色| 人人操人人妻| 天天插,天天射| 色婷婷亚洲综合天堂| 五月天激情综合| 一起草av| 嫩草视频。| 日韩在线视频网站| 色色色色欧洲| 丁香五月天大香蕉啪啪| 天天操综合网| 蜜乳.comcom| 免费91久久精品| 日韩黄色电影| 久久3p| 色婷婷成人做爰A片免费看网站| 婷婷综合精品视频97| 1024欧美看片| 亚洲视频99| 丁香五月狠狠在线观看| 五月婷婷狠狠干| 婷婷五月开心中文字幕在线| 五月丁香花视频| 久久婷婷五月天| 久久免片| 色狠狠狠干| 996黄色片| 婷婷五月天激情小说| 五月丁香六月激情啪| 色情五月综合婷婷| 成人 九九九九| 久久久18| 97干视频在线| 色色色.com| 久久精品99久久久久久久久| 国产精产国品一二三在观看| 欧美色97| 五月的色婷婷高潮| 99只有这里是精品| 97干视频| 免费视频在线观看的网站| 五月丁香啪啪激情| 情色五月天 网站| 久热免费| 可以免费观看的AV| 深爱激情五月婷婷| 丁香五月综合在线播放| 六月色日韩| 五月丁香啪啪激情| 9久久网| 裸体做A爰片毛片A片免费| 婷婷五月大香蕉| 久久婷婷五月天综合| 亚洲五月天天| 91凹凸在线| 丁香五月婷婷久久久| 97色干在线观看| 可以看的av| 国产精品热搜丁香五月婷婷| 色性日本| 伊人婷婷色激情丁香| 熟女激情网| 亚洲精品网址| 99精品综合| 久久综合天天综合| 亚洲综合网区| 【乱子伦】黄色| 色色综合色视频| 91一起操| 99久久五月天| 乱乱av| 秋霞少妇AV网站| 婷婷色网| 99久久99九九99九九九| 亚洲操操| 国产午夜伦鲁鲁| 天天干一干| 九九热精品| 久热9| 99re这里| 久久总和99| 色五月婷婷在线| 婷婷大乡焦噜噜| 丁香五月婷婷五月天| 国产性爱一级| 丁香五月婷婷啪啪啪| 天天久综合| 丁香密臀AV激情网| 日本不卡中文字幕| 丁香五月自拍| 五月丁香久久激情网| 婷婷五月天论坛| 五月色婷| 五五月丁香花激情综合网| 99九九视频| 九九Av| 丁香久久AV| 日本激情五月天‘| 婷婷五月天六月丁香| 六月丁香激情综合| 五月婷婷在线播放| 日日日影院| 色五月婷婷天天操夜夜操| 热99国产精品| www.五月丁香| 天天艹天天综合网| 99九九视频| 桃色激情五月天| 久久六月天| 亚洲天堂99| 婷婷五月天中文字幕.| 欧美日韩99| 色日本丁香婷婷| 六月丁AV| 色色色五月婷婷| 七七婷婷综合| 久99热在线观看| 99久久99热| 天天爽天天摸| 国产超碰在线| 国产精女同一区二区三区久| 91操片| www.黄色片-久久成人国产精品在线播放-999AV| 一起草aV| 91avse| 欧美 日韩 成人| 五月丁香网站| 欧美五月丁香在线观看| 丁香婷婷五月天色播| 99久久这里只有精品| 色婷婷五月天在线观看| 天天做好综合色| 99亚洲精品| 精品久久99| 无码人妻少妇色欲AV一区二区| 69精品人人人人| 精品一区二区三区三区| 99re久久| 婷婷五月丁香六月天亚洲综合| 天天舔天天操| 美臀自射自家人妻| 五月婷婷在线免费观看| 色五月av| 久久九九国产| 亚洲 视频 导航 一区| 一起草av| www.婷婷,com| 疯狂做受XXXX高潮A片| 亚洲综合色婷| 99久久婷婷国产综合精品| 99色在线观看| 丁香五月婷婷偷拍| 天天摸天天爽| 成人va在线播放| 婷婷五月天av| 成人在线精品| 99热这里只有精品10| 夜夜谢天天干| 99只有精品| 玖玖婷婷色五月| 人妻无码精品一区| 激情婷婷五月天| #NAME?| AV天堂淫乩| 五月色色色| 五月丁香六月婷婷久久肏| 丁香婷婷五月综合影院| 亚洲妇女熟BBW| 伊人五月天综合网| 婷婷大香蕉| www.五月天色色.com| 婷婷伊人五月丁香天堂网| 熟女激情网| 婷婷久久综合| 久操激情| 久久东京热婷婷五月| 欧美男女婷婷| 天天干天天操天天爱| 欧美成人猛片AAAAAAA| 五月婷婷丁香啪啪| 丁香色婷婷五月天| 久久五月天免费网站| 欧美综合婷婷欧美综| 97人人射| 91成人视频| 日本色99| 综合另类视频| 91大神操美女| 久热伊人| 色婷婷综合网站| 亚洲性爱干干| 日韩AV免费电影在线播放| 国产丁香五月天婷婷| 国产免费性爱| 婷婷综合激情五月综合| 狠狠婷婷色| 一本综合丁香日日狠狠色| 色五月在线观看| 在线视频激情网站| 国产精品久久..4399| 51成人| 久久婷综合| 五月丁香六月激情狠狠| 亚洲亚洲人成综合网络| 婷婷性爱无码视频| 亚洲天堂制| 99热在线这里只有精品| 中文超碰视在线| 四色AVwww| 天天骑天天操| 日韩AAA| 五月丁香久久激情综合| 26uuu国产色| 激情五月婷婷| 婷婷丁香五月在线播放| www91在线| 狠狠干夜夜干| 五月婷庭丁香在线| 国产乱轮一区二区三区| 在线观看亚洲视频影院| 狠狠操狠狠色| 人人人操B超碰| 日本97久久久精品| 99久久6| 这里只有精9| 国产特黄色精品一区二区三区精品无广告| 天天橾夜夜爽| 91九色精品女同系列| www.夜夜| 日日夜夜爽| 91啪啪啪啪| 久操热线| 天天色综合网吨吧| 亚洲无aV在线中文字幕| 天天干天天干天天干天天干天天干| www.sd-xiangsu.cpm| AA片在线观看视频在线播放| 五月婷婷狠天天色综合| 久久婷婷免费| 五月色亚洲| 这里只有精品在线视频精品| 婷婷五月,综合伊人| 色婷婷88| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 亚洲午夜精品久久久久久人妖| 天天做天天爱天天高潮| 亚洲人妻五月丁香婷婷| 亚洲天99| 人与禽A片啪啪| 美英法精品无码免费视频| 国产99久久久| 91精品国产色猫| 亚洲AV综合网| 五月激情网站| 狠狠看狠狠| a片在线免费观看一区| 9l视频自拍9l九色9l成人| 91视频五月丁香| JlZZJlZZ8JlZZ亚洲熟女| 亚洲综合色色| 日日爽夜夜爽| 丁香五月中文字幕久色| 激情五月婷婷丁香六月| 日韩无码性爱| 182TV大香蕉| 久久综合激情婷婷激情| aⅤ79成人片| 六月婷婷操逼| 丁香色五月天| 欧美日比视频| 天天爽天天爽视频| 亚洲人妻一区二区| 久热这里只有精品在线观看| 亚洲日比视频| 色色三级视频| 成人午夜天| 99色在线视频| 婷婷色网站| 色色COm| 五月社区婷婷激情| 五月婷婷啪啪啪| 99热官网精品在线| 丁香五月色情av| 激情五月丁香五月| 日本婷久久| 日本九九视频| 五月色婷婷夜色| 一本大道嫩草AV无码专区| 久久99久久99精品免观看粉嫩| 丁香五月天论坛| 亚洲综合网区| 97操操操| 91精品婷婷国产综合久久| 在线视频99| 91好好热日本在线| 久草婷| 大鸡巴伊人网| 超爽内射| 激情第四色| 五月色婷婷综合| 天天色天天日| 99精品视频免费观看| 狠狠干天天日| 亚洲欧洲国产精品| 丁香五月性| 精品久久人妻| 亚洲五月天激情| 欧美色婷婷| 久久99网站| 伊人五月综合网| 日韩无码专区| 欧美成人AAA片一区国产精品| 五月综合久久| 91狠狠综合久久| 欧美色五月| AV在线观看网站| 色色五月天激情| 99九九精品| 欧洲色| 综合色播| 色五月天综合网| 天天日夜夜| 8090在线影视少妇| www.久久99精品| 久久多色| 一本色道久久综合狠狠躁小说| 亚洲激情久久| 熟惀91九色在线| 激情久久网 | 99ER热精品视频| 日韩成人精品中文字幕电影| 婷婷五月天国产性感美女演员久久久久| 4438全国最大视频成人网站在线观看| 五月丁香亭亭A片| AV在线二十六页| 丁香婷婷五月六月久久| 99爱视频免费| 95精品区一区二| 超碰在线caop| www,色综合| 玖玖综合色| 99热这里只有精品33| 综合久久五月| 久久精品99久久久久久| 激情五月婷婷| 五月色激情综合网| 99婷婷五月天| 婷婷六月综合在线| 色色色综合网| 99性爱| 一级操逼大片| 国产三级在线播放| 日本69日人视频| 狠狠草天天草| 五月色影院| 色色五月天丁香婷婷| 大地资源色婷婷视频在线| 欧美三级巜人妻互换| 五月丁香色婷基地综合久久| 色狠狠综合入口| www.天天色综合| 99热6色| 来吧亚洲综合网| 激情丁香五月天图片| 狠狠五月激情在线| 丁香六月色婷婷| 九九色婷婷| 激情五月狠狠喔| 婷婷五月天成人在线视频| www色婷婷com| 97色婷| 日本久久精品18| 思思热在线视频99| 亚洲人妻一区二区| 猫咪伊人久久| 丁香五月婷婷操逼| 亚洲色精彩| 婷婷色五月在线视频| 久久精品99国产精品日本| 91大神操美女| 丁香五月电影| 97在线观视频免费观看| 五月玖玖| 激情文学五月丁香六月婷婷| 久久丁香五月| 日韩操逼大片| 色色 亚洲| 久热只有精品| 日逼影音先锋男人资源站| 五月六月婷婷激情网| 中文国产五月天| 99这里有精品| 亚洲精品又粗又大又爽A片| 中文字幕不卡+婷婷五月| 婷婷五月丁香国产| 亚洲色五月| 五月天婷婷一起草| 成人在线精品| 国产偷人爽久久久久久老妇APP| 六月丁香综合| 婷婷爱婷婷| 五月天婷婷色播在线网| 99a级片| 亚洲第一av| 激情六月综合| 91九色成人原创视频| 深爱五月天婷综合| 99热综合色图| 91VIP在线观看| 亚洲激情亚洲激情| 五月色婷婷综合| 超碰成人电影| 久久狠狠干| 另类国产欧美视频| 色五开心五月五月深深爱| 久久99人人| 五月丁香激情在线| 欧美性生交XXXXX无码小说| 五月开心婷婷极品激情| www.久久| 99在线观看视频免费| 亚洲中文字幕AV| 久久亚洲婷婷| 国产色99| 九九这里都是精品| 久热re在线视频| 涩五月婷婷| 超碰无码318604| 欧美日韩aaa| 日本高清久| 久久99久久99久久99人受| 亚洲操精品| 99热免| 亚洲激情淫网| 亚洲亚洲人成综合网络| renre人人操国产超碰在线| WWW色五月| 丁香婷婷视频| 99精品国产在热久久婷婷| 99热网址| 日本色色网| 久久婷婷五月综合色奶水99啪| 激情五月色婷婷| 色色色色色色色综合| 99热官网| AV五月丁香| 牛牛澡牛牛爽| 婷婷五月丁香基地| 亚洲综合五月天婷婷丁香| 婷婷六月激情啪啪| 五月婷婷婷色| 香焦网五月天| 婷婷色五月激情强奸四射| 激情综合五月| 国产美女精品| 亚洲无码影音| 终合激情网| 五月天婷婷狂暴白浆| 激情五月天在线观看婷婷| 国产乱人偷精品人妻A片| 五月天婷婷基地丁香| 色播五月网| 色青五月天| 丁香婷婷五月综合色情| 99热这里只有精品亚洲| 欧美三9久九观看| 热99在线| 亚洲色婷婷五月天| 五月天另类激情在线| 精品怡红九九九| 日本99在线视频| 色婷五月天| 成人色站,在线视频,看片-SS1AV| 五月天丁香久久综合| www.婷婷五月| 狠狠草天天草| 六月婷婷最新网址| 婷婷伊人| 热的无码综合视频| 亚韩精品视频1区| 91操人| 日逼免费视频 | 中文字幕在线aⅴ免费观看| 一区二区三区四区无码| 日本丁香久在线| 国产激情综合五月久久| 青草激情在线| 亚洲六月婷婷| 天天肏天天舔AV| 情久久综合五月天| 亚州激情在线视频| 天天综合91入口| A片女女女女女女BBBB| 九97免费视频| 久久综合影院| 五月天停停基地| 性爱AV天堂| 99综合久久| 视色网在线播放| 五月丁婷香| 亚洲天堂色色| 久久久com| 少妇AB又爽又紧无码网站| 五月 激情视频| 日韩精品色| 天天日,天天射,天天插| 久久婷婷资源| 色九九九综合| 免费看成人AA片无码视频吃奶| 婷婷丁香视频| 五月天社区| 色婷婷丁香社综合| 日日狠狠久久偷偷四色综合免费| 色色五月婷婷久久| 色综色网| 成人五月天在线视频在线观看| 男人综合网| 丁香五月欧美| 婷婷99狠狠躁天天躁| 婷婷色丁香五月| 被强行糟蹋的女人A片| 五月婷伊人| 五月婷在线| 婷婷丁香五月天婷婷| 亚洲日日日| 狠狠人妻久久久久久综合丁香| 热久久99热欧美国产亚洲| 亚洲丁香五月深爱五月| www.色色com| 九九香蕉网| 亚洲在线资源| 思思热高清在线观看| 色婷婷久久综合久色| 亚洲另类毛片| 99九九精品视频| 热久69| 六月婷婷综合| 五月天婷婷久草丁香| 99国产精品白浆在线观看免费| 思思热AV| 操熟女成人网| 婷婷五月色| 日韩成人中文字幕| 色在线99| 99热精品在线| 五月丁查人人| 欧美猛片| 99re66热这里只有精品| 久久久久久久11111111111| 九九色影视| 丁香五月社区| 亚洲五月天综合| 婷婷五月天久久久| 99热.com| 热婷婷av| 婷婷五月丁香啪啪| 成人婷婷色综合| 97色干| 久久久久思思热| 亚洲成人av在线| 久久精品日| 激情五月天网| 婷婷天堂综合| 六月丁香激情网| 丁香五月综合图片在线观看| 丁香五月激情综合| 人人干女人| 综合激情在线| 区欧美日韩成人| 九九热这里只有精品在线观看| 在线色五月婷婷| 艾小青av| 麻豆WWWCOM内射软件| 综合久久婷婷| 狠狠狠狠操| 色~性~乱~伦~噜| 国产做爰视频免费播放| 五月天另类视频| 色情婷婷。| 国产真实乱对白精彩| 五月婷婷黄色| 影音先锋 91工厂| 五月天激情综合网站| 91啪啪视频| 激情五月婷| 婷婷 丁香 久久| 五月天激情网址| 婷婷激情综合无月| 婷婷五月综合视频| 欧美丁香五月97色| 日韩免费视频| 婷婷五月无码| 亚洲成人中心| 亚州色婷婷| 日操五月婷| 六月丁丁香| 最近中文字幕在线中文视频| 久综合| 欧美大肥婆大肥BBBBB| 99自拍视频| 另类婷婷五月天啪帕帕| 亚洲免费看片| 激情五月天在线观看婷婷| 天天天天爽爽天干| 五月激情小说网| 这里只有精品视频在线| 五月婷婷亚洲色图| 密黄站| 亚洲无码色| 99精品在线观看视频| 五月天堂在线| 色婷婷色99国产综合精品| 天天日天天色| 综合性爱网| 99re免费精品视频| 久久丁香五月| 亚洲精品无人区| 五月天婷婷免费| 亚洲欧美另类在线23p| 超碰99在线观看| 综合精品99| 色色色色色色综合| 79精品视频在线观看,| 五月丁香啪综合| 99热这里只有免费精品| 狠狠综合网| 另类A片| 五月天伊人手机在线播放AV| 婷婷五月天久久| 1024婷婷综合久久五月天| 99热这里只有精品官网| 亚洲激情网| 色婷婷狠狠| 成人在线综合| 特黄三级又爽又粗又大| 26UUU在线观看| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 久久综合丁香激情五月| 色护士综合| 我要射综合| 天天综合精品| av在线激情| 久99久99精品免| 99色在线免费观看视频| 天天干com| 国产干逼片| 亚洲色情在线|