লজিকাল মিন-কাট এনপি-সম্পূর্ণ?


24

লজিকাল মিন কাট (এলএমসি) সমস্যার সংজ্ঞা

ধরুন যে একটি unweighted digraph হয়, গুলি এবং টন দুই ছেদচিহ্ন হয় ভী , এবং টন থেকে যোগাযোগ করা যাবে গুলি । কিভাবে আমরা করতে পারেন এলএমসি সমস্যা অধ্যয়ন টি থেকে অনধিগম্য গুলি কিছু প্রান্ত অপসারণের দ্বারা জি নিম্নলিখিত সীমাবদ্ধতা করুন:G=(V,E)stVtstsG

  1. অপসারণ প্রান্তগুলির সংখ্যা অবশ্যই ন্যূনতম হতে হবে।
  2. আমরা এর যে কোনও প্রান্তের প্রতিটি প্রান্ত প্রান্তটি সরাতে পারি না (অর্থাত্, বহির্গামী প্রান্তের কোনও ভার্টেক্স তার সমস্ত বহির্গামী প্রান্তগুলি মুছে ফেলতে পারে না)।G

এই দ্বিতীয় বাধাটিকে যৌক্তিক অপসারণ বলা হয়। সুতরাং আমরা জি এর কয়েকটি প্রান্তের একটি যৌক্তিক, ন্যূনতম অপসারণের সন্ধান করি যে টি এর থেকে অ্যাক্সেসযোগ্য হবে ।Gts

সমাধান প্রচেষ্টা

যদি আমরা এলএমসি সমস্যার যৌক্তিক অপসারণের সীমাবদ্ধতা উপেক্ষা করি, তবে এটি অদ্বিতীয় ডিজিট্রাফ -তে ন্যূনতম কাটা সমস্যা হবে, সুতরাং এটি দ্রবণীয় বহুবর্ষীয় (সর্বোচ্চ-প্রবাহের ন্যূনতম-কাটা উপপাদ্য) হবে।G

আমরা যদি এলএমসি সমস্যার ন্যূনতম অপসারণ বাধ্যতা উপেক্ষা, এটি একটি DAG মধ্যে আবার সমাধেয় polynomially হবে: এটি একটি প্রান্তবিন্দু যেমন যে থেকে যোগাযোগ করা যাবে গুলি এবং টন থেকে যোগাযোগ করা সম্ভব নয় । তারপরে একটি পাথ পি বিবেচনা করুন যা এস থেকে কে পর্যন্ত স্বেচ্ছাসেবক পাথ । এখন পাথ পি- কে জি-এর একটি অনুচ্ছেদ হিসাবে বিবেচনা করুন : উত্তরটি সাবগ্রাফিক পি এর প্রতিটি প্রস্থান প্রান্ত হবে । স্পষ্টতই যে বহিরাগত কে ডি -এফএস দ্বারা বহুগুণে খুঁজে পাওয়া যায় । দুর্ভাগ্যক্রমে এই অ্যালগরিদমটি সাধারণভাবে কাজ করে নাkkstkpskpGpkG একটি নির্বিচারে নির্দেশিত গ্রাফের জন্য।

আমি গতিশীল প্রোগ্রামিং কৌশল দ্বারা এলএমসি সমস্যা সমাধানের চেষ্টা করেছি তবে সমস্যা সমাধানের জন্য প্রয়োজনীয় রাষ্ট্রগুলির সংখ্যা তাত্পর্যপূর্ণ হয়ে ওঠে। তদতিরিক্ত, আমি কিছু এনপি-কমপ্লিট সমস্যা যেমন 3-স্যাট, ম্যাক্স 2 এস্যাট, সর্বাধিক কাটা এবং এলএমসি সমস্যার চক্রকে হ্রাস করার চেষ্টা করতে পারি তা হ্রাস করার চেষ্টা করেছি a

আমি ব্যক্তিগতভাবে মনে করি যে এলএমসি সমস্যাটি এনপি-কমপ্লিট এমনকি বাইনারি ডিএজি (যেমন, এমন একটি ডিএজি যেখানে কোনও নোডের 2-এর বেশি ডিগ্রি নেই)।G

প্রশ্নাবলি

  1. এলএমসি সমস্যা একটি অবাধ digraph মধ্যে np-সম্পূর্ণ হয়েছে ? (মূল প্রশ্ন)G
  2. এলএমসি সমস্যাটি কি একটি স্বেচ্ছাসেবক ডিএজি -তে সম্পূর্ণ এনপি-সম্পূর্ণ ?G
  3. একটি স্বেচ্ছাসেবী বাইনারি ডিএজি -তে কি এলএমসি সমস্যা এনপি-সম্পূর্ণ ?G

আমি আপনার গ্রাফটি পুনঃনির্দেশিত না হলে সমস্যাটি নিশ্চিত । এটি কি আপনার প্রশ্নের যথেষ্ট উত্তর হবে? P
অ্যালেক্স দশ ব্রিংক

@ সাইদআমিরি: এবং টি এর জন্য একটি মিনিট কাটা সন্ধান করুন । যদি এটি একটি শীর্ষবিন্দুকে সংযোগ বিচ্ছিন্ন করে, তবে এই শিখরটি অবশ্যই s বা t হতে হবে । যদি এটি উভয়ই থাকে তবে এরকম কোনও মিনি কাটা নেই। ধরা যাক টি হ'ল সংযোগ বিচ্ছিন্ন প্রান্ত এবং ( টি , ভি ) প্রান্ত। এই প্রান্ত সরান এবং একটি মিনিট কাটা সঞ্চালন গুলি এবং V যাও recursively। ststt(t,v)sv
অ্যালেক্স দশ ব্রিংক

একটি সাধারণ পর্যবেক্ষণ দ্বারা, এই সিদ্ধান্তে আসা যায় যে নিম্নলিখিত সমস্যাগুলি যদি এনপি-সম্পূর্ণ হয় তবে এলএমসি সমস্যাটিও এনপি-সম্পূর্ণ হবে (আমি বিপরীতটি সত্য কিনা তা নিশ্চিত করছি না)। মনে করুন যে একটি ডিগ্রাফ। কীভাবে আমরা উপর একটি মিনিট কাটা থাকতে পারে জি (পার্টিশন ভী করতে এস এবং টি St থেকে প্রান্ত সংখ্যা এস করার টি সংক্ষিপ্ত) এবং সেখানে একটি প্রান্তবিন্দু অস্তিত্ব নেই বনাম অন্তর্গত ভী St প্রতিটি প্রস্থান প্রান্ত প্রধান বনাম জন্যে থেকে টি (প্রস্থান প্রান্ত থেকে এস থেকেG=(V,E)GVSTSTvVvTS )। T
amirv


2
আমিরভ, কেবল বাধা (2) এর সমস্যার জন্য, আপনি যে অ্যালগরিদমটি পরামর্শ দিয়েছেন, যেমনটি আমি এটি বুঝতে পেরেছি তা ঠিক ঠিক নয়। যদিও কোনও নোড v থাকতে পারে, সমস্ত নোডের v এর জন্য, s থেকে v পর্যন্ত একটি পথ এবং v থেকে t পর্যন্ত একটি পথ রয়েছে। গ্রাফ বিবেচনা সঙ্গে ভী = { গুলি , T , একটি } এবং = { ( গুলি , T ) , ( গুলি , একটি ) , ( একটি , গুলি ) }G=(V,E)V={s,t,a}E={(s,t),(s,a),(a,s)}
নিল ইয়ং

উত্তর:


1

জি = (ভি, ই) কে একটি ওজনযুক্ত ডিএজি হতে হবে, এবং জি এর দুটি শীর্ষে হতে হবে এবং এলএসটিএমসি = (জি, এস, টি) লজিক্যাল সেন্ট মিনিট কাটা সমস্যার একটি উদাহরণ হতে পারে। এটা স্পষ্ট যে LSTMC সমস্যাটি NP.Now, আমাদের দেখানো উচিত যে LSTMC এনপি-হার্ড। আমরা হিটিং-সেট সমস্যাটিকে এলএসটিএমসি সমস্যা হ্রাস করি। এস = {এস 1, এস 2, ..., সান} প্রদত্ত সেট হতে দিন এবং {এ 1, এ 2, ..., am the সমস্ত সেটের ইউনিয়ন হয়ে উঠুক। কে 1 নম্বর দেওয়া, হিটিং সেট সমস্যার সিদ্ধান্তগত সিদ্ধান্তে বলা হয়েছে যে কে 1 উপাদানগুলির সাথে একটি সেট এ রয়েছে যেমন এস এর প্রতিটি উপাদান (প্রতিটি সেট সিক আই = 1..n) এ এ এর ​​কমপক্ষে একটি উপাদান থাকে We হিট সেট সমস্যাটিকে এইচএস (এস) হিসাবে চিহ্নিত করুন। আমরা অ্যালগরিদম এইচএস 2 এলএসটিএমসি সেট এস থেকে ওয়েটড ডিএজি জি const তৈরি করি। এই অ্যালগরিদমকে ডিএজি জি source এর উত্সের শীর্ষবিন্দু হিসাবে বিবেচনা করে ′ HS st i = 1..n এর প্রতিটি সেট si এর জন্য, অ্যালগরিদমটি যথাযথভাবে শীর্ষ প্রান্তকে বিবেচনা করে, সি, এবং এস থেকে প্রতিটি এসিতে অসীম ওজন সহ একটি প্রান্ত যুক্ত করে। তারপরে, ইনপুট সংঘের প্রতিটি এলিমেন্টের এজের জন্য st j = 1..m, অ্যালগরিদমটি সংশ্লিষ্ট ভার্টেক্স, আজকে বিবেচনা করে এবং এইচএসে কোনও এসআই এজেএসসি-র সাথে প্রতিটি এসআই থেকে শূন্য ওজন যুক্ত একটি প্রান্ত যুক্ত করে। অবশেষে, অ্যালগরিদম দুটি চূড়ান্ত উল্লম্ব টি এবং কে হিসাবে বিবেচনা করে এবং উভয় চূড়ান্ত কোণে প্রতিটি আজকের স্টেট জ = 1.. মি থেকে দুটি প্রান্ত যুক্ত করে। এটা পরিষ্কার যে G pol বহুগতির সময়ে তৈরি করা যেতে পারে।

এখন, আমাদের দেখানো উচিত যে এইচএস (এস) এর কে 1 উপাদানগুলির সাথে একটি উত্তর রয়েছে এবং কেবল যদি LSTMC = (G ′, s, t) এর কিছু যুক্তিযুক্ত সরানো প্রান্তের সাথে উত্তর থাকে যেমন মুছে ফেলা প্রান্তগুলির ওজনের যোগফল is K1।

সরলতার জন্য, আমরা উদাহরণের মাধ্যমে প্রমাণের এই অংশটি সম্পাদন করি:

নিম্নলিখিত চিত্রটিতে, ধরুন যে এস = {এস 1, এস 2, এস 3 s যেমন এস 1 = {1, 2, 3}, এস 2 = {1, 4}, এবং এস 3 = {2, 5}} চিত্র 2 টি হিটিং সেট সমস্যা এইচএস (এস) এর সাথে সম্পর্কিত এলএসটিএমসি সমস্যার ওজনযুক্ত ডিএজি জি shows দেখায়। এই উদাহরণে, সেট এ, যা এস এর সমস্ত উপাদানগুলির মিলন, = = 1, 2, 3, 4, 5}} আমাদের | এস | = 3 এবং | এ | | = 5. এই উদাহরণটি দেখায় যে কীভাবে হিট সেট সেট সমস্যার একটি স্বেচ্ছাসেবী উদাহরণটি ভারী ডিএজে লজিক্যাল সেন্ট মিনিট কাট সমস্যার নির্দিষ্ট উদাহরণের সাহায্যে সমাধান করা যেতে পারে। যদি আমরা LSTMC = (G ′, s, t) এর একটি উত্তর গণনা করি এবং সেই উত্তরের সরানো প্রান্তগুলি বিবেচনা করি যা E1 (1 ≤ j ≤ m) নামে (AJ, t) আকারে রয়েছে, তবে এর লেজ সেট E1 এইচএস (এস) এর একটি উত্তর। এলএসটিএমসি সমস্যার উত্তর হ'ল প্রান্ত সেট E1 = {(এস 1, 2), (এস 1, 3), (এস 2, 4), (এস 3, 5), (1, টি), (2, টি)}} সুতরাং, উপসেট E2 = {(1, টি), (2,

কমানো


0

স্বেচ্ছাসেবী বাইনারি ডিএজিএস তে এলএমসির জন্য বহু-কালীন অ্যালগরিদম (এখানে একটি চেষ্টা) রয়েছে ।G

এই উত্তর # 3। (সময়ের আগে অগোছালো লেখার জন্য দুঃখিত। :))

আরম্ভ করার জন্য, বর্জন "সব সময় প্রবেশ করুন" কোনো প্রান্তবিন্দু থেকে পৌঁছানো যাচ্ছে না । আমরা এগুলি নিয়ে কোন চিন্তা করি না, যেহেতু তারা কোনও এস - টি পথের অংশ নয় ।sst

এরপরে, উপ-ড্যাগগুলি এবং B সংজ্ঞা দিন , প্রাথমিকভাবে খালি। তারপর, সব ছেদচিহ্ন জন্য v জি - { গুলি , T } ,ABvG{s,t}

থেকে টি পর্যন্ত কোনও পথ আছে কিনা তা পরীক্ষা করুন । যদি তাই হয়, যোগ বনাম করার একটি । যদি তা না হয়, অ্যাড বনাম করার বিvtvAvB

কোণগুলি যাক এবং বি (বর্তমানে জন্য প্রতিটি সেট মধ্যে ছেদচিহ্ন দ্বারা প্রবর্তিত সেই হও, থেকে কোন প্রান্ত উপেক্ষা গুলি করার একটি থেকে একটি থেকে টি , এবং থেকে একটি থেকে বি ; আরো উল্লেখ্য কাছ থেকে কোন প্রান্ত আছে বি থেকে টি দ্বারা নির্মাণ).ABsAAtABBt

এর পরে, এর সকর্মক অবসান গনা । যথা, আমরা কিছু শিখুনের সেট খুঁজে পেতে আগ্রহী { একটি } যা উপ-ডাগ এর "পাতাগুলি" ।A{a}A

এমন কোন ত্রুটিমুক্ত । মান্য যে সেখান থেকে একটি নির্দেশ প্রান্ত হতে হবে একটি * থেকে টি । এটা এজন্য যে, নির্মাণ দ্বারা, (ঝ) আছে একটি হল গুলি - টি মাধ্যমে পাথ একটি * , (২) কোন পাথ আছে একটি * মাধ্যমে বি , এবং (গ) যেহেতু একজন নিজেই একটি DAG এবং একটি * পাতার হয় এর একটি সেখান থেকে কোন পথ একটি * আরেকটি প্রান্তবিন্দু মাধ্যমে একটি থেকে টিaatstaaBAaAaAt

এখন, এছাড়াও প্রতিটি প্রান্তবিন্দু থেকে একটি নির্দেশ প্রান্ত হতে হবে মধ্যে কিছু প্রান্তবিন্দু করার বি , বা কিছু { একটি * } একটি একক প্রান্ত টি । উভয় ক্ষেত্রেই, আমরা কোনো মুছতে করার অনুমতি দেওয়া হয় একটি *টি প্রান্ত।{a}B{a}tat

যদি = 1, তারপর হয় আমরা প্রান্ত অনন্য থেকে মুছে দিতে হবে একটি *টি , বা সেখানে তার আগে একটি প্রান্তবিন্দু হয় গুলি - টি ধারণকারী পথ একটি * দুই পাথ আছে টি মাধ্যমে এক - একটি * এবং সরাসরি অন্যতম। ক্ষেত্রে যে আধুনিক শক্তি হোল্ড, আমরা রেকর্ডে একটি *টি "পিছন সাগ্রহে" এবং এগিয়ে (এই নিচে বিস্তারিত)।|{a}|atstataat

যদি > 1, তাহলে আমরা পারেন প্রান্ত সমস্ত মুছে দিতে হবে { একটি * } টি , বা অন্য সেখানে প্রান্ত কিছু সংখ্যা আছে< | { a } | এর সকর্মক অবসান আগে একজন যে সকল পাথ সংযোগ বিচ্ছিন্ন গুলি মাধ্যমে { একটি * } থেকে টি|{a}|{a}tk<|{a}|As{a}t

এইখানেই আমরা এই সত্যটি ব্যবহার করি যে গ্রাফ একটি বাইনারি ডিএজি।G

এর পূর্বসুরীদের সেট বিবেচনা করুন । যেহেতু এই প্রতিটি শীর্ষে সর্বোচ্চ দু'একটি ডিগ্রি রয়েছে, ঠিক তিনটি ক্ষেত্রে রয়েছে:{a}

কেস 1. একটি পূর্বসুরী মধ্যে কিছু প্রান্তবিন্দু একটি আউট-প্রান্ত হয়েছে এবং কিছু প্রান্তবিন্দু একটি আউট-প্রান্ত বি{a}B

এই ক্ষেত্রে, এটা ব্যাপার কিনা আমরা প্রান্তবিন্দু পূর্বসুরী থেকে প্রান্ত মুছে দেয় না বা প্রান্তবিন্দু থেকে প্রান্ত { একটি * } থেকে টি । অতএব, আমরা এই প্রান্তবিন্দু "অতীতে এড়িয়ে যান" করতে পারেন (এবং অন্য প্রান্তবিন্দু একটি পাথ দিয়ে কিনা পিছন পথ মার্জ পরীক্ষা { একটি * } )।{a}{a}t{a}

কেস 2. একটি পূর্বসুরী একটি প্রান্তবিন্দু একটি আউট-প্রান্ত হয়েছে এবং আরেকটি পূর্বসুরী { একটি * }{a}{a}

এই ক্ষেত্রে, আমরা হয় থেকে উভয় প্রান্ত মুছে দিতে হবে থেকে টি , অথবা আমরা থেকে পাথ একটি একক আগে প্রান্ত মুছে দিতে পারেন গুলি পূর্বসুরী যে disconnects উভয় পাথ করতে।{a}ts

কেস 3. একটি পূর্বসুরী দুই ছেদচিহ্ন একটি আউট-প্রান্ত হয়েছে {a}

এই ক্ষেত্রে 2. অভিন্ন এটা কোন ব্যাপার না আমরা এই পূর্বসুরী প্রান্তসীমা এক এবং থেকে সংশ্লিষ্ট অন্যান্য প্রান্ত মুছতে কিনা করেন থেকে টি থেকে প্রান্ত এর, অথবা উভয় { একটি * } থেকে টি । আমরা শুধু জানতে আমরা থেকে পাথ সংযোগ বিচ্ছিন্ন করতে পারেন কিনা চান গুলি এই পূর্বসুরী মাধ্যমে টন পথে তার আগে একটি একক প্রান্ত থেকে গুলি পূর্বসুরী করতে।{a}t{a}tsts

মোটের ওপর, আমরা এর সকর্মক অবসান মধ্যে পূর্বসুরীদের মাধ্যমে পিছন স্ক্যান যেমন , আমরা সাগ্রহে "বেস্ট এতদূর" পছন্দ ট্র্যাক রাখতে পারবেন না। এটি হ'ল, প্রতিটি পদক্ষেপে আমাদের একটি সুস্পষ্ট পছন্দ রয়েছে যার মধ্যে কয়েকটি সংখ্যক প্রান্ত মোছা জড়িত রয়েছে, তবে আরও ভাল বিকল্প উপলব্ধ কিনা তা দেখার জন্য আমরা অপেক্ষা করতে চাই। আরও ভাল বিকল্পটি পাওয়া গেলে আমরা আগের বিকল্পটি "ভুলে যেতে" পারি। অতএব, পূর্বসূরীদের প্রতিটি স্তরের একটি লোভী পছন্দ যথেষ্ট (যতক্ষণ আমরা শেষ পর্যন্ত অপেক্ষা করি কোনও পছন্দ প্রতিশ্রুতিবদ্ধ)।A

অতএব, কিছু বেসিক স্মৃতিচারণের সাথে, এই প্রক্রিয়াটির সময় এবং স্থান জটিলতা সর্বাধিক হিসাবে উপস্থিত বলে মনে হয় । এটি এই সত্যটি এড়িয়ে যায় যে, যখন আমরা একটি "সস্তা পছন্দ" পেয়েছি যখন স্থানীয়ভাবে / লোভনীয়ভাবে সনাক্ত করতে পারি, এটি একটি অগ্রাধিকারের বিষয়টি অস্পষ্ট যা পূর্বে নথিভুক্ত প্রান্তগুলি অপসারণ করতে পারে। অতএব, আমরা যেভাবে আমরা প্রান্তগুলি যাব ঠিক তেমন ক্রমটি রেকর্ড করি। আরও ভাল বিকল্পটি সন্ধান করার পরে, পূর্বের রেকর্ডকৃত কোনগুলি সরিয়ে ফেলতে হবে তা অনুসন্ধান করার জন্য আমরা অনুসন্ধানটি এই বিন্দুতে পুনরাবৃত্তি করি। এই পদক্ষেপের মোট সময় জটিলতা হ'ল হে ( || 2 ) এবং স্পেস জটিলতা হে ( || )O(|E|)O(|E|2)O(|E|)

মোটের ওপর, সময় জটিলতা হয় আরম্ভের জন্য, প্লাস হে ( | ভী | 3 ) সকর্মক অবসান জন্য, প্লাসO(|V|(|V|+|E|))O(|V|3) অনুসন্ধান। মোট সময় হল( | ভি | 2 + || | ভি | + | ভি | 3)O(|E|2)O(|V|2+|E||V|+|V|3+|E|2)=O(|V|3+|E|2)

প্রক্রিয়া সম্পন্ন করার পরে, আমরা সংযোগ বিচ্ছিন্ন করা প্রয়োজন প্রান্ত ন্যূনতম সেট প্রাপ্ত থেকে টি যখন অন্তত আউট-প্রান্ত গ্রাফ প্রতিটি প্রান্তবিন্দু এক সংরক্ষণের (অথবা আমরা আবিষ্কার করে একটি সমাধান পথ ধরে অসম্ভব, এবং পরিত্যাগ)।st


আমি নিম্নোক্ত বিবৃতি পেতে করবেন না: প্রতিটি প্রান্তবিন্দু থেকে [চাপ] " মধ্যে কিছু প্রান্তবিন্দু করার বি , বা কিছু { একটি * } একটি একক প্রান্ত টি । হয় মামলা, আমরা করার অনুমতি দেওয়া হয় যে কোনও মুছুন ( একটি ∗){a}B{a}t চাপ। " যদি কোনও এর একটি মাত্র আউট-অর্ক থাকে তবে আমরা এটি সংজ্ঞা অনুসারে মোছার অনুমতি পাই না! যাইহোক, { a } স্বরলিপিটি কী? (a,t)a{a}
পোল জিডি

আহ - আমি দ্বিতীয় শর্তটি সম্পর্কে একটি মন্তব্য ভুল লিখেছি। এটি যদিও অ্যালগরিদমের অবিচ্ছেদ্য অঙ্গ নয় - যদি আমরা একক আউট-আর্কগুলি মুছতে না পারি তবে আমরা তা করি না। এটিকে এড়িয়ে যান এবং বিপরীত-ট্রানজিটিভ-ক্লোজার অর্ডারে যান। আপনি হয় দুটি আউট-আর্কস বা (একটি যদি, আউটপুট "কোনও সমাধান না") দিয়ে একটি শীর্ষস্থান পৌঁছেছেন । { একটি * } স্বরলিপি কারণ আমি বর্তমান চিন্তা করছি সংগ্রহে সর্বোচ্চ ছেদচিহ্ন এর (সাধারণভাবে বলতে, সেখানে একটি সময়ে চেয়ে বেশি 1 যেমন প্রান্তবিন্দু, একটি সকর্মক অবসান যেহেতু একটি আংশিক ক্রম হয়)। এছাড়াও, কেবল একটি ব্যবহার করে এটি A এর একটি স্বেচ্ছাসেবী উপাদান বোঝায় যা উদ্দেশ্যযুক্ত নয়। s{a}aA
ড্যানিয়েল আপন

2
আমি অবশেষে প্রমাণ করতে পেরেছি যে এই সমস্যাটি এনপি-সম্পূর্ণ।
amirv

1
@amirv ওহ, দয়া করে না ভাগ উত্তর আকারে প্রমাণ একটি রূপরেখা!
রাফেল

1
অন্তর্নিহিত ডিগ্রাফটি একটি অপ্রকাশিত বাইনারি ডিএজি থাকলেও সমস্যাটি এনপি-সম্পূর্ণ।
amirv
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.